/**
  * 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());
     }
 }