pageTitle = $title; if ($keywords) $this->keywords = $keywords; if ($description) $this->description = $description; } /** * @return string the page title. Defaults to the controller name and the action name. */ public function getPageTitle() { if ($this->_pageTitle !== null) return $this->_pageTitle; else { if (!empty($this->pageName)) $this->_pageTitle = $this->pageName . " | " . Yii::t('site', 'Авто лайф'); else $this->_pageTitle = Yii::t('site', 'Авто лайф'); return $this->_pageTitle; } } /** * @param string $value the page title. */ public function setPageTitle($value) { $this->_pageTitle = $value; } /** * @param $section * @param $key * @return array */ public function loadStaticPage($section, $key) { /** @var $page StaticPage */ $page = StaticPage::modelByPk($section, $key); $this->pageName = $page->i18n->name; $this->setSEOParams($page->i18n->title, $page->i18n->keywords, $page->i18n->description); return $page->getDataAttributes() + $page->i18n->getDataAttributes(); } public function init() { parent::init(); /** @var $dataModel StaticData */ $dataModel = StaticData::model()->with('i18n')->findByPk(array('section' => 'site', 'key' => 'general')); // CVarDumper::dump($dataModel->i18n,10,true); exit(); $this->siteData = $dataModel->getDataAttributes() + $dataModel->i18n->getDataAttributes(); $this->headerGalleryId = $this->siteData['gallery_id']; $this->socialLinks = $this->siteData['social_links']; $this->socialLinksSport = $this->siteData['social_links_sport']; } protected function beforeAction($action) { $res = parent::beforeAction($action); if ($res) { $this->contactForm = new ContactForm(); if (isset($_POST['ContactForm'])) { Yii::app()->request->validateCsrfToken(null); $this->contactForm->setAttributes($_POST['ContactForm']); $route = $this->id . '/' . $this->action->id; $disabledRoutes = array( 'sport/index', 'site/index', 'calendarSection/calendar', 'albumsSection/albums', 'albumsSection/album', 'warranty/index', 'site/contact', ); if ($this->contactForm->validate() && empty($this->contactForm->link) && (!in_array($route, $disabledRoutes))) { /** @var $contact Contact */ $contact = Contact::model()->findByPk($this->contactForm->contact); /** @var $mailer Swift_Mailer */ $mailer = Yii::app()->swiftMailer->getMailer(); $message = Swift_Message::newInstance(); $message->setReplyTo($this->contactForm->email); $message->setFrom('site@auto-life.ua'); $message->setTo($contact->email); $args = Swift_DependencyContainer::getInstance() ->createDependenciesFor('mime.message'); /** @var $grammar Swift_Mime_Grammar */ $grammar = $args[3]; if (isset($this->siteData['bcc_emails']) && (!empty($this->siteData['bcc_emails']))) foreach (explode(',', $this->siteData['bcc_emails']) as $e) if (preg_match('/^' . $grammar->getDefinition('addr-spec') . '$/D', $e)) $message->addBcc($e); if (!empty($contact->bcc_email)) foreach (explode(',', $contact->bcc_email) as $e) { if (preg_match('/^' . $grammar->getDefinition('addr-spec') . '$/D', $e)) $message->addBcc($e); } $message->setSubject('Вопрос, c сайта Авто-лайф'); $message->setBody( "Имя: {$this->contactForm->name}\r\n" . "E-Mail: {$this->contactForm->email}\r\n" . "Контактный номер: {$this->contactForm->phone}\r\n" . "Текст вопроса: {$this->contactForm->body}\r\n" . "\r\nОтправлено со страницы: " . Yii::app()->getBaseUrl(true) . Yii::app()->request->getUrl()); $mailer->send($message); Yii::app()->user->setFlash('contact', Yii::t('site', 'ВАШ ЗАПРОС УСПЕШНО ОТПРАВЛЕН!
Благодарим Bас за уделенное время, мы постараемся максимально быстро и оперативно ответить Вам.')); //$this->refresh(); } } } return $res; } /** @return GalleryPhoto[] */ public function getHeaderPhotos() { $criteria = new CDbCriteria(); $criteria->condition = 'gallery_id = :gallery_id'; $criteria->params[':gallery_id'] = $this->sectionGalleryId; $criteria->order = 'rand()'; $r1 = GalleryPhoto::model()->findAll($criteria); if (count($r1) > 0) return $r1; $criteria->params[':gallery_id'] = $this->headerGalleryId; return GalleryPhoto::model()->findAll($criteria); } public function setContacts($contacts, $force = false) { if (empty($contacts)) return; foreach ($contacts as $k => $v) { if (empty($v)) unset($contacts[$k]); } if (count($contacts) > 0 && ($this->_contacts === null || $force)) $this->_contacts = $contacts; } public function getContacts() { $contacts = array(); if (isset($this->_contacts) && (!empty($this->_contacts))) { $criteria = new CDbCriteria(); $criteria->alias = 't'; $criteria->addInCondition('t.id', $this->_contacts); $criteria->index = 'id'; $data = Contact::model()->with('i18n')->findAll($criteria); foreach ($this->_contacts as $id) { if (isset($data[$id])) $contacts[] = $data[$id]; } } return $contacts; } }