Ejemplo n.º 1
0
 /**
  * Return a string with the XML declaration if required
  *
  * Return a string with the XML declaration if required
  * If option 'browser' is used, it is decided by the browser's HTTP_USER_AGENT
  *
  * @param   string  $option  decide whether to set the XML declaration or not
  * @return  string|null  XML declaration or null
  */
 public function getXmlDeclaration($option = null)
 {
     // get xml declaration option from site settings if not given as argument
     if (is_null($option)) {
         $siteSettings = new Model_SiteSettings();
         $option = $siteSettings->get('xml_declaration');
     }
     // return null if content is not XHTML but simply HTML
     if (!$this->view->docType()->isXhtml()) {
         return null;
     }
     // decide whether to return an xml declaration depending on the option
     switch (strtolower($option)) {
         case 'always':
             return '<?xml version="1.0" encoding="' . $this->view->placeholder('charset') . '" ?>' . PHP_EOL;
         case 'browser':
             if ($this->_userAgentAcceptsXhtml()) {
                 return $this->getXmlDeclaration('always');
             }
             return $this->getXmlDeclaration('never');
         case 'never':
         default:
             return null;
     }
 }
Ejemplo n.º 2
0
 /**
  * set up the mail object
  *
  */
 public function __construct()
 {
     $this->_view = new Zend_View();
     $settings = new Model_SiteSettings();
     if ($settings->get('use_smtp_mail') == 1) {
         $config = array('auth' => 'Login', 'username' => $settings->get('smtp_username'), 'password' => $settings->get('smtp_password'));
         $this->_transport = new Zend_Mail_Transport_Smtp($settings->get('smtp_host'), $config);
     }
     $this->_mail = new Zend_Mail();
 }
Ejemplo n.º 3
0
 /**
  * Edit action
  *
  * Update the site settings file
  *
  * @return void
  */
 public function editAction()
 {
     $settings = Digitalus_Filter_Post::raw('setting');
     $s = new Model_SiteSettings();
     foreach ($settings as $k => $v) {
         $s->set($k, $v);
     }
     $s->save();
     $this->_message->add("Global parameters have been updated !!");
     $this->_redirect($this->_currentControllerUrl);
 }
Ejemplo n.º 4
0
 public static function getAdminLanguage()
 {
     $siteSettings = new Model_SiteSettings();
     $adminLang = $siteSettings->get('admin_language');
     if (empty($adminLang)) {
         $config = Zend_Registry::get('config');
         $adminLang = $config->language->defaultLocale;
     }
     if (empty($adminLang)) {
         $locale = new Zend_Locale();
         $adminLang = $locale->getLanguage();
     }
     if (empty($adminLang)) {
         throw new Digitalus_Language_Exception('No administrator language found!');
     }
     return $adminLang;
 }
Ejemplo n.º 5
0
 private function _updateTemplateReferences()
 {
     $this->_db->query("ALTER TABLE `" . Digitalus_Db_Table::getTableName('users') . "` ADD `openid` VARCHAR(100) NOT NULL AFTER `email`");
     $this->_db->query("UPDATE `" . Digitalus_Db_Table::getTableName('pages') . "` SET `publish_level` = '1' WHERE `publish_level` = 0");
     $siteSettings = new Model_SiteSettings();
     $siteSettings->set('xml_declaration', 'never');
     $siteSettings->set('publish_pages', 0);
     $siteSettings->save();
     return true;
 }
Ejemplo n.º 6
0
 public function get404Page()
 {
     $settings = new Model_SiteSettings();
     $page = $settings->get('page_not_found');
     $front = Zend_Controller_Front::getInstance();
     if ($page > 0) {
         $response = $front->getResponse();
         $response->setRawHeader('HTTP/1.1 404 Not Found');
         return $page;
     }
 }
Ejemplo n.º 7
0
 public function getOfflinePage()
 {
     $settings = new Model_SiteSettings();
     return $settings->get('offline_page');
 }
Ejemplo n.º 8
0
 /**
  * Sends a confirmation email
  *
  * @param  string $userName     User name to send email to
  * @param  string $emailAddress User's email address
  * @param  string $$emailText   Content of email
  * @return bool   True if successful, otherwise false
  */
 public function sendConfirmationMail($userName, $emailAddress, $emailText, $action = null)
 {
     $settings = new Model_SiteSettings();
     $emailText = $this->_createEmailText($userName, $emailAddress, $emailText, $action);
     $mail = new Zend_Mail();
     $mail->setBodyHtml($emailText, 'utf8');
     $mail->setBodyText(strip_tags($emailText), 'utf8');
     $mail->setFrom($settings->get('default_email'), $settings->get('default_email_sender'));
     $mail->addTo($emailAddress, $userName);
     $mail->setSubject($this->view->getTranslation('Registration'));
     if ($mail->send()) {
         return true;
     }
     return false;
 }
Ejemplo n.º 9
0
 public function googleIntegration()
 {
     $view = $this->_page->getView();
     $settings = new Model_SiteSettings();
     $view->placeholder('google_verify')->set($settings->get('google_verify'));
     $view->placeholder('google_tracking')->set($settings->get('google_tracking'));
 }
Ejemplo n.º 10
0
 /**
  * Initialize the form
  *
  * @return void
  */
 public function init()
 {
     parent::init();
     $view = $this->getView();
     $mdlSettings = new Model_SiteSettings();
     $settings = $mdlSettings->toObject();
     /* *********************************************************************
      * SITE
      * ****************************************************************** */
     $siteName = $this->createElement('text', 'name', array('label' => $view->getTranslation('Site name'), 'value' => $settings->name, 'belongsTo' => 'setting', 'filters' => array('StringTrim', 'StripTags')));
     $siteTitle = $this->createElement('text', 'title_separator', array('label' => $view->getTranslation('Title separator'), 'value' => $settings->title_separator, 'belongsTo' => 'setting', 'attribs' => array('class' => 'med'), 'filters' => array('StripTags')));
     $siteOnline = $this->createElement('checkbox', 'online', array('label' => $view->getTranslation('Site is online'), 'value' => intval($settings->online), 'belongsTo' => 'setting', 'description' => $view->getTranslation('Status')));
     $siteSubmit = $this->createElement('submit', 'site', array('label' => $view->getTranslation('Update General Site Settings'), 'attribs' => array('class' => 'submit')));
     $this->addElement($siteName);
     $this->addElement($siteTitle);
     $this->addElement($siteOnline);
     $this->addElement($siteSubmit);
     $this->addDisplayGroup(array('form_instance', 'name', 'title_separator', 'online', 'site'), 'siteGroup', array('legend' => $view->getTranslation('General settings')));
     /* *********************************************************************
      * CONTENT
      * ****************************************************************** */
     $homePage = $view->selectPage('home_page');
     $homePage->setOptions(array('label' => $view->getTranslation('Home Page'), 'value' => $settings->home_page, 'belongsTo' => 'setting'));
     $pageNotFound = $view->selectPage('page_not_found');
     $pageNotFound->setOptions(array('label' => $view->getTranslation('404 Page'), 'value' => $settings->page_not_found, 'belongsTo' => 'setting'));
     $offlinePage = $view->selectPage('offline_page');
     $offlinePage->setOptions(array('label' => $view->getTranslation('Site Offline Page'), 'value' => $settings->offline_page, 'belongsTo' => 'setting'));
     $addMenuLinks = $this->createElement('checkbox', 'add_menu_links', array('label' => $view->getTranslation('Automatically add menu links'), 'value' => intval($settings->add_menu_links), 'belongsTo' => 'setting', 'description' => $view->getTranslation('Menu links')));
     $publishPages = $this->createElement('checkbox', 'publish_pages', array('label' => $view->getTranslation('Automatically publish pages on creation'), 'value' => intval($settings->publish_pages), 'belongsTo' => 'setting', 'description' => $view->getTranslation('Publish Pages')));
     $contentSubmit = $this->createElement('submit', 'content', array('label' => $view->getTranslation('Update Content Settings'), 'attribs' => array('class' => 'submit')));
     $this->addElement($homePage);
     $this->addElement($pageNotFound);
     $this->addElement($offlinePage);
     $this->addElement($addMenuLinks);
     $this->addElement($publishPages);
     $this->addElement($contentSubmit);
     $this->addDisplayGroup(array('form_instance', 'home_page', 'page_not_found', 'offline_page', 'add_menu_links', 'publish_pages', 'content'), 'contentGroup', array('legend' => $view->getTranslation('Managing Content')));
     /* *********************************************************************
      * DESIGN
      * ****************************************************************** */
     $designConfig = Zend_Registry::get('config')->template->default->public;
     $currentDesign = isset($settings->default_design) ? $settings->default_design : $designConfig->template . '_' . $designConfig->page;
     $defaultDesign = $view->selectDesign('default_design', $currentDesign);
     $defaultDesign->setOptions(array('label' => $view->getTranslation('Default design'), 'value' => $currentDesign, 'belongsTo' => 'setting'));
     $designSubmit = $this->createElement('submit', 'design', array('label' => $view->getTranslation('Update Design Settings'), 'attribs' => array('class' => 'submit')));
     $this->addElement($defaultDesign);
     $this->addElement($designSubmit);
     $this->addDisplayGroup(array('form_instance', 'default_design', 'design'), 'designGroup', array('legend' => $view->getTranslation('Design')));
     /* *********************************************************************
      * META DATA
      * ****************************************************************** */
     $xmlDeclaration = $view->radioXmlDeclaration('xml_declaration', $settings->xml_declaration);
     $xmlDeclaration->setOptions(array('label' => $view->getTranslation('XML declaration'), 'value' => $settings->xml_declaration, 'belongsTo' => 'setting', 'description' => $view->getTranslation('XML declaration')));
     $docType = $view->selectDoctype('doc_type', $settings->doc_type);
     $docType->setOptions(array('label' => $view->getTranslation('Doc Type'), 'value' => $settings->doc_type, 'belongsTo' => 'setting'));
     $defaultCharset = $this->createElement('text', 'default_charset', array('label' => $view->getTranslation('Default charset'), 'value' => $settings->default_charset, 'belongsTo' => 'setting', 'filters' => array('StringTrim', 'StripTags')));
     $defaultTimezone = $view->selectTimezone('default_timezone', $settings->default_timezone);
     $defaultTimezone->setOptions(array('label' => $view->getTranslation('Default timezone'), 'value' => $settings->default_timezone, 'belongsTo' => 'setting', 'validators' => array('Timezone')));
     $metaSubmit = $this->createElement('submit', 'meta', array('label' => $view->getTranslation('Update Page Meta Data'), 'attribs' => array('class' => 'submit')));
     $this->addElement($xmlDeclaration);
     $this->addElement($docType);
     $this->addElement($defaultCharset);
     $this->addElement($defaultTimezone);
     $this->addElement($metaSubmit);
     $this->addDisplayGroup(array('form_instance', 'xml_declaration', 'doc_type', 'default_charset', 'default_timezone', 'meta'), 'metaGroup', array('legend' => $view->getTranslation('Meta Data')));
     /* *********************************************************************
      * INTERNATIONALISATION
      * ****************************************************************** */
     $defaultLanguage = $view->selectLanguage('default_language', $settings->default_language);
     $defaultLanguage->setOptions(array('label' => $view->getTranslation('Default language'), 'value' => $settings->default_language, 'belongsTo' => 'setting'));
     $adminLanguageValue = $view->getAdminLanguage();
     $adminLanguage = $view->selectLanguage('admin_language', $settings->admin_language);
     $adminLanguage->setOptions(array('label' => $view->getTranslation('Admin language'), 'value' => $adminLanguageValue, 'belongsTo' => 'setting'));
     $internationalSubmit = $this->createElement('submit', 'language', array('label' => $view->getTranslation('Update Internationalization Settings'), 'attribs' => array('class' => 'submit')));
     $this->addElement($defaultLanguage);
     $this->addElement($adminLanguage);
     $this->addElement($internationalSubmit);
     $this->addDisplayGroup(array('form_instance', 'default_language', 'admin_language', 'language'), 'internationalGroup', array('legend' => $view->getTranslation('Internationalization')));
     /* *********************************************************************
      * EMAIL
      * ****************************************************************** */
     $defaultEmail = $this->createElement('text', 'default_email', array('label' => $view->getTranslation('Default email address'), 'value' => $settings->default_email, 'belongsTo' => 'setting', 'filters' => array('StringTrim'), 'validators' => array('EmailAddress'), 'errorMessages' => array('A valid email address is required')));
     $defaultEmailSender = $this->createElement('text', 'default_email_sender', array('label' => $view->getTranslation('Default sender'), 'value' => $settings->default_email_sender, 'belongsTo' => 'setting', 'filters' => array('StringTrim', 'StripTags')));
     $useSmtpMail = $this->createElement('checkbox', 'use_smtp_mail', array('label' => $view->getTranslation('Use SMTP Transport'), 'value' => intval($settings->use_smtp_mail), 'belongsTo' => 'setting', 'description' => $view->getTranslation('Transport'), 'filters' => array('StringTrim', 'StripTags')));
     $smtpHost = $this->createElement('text', 'smtp_host', array('label' => $view->getTranslation('SMTP host'), 'value' => $settings->smtp_host, 'belongsTo' => 'setting', 'filters' => array('StringTrim', 'StripTags')));
     $smtpUsername = $this->createElement('text', 'smtp_username', array('label' => $view->getTranslation('SMTP username'), 'value' => $settings->smtp_username, 'belongsTo' => 'setting', 'filters' => array('StringTrim', 'StripTags')));
     $smtpPassword = $this->createElement('password', 'smtp_password', array('label' => $view->getTranslation('SMTP password'), 'value' => $settings->smtp_password, 'belongsTo' => 'setting', 'filters' => array('StringTrim')));
     $mailTest = $this->createElement('AnyMarkup', 'mail_test', array('value' => $view->link($view->getTranslation('Send test message'), '/admin/site/mail-test', 'email_go.png'), 'decorators' => $this->getStandardDecorator('text')));
     $mailSubmit = $this->createElement('submit', 'mail', array('label' => $view->getTranslation('Update Mail Settings'), 'attribs' => array('class' => 'submit')));
     $this->addElement($defaultEmail)->addElement($defaultEmailSender)->addElement($useSmtpMail)->addElement($smtpHost)->addElement($smtpUsername)->addElement($smtpPassword)->addElement($mailTest)->addElement($mailSubmit);
     $group = $this->addDisplayGroup(array('form_instance', 'default_email', 'default_email_sender', 'use_smtp_mail', 'smtp_host', 'smtp_username', 'smtp_password', 'mail_test', 'mail'), 'mailGroup', array('legend' => $view->getTranslation('Mail Settings')));
     /* *********************************************************************
      * GOOGLE INTEGRATION
      * ****************************************************************** */
     $googleVerify = $this->createElement('textarea', 'google_verify', array('label' => $view->getTranslation('Verification code'), 'value' => $settings->google_verify, 'belongsTo' => 'setting', 'attribs' => array('class' => 'med'), 'filters' => array('StringTrim', 'StripTags')));
     $googleTracking = $this->createElement('textarea', 'google_tracking', array('label' => $view->getTranslation('Tracking code'), 'value' => $settings->google_tracking, 'belongsTo' => 'setting', 'attribs' => array('class' => 'med'), 'filters' => array('StringTrim', 'StripTags')));
     $googleSubmit = $this->createElement('submit', 'google', array('label' => $view->getTranslation('Update Google Settings'), 'attribs' => array('class' => 'submit')));
     $this->addElement($googleVerify);
     $this->addElement($googleTracking);
     $this->addElement($googleSubmit);
     $this->addDisplayGroup(array('form_instance', 'google_verify', 'google_tracking', 'google'), 'googleGroup', array('legend' => $view->getTranslation('Google Integration')));
 }
