YaWK  24.1
Yet another WebKit
YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter Class Reference

Embed any YouTube Video on your pages. More...

Public Member Functions

 __construct ($db)
 Load all widget settings from database and fill object params. More...
 
 drawForm ()
 Draw the newsletter html form. More...
 
 includeJS ()
 Load all required javascript files. More...
 
 init ()
 Init Function: Loads the required JS, set properties and draw the form. More...
 
 printObject ()
 Print all object data. More...
 
 setProperties ()
 Set all object properties and html markup codes depending on current widget settings. More...
 

Public Attributes

 $markupBtnAlign = ''
 
 $markupBtnClass = ''
 
 $markupBtnMarginTop = ''
 
 $markupEmailLabel = ''
 
 $markupFontSizeEnd = '</H2>'
 
 $markupFontSizeStart = '<H2>'
 
 $markupFormWidth = ''
 
 $markupIcon = ''
 
 $markupNameLabel = ''
 
 $newsletterBtnAlign = 'text-center'
 
 $newsletterBtnClass = 'btn btn-success'
 
 $newsletterBtnMarginTop = '5px'
 
 $newsletterBtnText = 'Subscribe Newsletter'
 
 $newsletterEmailPlaceholder = 'Email'
 
 $newsletterFontSize = 'h2'
 
 $newsletterHideLabels = 'false'
 
 $newsletterIcon = 'fa fa-envelope-o'
 
 $newsletterNamePlaceholder = 'Name'
 
 $newsletterSubtext = 'subscribe'
 
 $newsletterThankYouSubtext = 'for subscribing to our newsletter!'
 
 $newsletterThankYouTitle = 'Thank You'
 
 $newsletterTitle = 'Newsletter'
 
 $newsletterWidth = ''
 
 $widget = ''
 

Detailed Description

Embed any YouTube Video on your pages.

Let your users subscribe to a newsletter database.

With this widget, you are able to collect email addresses to build up your newsletter database. The user can enter his email address and (or) his/hers name. The form will be processed via ajax which means the page will not refresh by clicking on submit. Data will be entered in the newsletter database, which other plugins and widgets can access easily. In future releases, it is planned to implement a newsletter plugin, where admins can manage and send newsletters within the backend.

Author
Daniel Retzl danie.nosp@m.lret.nosp@m.zl@gm.nosp@m.ail..nosp@m.com
Version
1.0.0

Definition at line 18 of file newsletter.php.

Constructor & Destructor Documentation

◆ __construct()

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::__construct (   $db)

Load all widget settings from database and fill object params.

Parameters
object$dbDatabase Object

Load all widget settings on object init.

Definition at line 74 of file newsletter.php.

