/** * 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; } }
/** * 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(); }
/** * 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); }
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; }
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; }
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; } }
public function getOfflinePage() { $settings = new Model_SiteSettings(); return $settings->get('offline_page'); }
/** * 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; }
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')); }
/** * 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'))); }
protected function _getCharset() { $settings = new Model_SiteSettings(); $this->_charset = $settings->get('default_charset'); }
/** * 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); } }
/** * 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'); }