Ejemplo n.º 11
0
 protected function _getCharset()
 {
     $settings = new Model_SiteSettings();
     $this->_charset = $settings->get('default_charset');
 }
Ejemplo n.º 12
0
 /**
  * Reset password action
  *
  * @return void
  */
 public function resetPasswordAction()
 {
     if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
         $userName = Digitalus_Filter_Post::get('name');
         $user = new Model_User();
         $match = $user->getUserByUsername($userName);
         if ($match) {
             //create the password
             $password = Digitalus_Toolbox_String::random(10);
             //10 character random string
             //load the email data
             $data['username'] = $match->name;
             $data['first_name'] = $match->first_name;
             $data['last_name'] = $match->last_name;
             $data['email'] = $match->email;
             $data['password'] = $password;
             //get standard site settings
             $s = new Model_SiteSettings();
             $settings = $s->toObject();
             $emailFormat = "Hello %s (<em>%s %s</em>),<br /><br />Your password has been reset to:<br /><br /><strong>%s</strong><br /><br />You can login again with Your new Password.<br /><br />Best wishes,<br />%s";
             $emailText = sprintf($emailFormat, $data['username'], $data['first_name'], $data['last_name'], $data['password'], $settings->default_email_sender);
             //attempt to send the email
             $mail = new Digitalus_Mail();
             if ($mail->send($match->email, array($settings->default_email, $settings->default_email_sender), 'Password Reminder', $emailText)) {
                 //update the user's password
                 $match->password = md5($password);
                 $match->save();
                 //save the new password
                 $m = new Digitalus_View_Message();
                 $m->add($this->view->getTranslation('Your password has been reset for security and sent to your email address'));
             } else {
                 $e = new Digitalus_View_Error();
                 $e->add($this->view->getTranslation('Sorry, there was an error sending you your updated password. Please contact us for more help.'));
             }
         } else {
             $e = new Digitalus_View_Error();
             $e->add($this->view->getTranslation('Sorry, we could not locate your account. Please contact us to resolve this issue.'));
         }
         $url = 'admin/auth/login';
         $this->_redirect($url);
     }
 }
Ejemplo n.º 13
0
 /**
  * Mail test action
  *
  * @return void
  */
 public function mailTestAction()
 {
     $settings = new Model_SiteSettings();
     $message = new Digitalus_Mail();
     $message->send($settings->get('default_email'), array($settings->get('default_email'), $settings->get('default_email_sender')), 'Digitalus CMS Test Message', 'test');
     $this->_forward('index');
 }