/** * Prepare form * * @param Uni_Core_Form $form */ protected function _prepareForm(Uni_Core_Form $form) { $form->setName('menu')->setMethod('post'); $subForm1 = new Zend_Form_SubForm(); $subForm1->setLegend('Menu Item Information'); $subForm1->setDescription('Menu Item Information'); $idField = new Zend_Form_Element_Hidden('id'); $title = new Zend_Form_Element_Text('title', array('class' => 'required', 'maxlength' => 200)); $title->setRequired(true)->setLabel('Title')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty'); $link = new Zend_Form_Element_Text('link', array('maxlength' => 200)); $link->setLabel('Link')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty')->setDescription('Use module/controller/action for internal links or http://www.example.com for external links'); $open_window = new Zend_Form_Element_Select('open_window', array('class' => 'required', 'maxlength' => 200)); $open_window->setRequired(true)->setLabel('Open Window')->setMultiOptions(Fox::getModel('navigation/menu')->getAllTargetWindows()); $status = new Zend_Form_Element_Select('status', array('class' => 'required', 'maxlength' => 200)); $status->setRequired(true)->setLabel('Status')->setMultiOptions(Fox::getModel('navigation/menu')->getAllStatuses()); $sort_order = new Zend_Form_Element_Text('sort_order', array('class' => 'required', 'maxlength' => 200)); $sort_order->setRequired(true)->setLabel('Sort Order')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty'); $style_class = new Zend_Form_Element_Text('style_class'); $style_class->setLabel('Style Class')->addFilter('StripTags')->addFilter('StringTrim'); $menugroup = new Zend_Form_Element_Multiselect('menu_group', array('class' => 'required')); $menugroup->setRequired(true)->setLabel('Menu Group')->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty')->setMultiOptions(Fox::getModel('navigation/menugroup')->getMenuGroupOptions()); $subForm1->addElements(array($idField, $title, $link, $open_window, $sort_order, $style_class, $status, $menugroup)); $form->addSubForm($subForm1, 'subform1'); parent::_prepareForm($form); }
/** * Send reply to contact request * * @param string $replyMessage */ public function reply($replyMessage) { $this->setStatus(Fox_Contact_Model_Contact::STATUS_REPLIED); $this->save(); $modelTemplate = Fox::getModel('core/email/template'); $modelTemplate->sendTemplateMail(Fox::getPreference('contact/reply/email_template'), $this->getEmail(), array('sender_email' => Fox::getPreference('contact/reply/email'), 'sender_name' => Fox::getPreference('contact/reply/name')), array('name' => $this->getName(), 'subject' => $this->getSubject(), 'message' => $this->getMessage(), 'reply' => $replyMessage)); }
/** * Get newsletter template content * * @return string */ public function getTemplateContent() { $id = $this->getRequest()->getParam('tId'); $model = Fox::getModel('newsletter/template'); $model->load($id); return $model->getContent(); }
/** * Get all generated packages * * @return array */ public function getAllGeneratedPackages() { $package = Fox::getModel("extensionmanager/generate/package"); $pkgPath = $package->getGeneratedPkgDir(); $pkgList = array(); $noMod = array('.', '..'); $doc = new DOMDocument(); if (is_dir($pkgPath)) { $dp = opendir($pkgPath); while ($file = readdir($dp)) { if (!in_array($file, $noMod)) { $doc->load($pkgPath . DS . $file); if ($doc->documentElement->nodeName == Fox_Extensionmanager_Model_Generate_Package::PACKAGE_ROOT_ELEMENT && $doc->documentElement->childNodes) { $data = array(); $nList = $doc->documentElement->childNodes; foreach ($nList as $n) { if (in_array($n->nodeName, array(Fox_Extensionmanager_Model_Generate_Package::PACKAGE_NAME_ELEMENT, Fox_Extensionmanager_Model_Generate_Package::PACKAGE_VERSION_ELEMENT, Fox_Extensionmanager_Model_Generate_Package::PACKAGE_STABILITY_ELEMENT))) { $data[$n->nodeName] = $n->nodeValue; } } if ($data) { $pkgList[] = $data; } } } } } sort($pkgList); return $pkgList; }
/** * Get config * * @return Fox_Extensionmanager_Model_Config */ protected function getConfig() { if (!$this->config) { $this->config = Fox::getModel("extensionmanager/config"); } return $this->config; }
/** * Loades cms page of specified key * * @param Fox_Core_Controller_Action $controller * @param string $key * @return boolean */ public function routKey($controller, $key) { $page = Fox::getModel('cms/page'); $page->load($key, 'url_key'); if ($page->getId() && $page->getStatus()) { if (($container = $page->getLayout()) != '') { $layoutUpdate = '<container key="' . $container . '"/>'; } if (($lUpdate = $page->getLayoutUpdate()) != '') { $layoutUpdate .= $lUpdate; } $layout = $controller->loadLayout($layoutUpdate, $key); $layout->setTitle($page->getTitle()); $layout->setMetaKeywords($page->getMetaKeywords()); $layout->setMetaDescription($page->getMetaDescription()); if ($contentView = $controller->getViewByKey('content')) { $pageView = Fox::getView('cms/page'); $pageView->setPageContent($page->getContent()); $pageView->setPageTitle($page->getTitle()); $pageView->setPageUrlKey($page->getUrlKey()); $contentView->addChild('__page_content__', $pageView); } $controller->renderLayout(); $controller->getResponse()->setHeader('HTTP/1.1', '200 ok'); $controller->getResponse()->setHeader('Status', '200 ok'); $this->routingCompleted = TRUE; } return $this->routingCompleted; }
/** * Delete Modules * * @param array $modules Name of modules that needs to be deleted are passed as array values */ public function deleteModules($modules) { foreach ($modules as $moduleName) { $module = Fox::getModel('core/module'); $module->load($moduleName); $module->delete(); } }
/** * Get current logined member * * @return Fox_Member_Model_Member|NULL */ public function getCurrentMember() { if (is_null($this->currentMember)) { $session = Fox::getModel('member/session'); $this->currentMember = $session->getLoginData(); } return $this->currentMember; }
/** * Prepare table columns */ protected function _prepareColumns() { $this->addColumn('id', array('label' => 'Id', 'align' => 'left', 'type' => self::TYPE_NUMBER, 'width' => 50, 'field' => 'id')); $this->addColumn('name', array('label' => 'Name', 'align' => 'left', 'field' => 'name')); $this->addColumn('email', array('label' => 'Email', 'align' => 'left', 'field' => 'email')); $this->addColumn('status', array('label' => 'Status', 'align' => 'center', 'width' => 150, 'type' => self::TYPE_OPTIONS, 'options' => Fox::getModel('newsletter/subscriber')->getAllStatuses(), 'field' => 'status')); parent::_prepareColumns(); }
/** * Prepare form * * @param Uni_Core_Form_Eav $form */ protected function _prepareForm(Uni_Core_Form_Eav $form) { $form->setName('setting')->setMethod('post'); $model = Fox::getModel($this->getModelKey()); $eavMetaData = $model->getEavFormMetaData(); $form->createEavForm($eavMetaData); $form->setElementsBelongTo($model->getItem()); parent::_prepareForm($form); }
/** * Prepare model collection */ protected function _prepareCollection() { $model = Fox::getModel('core/email/template'); $sortCondition = $this->getSortCondition(); $filters = $this->getSearchCriteria(); $collection = $model->getModelCollection($filters, '*', $sortCondition, $this->getColumns()); $this->setCollection($collection); parent::_prepareCollection(); }
/** * Prepare model collection */ protected function _prepareCollection() { $sortCondition = $this->getSortCondition(); $filters = $this->getSearchCriteria(); $setModel = Fox::getModel('eav/set'); $collection = $setModel->getModelCollection($filters, '*', $sortCondition, $this->getColumns()); $this->setCollection($collection); parent::_prepareCollection(); }
/** * Get parsed cms block content * * @param string $identifierKey * @return string */ public function getBlockContent($identifierKey) { $parsedContent = NULL; $model = Fox::getModel('cms/block'); $model->load($identifierKey, 'identifier_key'); if ($model->getId() && $model->getStatus() == Fox_Cms_Model_Block::STATUS_ENABLED) { $parsedContent = $this->view->getParsedContent($model->getContent()); } return $parsedContent; }
/** * Prepare form * * @param Uni_Core_Form_Eav $form */ protected function _prepareForm(Uni_Core_Form_Eav $form) { $form->setName('member')->setMethod('post'); $model = Fox::getModel($this->getModelKey()); $eavMetaData = $model->getEavFormMetaData(1); $form->createEavForm($eavMetaData); $form->addPrefixPath('Uni_Core_Admin_View_Form_Decorator', 'Uni/Core/Admin/View/Form/Decorator/', 'decorator'); $form->setDecorators(array('Tabs')); parent::_prepareForm($form); }
/** * Prepare container */ protected function _prepareContainer() { if (Fox::getModel('extensionmanager/session')->getFormData()) { $this->editing = true; $this->addButton(array("type" => "button", "button_text" => "Generate Package", "url" => $this->getUrl("*/*/generate-package"), "style_class" => "form-button", "confirm" => true, "confirm_text" => "Unsaved changes to package may lost.")); } $this->deleteButtonUrl = Fox::getUrl("*/*/delete"); $this->setIsDeleteButtonEnabled(TRUE); parent::_prepareContainer(); }
/** * Get menu html * * @return string */ function getMenuMarkup() { $markup = ''; $settingModel = Fox::getModel('admin/system/setting/config'); if ($settingModel) { $settingModel->loadSettingData($this->getRequest()->getParam('item', 'general')); $markup = $settingModel->getMenuMarkup(); } return $markup; }
/** * Public constructor */ function __construct() { parent::__construct(); $this->setId('attributes'); $this->setDefaultSort('frontend_label'); $this->setDefaultDir('ASC'); $this->setIsExportEnabled(FALSE); $this->setTableSession(TRUE); $this->attributeModel = Fox::getModel('eav/attribute'); }
/** * Prepare table columns */ protected function _prepareColumns() { $this->addColumn('id', array('label' => 'Id', 'align' => 'left', 'width' => 50, 'type' => self::TYPE_NUMBER, 'field' => 'id')); $this->addColumn('title', array('label' => 'Title', 'align' => 'left', 'field' => 'title')); $this->addColumn('identifier_key', array('label' => 'Identifier Key', 'align' => 'left', 'field' => 'identifier_key')); $this->addColumn('status', array('label' => 'Status', 'align' => 'center', 'width' => 100, 'type' => self::TYPE_OPTIONS, 'options' => Fox::getModel('cms/block')->getAllStatuses(), 'field' => 'status')); $this->addColumn('created_on', array('label' => 'Created On', 'align' => 'center', 'width' => 182, 'type' => self::TYPE_DATE, 'field' => 'created_on')); $this->addColumn('modified_on', array('label' => 'Modified On', 'align' => 'center', 'width' => 182, 'type' => self::TYPE_DATE, 'field' => 'modified_on')); parent::_prepareColumns(); }
/** * Controller predispatch method * * Called before action method */ function preDispatch() { parent::preDispatch(); if (!Fox::getModel('member/session')->getLoginData()) { if (!('member' === strtolower($this->getRequest()->getModuleName()) && 'account' === strtolower($this->getRequest()->getControllerName()) && 'login' === strtolower($this->getRequest()->getActionName())) && !('member' === strtolower($this->getRequest()->getModuleName()) && 'account' === strtolower($this->getRequest()->getControllerName()) && 'create' === strtolower($this->getRequest()->getActionName())) && !('member' === strtolower($this->getRequest()->getModuleName()) && 'account' === strtolower($this->getRequest()->getControllerName()) && 'forgot-password' === strtolower($this->getRequest()->getActionName())) && !('member' === strtolower($this->getRequest()->getModuleName()) && 'account' === strtolower($this->getRequest()->getControllerName()) && 'verification' === strtolower($this->getRequest()->getActionName())) && !('member' === strtolower($this->getRequest()->getModuleName()) && 'account' === strtolower($this->getRequest()->getControllerName()) && 'change-forget-password' === strtolower($this->getRequest()->getActionName()))) { $this->sendRedirect('member/account/login'); } } else { Fox::getModel('member/session')->setSessionTimeout(Fox::getMemberSessionInterval()); } }
/** * Get parsed block content * * @return string */ public function getBlockContent() { if (NULL == $this->parsedContent) { $model = Fox::getModel('cms/block'); $model->load($this->getViewKey(), 'identifier_key'); if ($model->getId() && $model->getStatus() == Fox_Cms_Model_Block::STATUS_ENABLED) { $this->blockContent = $model->getContent(); $this->parsedContent = stripslashes($this->getParsedContent($this->blockContent)); } } return $this->parsedContent ? $this->parsedContent : ''; }
/** * Prepare table columns */ protected function _prepareColumns() { $this->addColumn('id', array('label' => 'Id', 'align' => 'left', 'type' => self::TYPE_NUMBER, 'width' => 50, 'field' => 'id')); $this->addColumn('title', array('label' => 'Title', 'align' => 'left', 'field' => 'title')); $this->addColumn('url_key', array('label' => 'URL Key', 'align' => 'left', 'field' => 'url_key')); $this->addColumn('layout', array('label' => 'Layout', 'align' => 'left', 'width' => 120, 'field' => 'layout', 'type' => self::TYPE_OPTIONS, 'options' => Fox::getModel('cms/page')->getAvailableLayouts())); $this->addColumn('status', array('label' => 'Status', 'align' => 'center', 'width' => 70, 'type' => self::TYPE_OPTIONS, 'options' => Fox::getModel('cms/page')->getAllStatuses(), 'field' => 'status')); $this->addColumn('created', array('label' => 'Created On', 'align' => 'center', 'width' => 182, 'type' => self::TYPE_DATE, 'field' => 'created')); $this->addColumn('modified_on', array('label' => 'Modified On', 'align' => 'center', 'width' => 182, 'type' => self::TYPE_DATE, 'field' => 'modified_on')); $this->addColumn('page_action', array('label' => 'Action', 'width' => 70, 'filter' => FALSE, 'align' => 'center', 'field' => 'page_action', 'renderer' => 'cms/admin/page/table/renderer/action')); parent::_prepareColumns(); }
/** * Get menu html * * @param string $key Menu group key * @return string */ public function getMenu($key) { $menuHTML = ''; $cacheSettings = Uni_Core_CacheManager::loadCacheSettings(); $isCacheEnabled = isset($cacheSettings[Fox_Core_Model_Cache::CACHE_CODE_LAYOUT]) ? $cacheSettings[Fox_Core_Model_Cache::CACHE_CODE_LAYOUT] : FALSE; $package = Fox::getPreference(Uni_Controller_Action::MODE_ADMIN . '/package'); $theme = Fox::getPreference(Uni_Controller_Action::MODE_ADMIN . '/theme'); $cacheMenuBasePath = CACHE_DIR . DIRECTORY_SEPARATOR . Fox_Core_Model_Cache::CACHE_CODE_LAYOUT . DIRECTORY_SEPARATOR . Uni_Controller_Action::MODE_WEB . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . $theme . DIRECTORY_SEPARATOR . self::CACHE_MENU_FOLDER; file_exists($cacheMenuBasePath) && is_dir($cacheMenuBasePath) || mkdir($cacheMenuBasePath, 0777, TRUE); $cacheMenuPath = $cacheMenuBasePath . DIRECTORY_SEPARATOR . $key . '.menu'; if ($isCacheEnabled && file_exists($cacheMenuPath)) { $cacheMenuDoc = new DOMDocument(); $cacheMenuDoc->loadHTMLFile($cacheMenuPath); $menuHTML = $cacheMenuDoc->saveXML(); unset($cacheMenuDoc); } else { $menuGroupModel = Fox::getModel('navigation/menugroup'); $menuGroupModel->load($key, 'key'); if ($menuGroupModel->getId() && $menuGroupModel->getStatus() == Fox_Navigation_Model_Menugroup::STATUS_ENABLED) { $menuModel = Fox::getModel('navigation/menu'); $menuList = $menuModel->getMenuItemsByGroup($key); $mnuDoc = new DOMDocument(); $mnuDoc->formatOutput = true; $mnuRoot = NULL; if (count($menuList)) { $mnuRoot = Uni_Data_XDOMDocument::createNode(self::ROOT_TAG, array('class' => 'menu_container'), $mnuDoc); $mnuDoc->appendChild($mnuRoot); foreach ($menuList as $menu) { $node = Uni_Data_XDOMDocument::createNode(self::LEAF_TAG, array('class' => 'menu_nav' . ($menu['style_class'] ? ' ' . $menu['style_class'] : '')), $mnuDoc); if (strpos($menu['link'], 'http://', 0) === 0 || strpos($menu['link'], 'https://', 0) === 0) { $link = $menu['link']; } else { $link = Fox::getUrl($menu['link']); } $link = Uni_Data_XDOMDocument::createNode('a', array('href' => $link, 'target' => $menu['open_window'], 'class' => $menu['style_class']), $mnuDoc); $link->appendChild($mnuDoc->createTextNode($menu['title'])); $node->appendChild($link); $mnuRoot->appendChild($node); } } if (isset($mnuDoc)) { $menuHTML = $mnuDoc->saveXML($mnuRoot); if ($isCacheEnabled) { $mnuDoc->saveHTMLFile($cacheMenuPath); @chmod($cacheMenuPath, 0777); } } unset($mnuDoc); } } return $menuHTML; }
/** * Prepare table columns */ protected function _prepareColumns() { $this->addColumn('id', array('label' => 'Id', 'align' => 'left', 'type' => self::TYPE_NUMBER, 'width' => 50, 'field' => 'id')); $this->addColumn('name', array('label' => 'Name', 'align' => 'left', 'field' => 'name')); $this->addColumn('subject', array('label' => 'Subject', 'align' => 'left', 'field' => 'subject')); $this->addColumn('sender_name', array('label' => 'Sender Name', 'align' => 'left', 'field' => 'sender_name')); $this->addColumn('sender_email', array('label' => 'Sender Email', 'align' => 'left', 'field' => 'sender_email')); $this->addColumn('update_date', array('label' => 'Modified On', 'align' => 'center', 'field' => 'update_date', 'type' => self::TYPE_DATE)); $this->addColumn('status', array('label' => 'Status', 'align' => 'center', 'width' => 70, 'type' => self::TYPE_OPTIONS, 'options' => Fox::getModel('newsletter/template')->getAllStatuses(), 'field' => 'status')); $this->addColumn('last_sent', array('label' => 'Last Sent', 'align' => 'center', 'field' => 'last_sent', 'type' => self::TYPE_DATE)); $this->addColumn('action', array('label' => 'Action', 'width' => 100, 'filter' => FALSE, 'align' => 'center', 'field' => 'action', 'renderer' => 'newsletter/admin/template/table/renderer/action')); parent::_prepareColumns(); }
/** * Prepare form * * @param Uni_Core_Form_Eav $form */ protected function _prepareForm(Uni_Core_Form_Eav $form) { $form->setName('member')->setMethod('post'); $model = Fox::getModel($this->getModelKey()); if (Fox::getLoggedMember()) { $model->load(Fox::getLoggedMember()->getId()); } $eavMetaData = $model->getEavFormMetaData(1, Fox_Eav_Model_Abstract::EDITABLE_TYPE_FRONTEND); $form->createEavForm($eavMetaData); $form->addPrefixPath('Uni_Core_Admin_View_Form_Decorator', 'Uni/Core/Admin/View/Form/Decorator/', 'decorator'); $form->setDecorators(array('Tabs')); parent::_prepareForm($form); }
/** * Check stability is reliable * * @return boolean */ private function isReliableStability() { $packageInfo = $this->getViewOptions('package'); if (isset($packageInfo['stability']) && $packageInfo['stability']) { if ($packageInfo['stability'] >= Fox::getPreference('extensionmanager/downloader/preferred_state')) { return true; } else { $this->messages[] = "This extension is under " . Fox::getModel('extensionmanager/package/state')->getOptionText($packageInfo['stability']) . " state"; } } else { $this->messages[] = "Unknown stability"; } return false; }
/** * Load module settings data * * @param boolean $forceCreate * @return array */ public static function loadPreferences($forceCreate = FALSE) { if (!$forceCreate && !empty(self::$preferences)) { self::$preferences; } $ds = DIRECTORY_SEPARATOR; $preferenceFilePath = CACHE_DIR . $ds . Fox_Core_Model_Cache::CACHE_CODE_PREFERENCE; $fileName = 'preference.xml'; self::$preferences = array(); $xDom = new Uni_Data_XDOMDocument(); $cacheSettings = Uni_Core_CacheManager::loadCacheSettings(); $isCacheEnabled = isset($cacheSettings[Fox_Core_Model_Cache::CACHE_CODE_PREFERENCE]) ? $cacheSettings[Fox_Core_Model_Cache::CACHE_CODE_PREFERENCE] : FALSE; if ($forceCreate || !$isCacheEnabled || !file_exists($preferenceFilePath . $ds . $fileName)) { if (!file_exists($preferenceFilePath)) { if (!@mkdir($preferenceFilePath, 0777, TRUE)) { throw new Exception('"' . $preferenceFilePath . '" not found'); } } $xDom->preserveWhiteSpace = false; $xDom->formatOutput = true; $preferenceModel = Fox::getModel('core/preference'); $collection = $preferenceModel->getCollection(); $root = $xDom->createElement('preferences'); foreach ($collection as $preference) { self::$preferences[$preference['name']] = $preference['value']; $cData = $xDom->createCDATASection(''); $cData->appendData($preference['value']); $entry = $xDom->createElement('entry'); $entry->setAttribute('key', $preference['name']); $root->appendChild($entry); $entry->appendChild($cData); } $xDom->appendChild($root); $doc = $xDom->save($preferenceFilePath . $ds . $fileName); @chmod($preferenceFilePath, 0777); } else { $xDom->load($preferenceFilePath . $ds . $fileName); if ($xDom->documentElement->hasChildNodes()) { $nodeList = $xDom->documentElement->childNodes; foreach ($nodeList as $n) { if ($n->nodeType == XML_ELEMENT_NODE && ($key = $n->getAttribute('key'))) { self::$preferences[$key] = $n->nodeValue; } } } } unset($xDom); return self::$preferences; }
/** * Get Selected tree nodes * * @return array */ public function getSelectedTreeNodes() { $treeSelected = array(); $data = Fox::getModel('extensionmanager/session')->getFormData(); if (isset($data['content_tree_data']) && $data['content_tree_data']) { $treeDom = Uni_Data_XDOMDocument::loadXML($data['content_tree_data']); foreach ($treeDom->documentElement->childNodes as $node) { if ($node->nodeName == "#text") { continue; } $treeSelected[] = $node->getAttribute("path"); } } return $treeSelected; }
/** * Send newsletter to subscribers */ public function sendNewsletter() { $subscriberModel = Fox::getModel('newsletter/subscriber'); $subscriberCollection = $subscriberModel->getCollection('status=' . Fox_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED); $currDate = Fox_Core_Model_Date::getCurrentDate('Y-m-d H:i:s'); $modelTemplate = Fox::getModel('core/email/template'); foreach ($subscriberCollection as $subscriber) { $subject = $modelTemplate->getParsedContent($this->getSubject(), array('email' => $subscriber['email'], 'name' => $subscriber['name'])); $message = $modelTemplate->getParsedContent($this->getContent(), array('email' => $subscriber['email'], 'name' => $subscriber['name'])); $modelTemplate->sendMail($subscriber['email'], $this->getSenderEmail(), $this->getSenderName(), $subject, $message); } $this->setStatus(Fox_Newsletter_Model_Template::STATUS_SENT); $this->setLastSent($currDate); $this->save(); }
/** * Prepare form * * @param Uni_Core_Form_Eav $form */ protected function _prepareForm(Uni_Core_Form_Eav $form) { $form->setName('member')->setMethod('post'); $model = Fox::getModel($this->getModelKey()); $id = $this->getRequest()->getParam('id', FALSE); $edit = 0; if ($id) { $model->load($id); if ($model->getId()) { $edit = Fox_Eav_Model_Abstract::EDITABLE_TYPE_BACKEND; } } $eavMetaData = $model->getEavFormMetaData(1, $edit); $form->createEavForm($eavMetaData); parent::_prepareForm($form); }
/** * Fetches and writes analytics data to cache and database */ public function saveAnalyticsData() { try { if (!$this->isTodaysFileExists()) { $dayTimeStamp = 24 * 60 * 60; $prevDateTimeStamp = time(); $dataArray = array(); $fromDate = date('Y-m-d', $prevDateTimeStamp - 30 * $dayTimeStamp); $toDate = date('Y-m-d', $prevDateTimeStamp - $dayTimeStamp); $analyticsData = Fox::getModel('admin/analytics')->getAnalyticsData($fromDate, $toDate); $model = Fox::getModel('admin/analytics'); $ga_profile_id = $this->getProfileId(); for ($i = 30; $i >= 1; $i--) { $date = date('Y-m-d', $prevDateTimeStamp - $i * $dayTimeStamp); $value = Fox_Core_Model_Date::__toLocaleDate(strtotime($date), "d-M-Y"); $total_results = 0; $page_views = 0; $visits = 0; if (false && array_key_exists($date, $analyticsData)) { $total_results = $analyticsData[$date]['page_views']; $page_views = $analyticsData[$date]['total_results']; $visits = $analyticsData[$date]['total_visits']; } else { $results = $this->requestReportData($ga_profile_id, $date, $date); if (count($results) > 0) { $page_views = $results['page_views']; $visits = $results['visits']; } $model->setDateValue($date); $model->setTotalResults($total_results); $model->setPageViews($page_views); $model->setTotalVisits($visits); $model->save(); $model->unsetData(); } $dataArray[$i]['value'] = $value; $dataArray[$i]['page_views'] = $page_views; $dataArray[$i]['total_visits'] = $visits; } $this->writeData($dataArray); } } catch (Exception $e) { Fox::getHelper('core/message')->setError($e->getMessage()); } }