76  {
77  // load this widget settings from db
78  $this->widget = new \YAWK\widget();
79  $settings = $this->widget->getWidgetSettingsArray($db);
80  foreach ($settings as $property => $value) {
81  $this->$property = $value;
82  }
if(isset($_POST['save'])) $settings
$value

References $db, $settings, $value, and YAWK\widget\getWidgetSettingsArray().

Member Function Documentation

◆ drawForm()

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::drawForm ( )

Draw the newsletter html form.

Definition at line 216 of file newsletter.php.

218  {
219  echo"
220  <div class=\"container-fluid\">
221  <div class=\"row\">
222  <div class=\"col-md-12\">
223  <div id=\"formWrapper\">
224  <div id=\"newsletterTitle\">$this->markupFontSizeStart$this->markupIcon$this->newsletterTitle <small>$this->newsletterSubtext</small>$this->markupFontSizeEnd</div>
225  <form class=\"form-horizontal\" id=\"form\" method=\"post\">
226  $this->markupNameLabel
227  <input type=\"text\" name=\"name\" id=\"name\" class=\"form-control\" placeholder=\"$this->newsletterNamePlaceholder\"$this->markupFormWidth>
228  $this->markupEmailLabel
229  <input type=\"text\" name=\"email\" id=\"email\" class=\"form-control\" placeholder=\"$this->newsletterEmailPlaceholder\"$this->markupFormWidth>
230  <input type=\"hidden\" name=\"thankYouTitle\" id=\"thankYouTitle\" value=\"$this->newsletterThankYouTitle\">
231  <input type=\"hidden\" name=\"thankYouSubtext\" id=\"thankYouSubtext\" value=\"$this->newsletterThankYouSubtext\">
232  <div$this->markupBtnAlign$this->markupFormWidth>
233  <input type=\"button\" class=\"$this->markupBtnClass\" id=\"submit\" name=\"submit\" value=\"$this->newsletterBtnText\"$this->markupBtnMarginTop>
234  </div>
235  </form>
236  </div>
237  <div id=\"thankYouMessage\"></div>
238  </div>
239  </div>
240  </div>";

Referenced by YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter\init().

◆ includeJS()

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::includeJS ( )

Load all required javascript files.

include required javascript assets (validade, messages and ajax js file)

Definition at line 113 of file newsletter.php.

115  {
116  // load validate js
117  echo "<script type=\"text/javascript\" src=\"system/engines/jquery/jquery.validate.min.js\"></script>";
118  // if current language is german
119  if (\YAWK\language::getCurrentLanguageStatic() == "de-DE")
120  { // load german language file
121  echo "<script type=\"text/javascript\" src=\"system/engines/jquery/messages_de.min.js\"></script>";
122  }
123  // load ajax file
124  echo "<script type=\"text/javascript\" src=\"system/widgets/newsletter/js/nl.js\"></script>";
static getCurrentLanguageStatic()
returns the currently set backend language, but is static callable
Definition: language.php:146
This class serves methods to create backup from files.
Definition: AdminLTE.php:2

References YAWK\language\getCurrentLanguageStatic().

Referenced by YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter\init().

◆ init()

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::init ( )

Init Function: Loads the required JS, set properties and draw the form.

This method does the setup and embed job

Definition at line 99 of file newsletter.php.

101  {
102  // load required javascript files
103  $this->includeJS();
104  // prepare properties and settings
105  $this->setProperties();
106  // lets start - draw newsletter form
107  $this->drawForm();
includeJS()
Load all required javascript files.
Definition: newsletter.php:113
drawForm()
Draw the newsletter html form.
Definition: newsletter.php:216
setProperties()
Set all object properties and html markup codes depending on current widget settings.
Definition: newsletter.php:130

References YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter\drawForm(), YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter\includeJS(), and YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter\setProperties().

◆ printObject()

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::printObject ( )

Print all object data.

(for development and testing purpose)

Definition at line 88 of file newsletter.php.

90  {
91  echo "<pre>";
92  print_r($this);
93  echo "</pre>";

◆ setProperties()

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::setProperties ( )

Set all object properties and html markup codes depending on current widget settings.

Set object properties and html markup

Definition at line 130 of file newsletter.php.

132  {
133  // check if btn margin top is set
134  if (isset($this->newsletterBtnMarginTop) && (!empty($this->newsletterBtnMarginTop)))
135  { // set markup
136  $this->markupBtnMarginTop = " style=\"margin-top:$this->newsletterBtnMarginTop\"";
137  }
138  else
139  { // no btn margin set, leave markup empty
140  $this->markupBtnMarginTop = '';
141  }
142 
143  // check btn class and alignment
144  if (isset($this->newsletterBtnClass) && (!empty($this->newsletterBtnClass)))
145  { // set markup
146  $this->markupBtnClass = "$this->newsletterBtnClass";
147  }
148  else
149  { // no btn margin set, leave markup empty
150  $this->markupBtnClass = '';
151  }
152 
153  // check button alignment
154  if (isset($this->newsletterBtnAlign) && (!empty($this->newsletterBtnAlign)))
155  { // set btn align markup
156  $this->markupBtnAlign = " class=\"$this->newsletterBtnAlign\"";
157  }
158  else
159  { // no markup needed, leave empty
160  $this->markupBtnAlign = '';
161  }
162 
163  // check if labels should be hidden
164  if (isset($this->newsletterHideLabels) && ($this->newsletterHideLabels == "false"))
165  { // label html markup code
166  $this->markupNameLabel = "<label for=\"name\">$this->newsletterNamePlaceholder</label>";
167  $this->markupEmailLabel = "<br><label for=\"email\">$this->newsletterEmailPlaceholder</label>";
168  }
169  else
170  { // no labels
171  $this->markupNameLabel = '';
172  $this->markupEmailLabel = '';
173  }
174 
175  // check if icon is set
176  if (isset($this->newsletterIcon) && (!empty($this->newsletterIcon)))
177  { // icon html markup
178  $this->markupIcon = "<i class=\"$this->newsletterIcon\"></i>&nbsp;";
179  }
180  else
181  { // no icon, no markup
182  $this->markupIcon = '';
183  }
184 
185  // check which font size is set
186  if (isset($this->newsletterFontSize) && (!empty($this->newsletterFontSize)))
187  { // set markup for h tags
188  $this->markupFontSizeStart = "<$this->newsletterFontSize>";
189  $this->markupFontSizeEnd = "</$this->newsletterFontSize>";
190  }
191  else
192  { // if font size is not set, use default:
193  $this->markupFontSizeStart = "<H2>";
194  $this->markupFontSizeEnd = "</H2>";
195  }
196 
197  // check if form width is set
198  if (isset($this->newsletterWidth) && (!empty($this->newsletterWidth)))
199  { // check if user appended a % sign
200  if (substr($this->newsletterWidth, -1) != "%")
201  { // if not, append it for the user
202  $this->newsletterWidth = $this->newsletterWidth."%";
203  }
204  // set html markup
205  $this->markupFormWidth = " style=\"width: $this->newsletterWidth;\"";
206  }
207  else
208  { // no width requested, leave empty
209  $this->markupFormWidth = '';
210  }

Referenced by YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter\init().

Member Data Documentation

◆ $markupBtnAlign

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupBtnAlign = ''
Parameters
stringBtn Alignment HTML Markup

Definition at line 55 of file newsletter.php.

◆ $markupBtnClass

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupBtnClass = ''
Parameters
stringBtn Class HTML Markup

Definition at line 53 of file newsletter.php.

◆ $markupBtnMarginTop

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupBtnMarginTop = ''
Parameters
stringBtn Margin HTML Markup

Definition at line 51 of file newsletter.php.

◆ $markupEmailLabel

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupEmailLabel = ''
Parameters
stringEmail Label HTML Markup

Definition at line 59 of file newsletter.php.

◆ $markupFontSizeEnd

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupFontSizeEnd = '</H2>'
Parameters
stringFont Size (H1-H6) HTML Markup End

Definition at line 65 of file newsletter.php.

◆ $markupFontSizeStart

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupFontSizeStart = '<H2>'
Parameters
stringFont Size (H1-H6) HTML Markup Start

Definition at line 63 of file newsletter.php.

◆ $markupFormWidth

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupFormWidth = ''
Parameters
stringForm width HTML Markup

Definition at line 67 of file newsletter.php.

◆ $markupIcon

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupIcon = ''
Parameters
stringIcon HTML Markup

Definition at line 61 of file newsletter.php.

◆ $markupNameLabel

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$markupNameLabel = ''
Parameters
stringName Label HTML Markup

Definition at line 57 of file newsletter.php.

◆ $newsletterBtnAlign

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterBtnAlign = 'text-center'
Parameters
stringButton Button Alignment

Definition at line 41 of file newsletter.php.

◆ $newsletterBtnClass

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterBtnClass = 'btn btn-success'
Parameters
stringButton CSS Class

Definition at line 33 of file newsletter.php.

◆ $newsletterBtnMarginTop

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterBtnMarginTop = '5px'
Parameters
stringButton Button Margin Top

Definition at line 39 of file newsletter.php.

◆ $newsletterBtnText

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterBtnText = 'Subscribe Newsletter'
Parameters
stringButton Text

Definition at line 31 of file newsletter.php.

◆ $newsletterEmailPlaceholder

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterEmailPlaceholder = 'Email'
Parameters
stringEmail Field Placeholder

Definition at line 37 of file newsletter.php.

◆ $newsletterFontSize

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterFontSize = 'h2'
Parameters
stringFont size of icon, heading and subtext

Definition at line 47 of file newsletter.php.

◆ $newsletterHideLabels

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterHideLabels = 'false'
Parameters
stringHide Form Labels?

Definition at line 43 of file newsletter.php.

◆ $newsletterIcon

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterIcon = 'fa fa-envelope-o'
Parameters
stringNewsletter Icon (eg. font awesome or glyphicons)

Definition at line 45 of file newsletter.php.

◆ $newsletterNamePlaceholder

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterNamePlaceholder = 'Name'
Parameters
stringName Field Placeholder

Definition at line 35 of file newsletter.php.

◆ $newsletterSubtext

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterSubtext = 'subscribe'
Parameters
stringThank You Subtext

Definition at line 25 of file newsletter.php.

◆ $newsletterThankYouSubtext

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterThankYouSubtext = 'for subscribing to our newsletter!'
Parameters
stringThank You SubText

Definition at line 29 of file newsletter.php.

◆ $newsletterThankYouTitle

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterThankYouTitle = 'Thank You'
Parameters
stringThank You Title Text

Definition at line 27 of file newsletter.php.

◆ $newsletterTitle

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterTitle = 'Newsletter'
Parameters
stringTitle Text

Definition at line 23 of file newsletter.php.

◆ $newsletterWidth

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$newsletterWidth = ''
Parameters
stringWidth of the form elements

Definition at line 49 of file newsletter.php.

◆ $widget

YAWK\WIDGETS\NEWSLETTER\SUBSCRIBE\newsletter::$widget = ''
Parameters
objectglobal widget object data

Definition at line 21 of file newsletter.php.


The documentation for this class was generated from the following file: