예제 #1
0
 private function _loadSeoData()
 {
     if (isset($this->_params['cat'])) {
         $this->_params['cat']['seo'] = Axis::single('catalog/hurl')->select('key_word')->where('key_id = ?', $this->_params['cat']['value'])->where("key_type = 'c'")->where('site_id = ?', Axis::getSiteId())->fetchOne();
     }
     if (isset($this->_params['manufacturer'])) {
         $this->_params['manufacturer']['seo'] = strtolower(Axis::single('catalog/product_manufacturer')->getNameById($this->_params['manufacturer']['value']));
     }
     if (isset($this->_params['attributes'])) {
         /*//
                     //exit();
                     $rows = Axis::single('catalog/product_option_text')
                         ->getOptionsByAttributtes(
                             $this->_params['attributes']
                         );
         
                     foreach ($rows as $row) {
                         $this->_params['at_' . $row['option_id']] = array(
                             'value' => $row['id'],
                             'seo' => strtolower($row['value_name']),
                             'option_name' => $row['option_name'],
                             'value_name' => $row['value_name']
                         );
                     }*/
         $this->_params['attributes'] = Axis::single('catalog/product_option')->getAttributesByKeyword($this->_params['attributes']);
     }
 }
예제 #2
0
 public function log($observer)
 {
     if (!Axis::config('log/main/enabled')) {
         return false;
     }
     /**
      * @var $request Zend_Controller_Request_Abstract
      */
     $request = $observer->getController()->getRequest();
     $url = $request->getScheme() . '://' . $request->getHttpHost() . $request->getRequestUri();
     $refer = $request->getServer('HTTP_REFERER', '');
     $timestamp = Axis_Date::now()->toSQLString();
     $siteId = Axis::getSiteId();
     // add new url request
     $modelUrlInfo = Axis::single('log/url_info');
     $rowUrlInfo = $modelUrlInfo->select()->where('url = ?', $url)->where('refer = ?', $refer)->fetchRow();
     if (!$rowUrlInfo) {
         $rowUrlInfo = $modelUrlInfo->createRow(array('url' => $url, 'refer' => $refer));
         $rowUrlInfo->save();
     }
     //add/update visitor
     $visitor = Axis::single('log/visitor')->getVisitor();
     //add/update visitor info
     Axis::single('log/visitor_info')->getRow(array('visitor_id' => $visitor->id, 'user_agent' => $request->getServer('HTTP_USER_AGENT', ''), 'http_accept_charset' => $request->getServer('HTTP_ACCEPT_CHARSET', ''), 'http_accept_language' => $request->getServer('HTTP_ACCEPT_LANGUAGE', ''), 'server_addr' => $request->getServer('SERVER_ADDR', ''), 'remote_addr' => $request->getServer('REMOTE_ADDR', '')))->save();
     Axis::single('log/url')->insert(array('url_id' => $rowUrlInfo->id, 'visitor_id' => $visitor->id, 'visit_at' => $timestamp, 'site_id' => $siteId));
 }
예제 #3
0
 private function _initSeoParams($keywords)
 {
     if (!sizeof($keywords)) {
         return array();
     }
     $rowset = Axis::single('catalog/hurl')->select()->where('key_word IN (?)', $keywords)->where('site_id = ?', Axis::getSiteId())->fetchAssoc();
     foreach ($rowset as $row) {
         switch ($row['key_type']) {
             case 'c':
                 $this->_params['cat']['value'] = $row['key_id'];
                 if (empty($this->_params['cat']['seo'])) {
                     $this->_params['cat']['seo'] = $row['key_word'];
                 } else {
                     $this->_params['cat']['seo'] .= '/' . $row['key_word'];
                 }
                 break;
             case 'p':
                 $this->_params['product']['value'] = $row['key_id'];
                 $this->_params['product']['seo'] = $row['key_word'];
                 $this->getRequest()->setParam('product', $row['key_id']);
                 break;
             case 'm':
                 $mDescription = Axis::single('catalog/product_manufacturer_description')->select(array('title', 'description'))->where('manufacturer_id = ?', $row['key_id'])->where('language_id = ?', Axis_Locale::getLanguageId())->fetchRow();
                 $this->_params['manufacturer'] = array('value' => $row['key_id'], 'seo' => $row['key_word'], 'title' => $mDescription->title, 'description' => $mDescription->description);
                 break;
             default:
                 break;
         }
     }
 }
예제 #4
0
 public function getAllowedTypes($request)
 {
     switch ($this->_config->type) {
         case Axis_ShippingTable_Model_Option_Standard_Service::PER_WEIGHT:
             $value = $request['weight'];
             break;
         case Axis_ShippingTable_Model_Option_Standard_Service::PER_ITEM:
             $value = $request['qty'];
             break;
         case Axis_ShippingTable_Model_Option_Standard_Service::PER_PRICE:
         default:
             $value = $request['price'];
             break;
     }
     $select = Axis::model('shippingTable/rate')->select();
     $select->where('value <= ? ', $value)->where('site_id = ? OR site_id = 0', Axis::getSiteId())->where('country_id = ? OR country_id = 0', $request['country']['id'])->where('zip = ? OR zip = "*"', $request['postcode'])->order('site_id DESC')->order('country_id ASC')->order('zone_id ASC')->order('zip ASC')->order('value DESC')->limit(1);
     if (isset($request['zone']['id'])) {
         $select->where('zone_id = ? OR zone_id = 0', $request['zone']['id']);
     } else {
         $select->where('zone_id = 0');
     }
     $row = $select->fetchRow();
     if ($row) {
         $handling = is_numeric($this->_config->handling) ? $this->_config->handling : 0;
         $this->_types = array(array('id' => $this->_code, 'title' => $this->getTitle(), 'price' => $row['price'] + $handling));
     }
     return $this->_types;
 }
예제 #5
0
 public function getAllowedTypes($request)
 {
     switch ($this->_config->type) {
         case 'Per Weight':
             $value = $request['weight'];
             break;
         case 'Per Item':
             $value = $request['qty'];
             break;
         case 'Per Price':
         default:
             $value = $request['price'];
             break;
     }
     $select = Axis::table('shippingtable_rate')->select();
     $select->where('value <= ? ', $value)->where('site_id = ? OR site_id = 0', Axis::getSiteId())->where('country_id = ? OR country_id = 0', $request['country']['id'])->where('zip = ? OR zip = "*"', $request['postcode'])->order('site_id DESC')->order('country_id ASC')->order('zone_id ASC')->order('zip ASC')->order('value DESC')->limit(1);
     if (isset($request['zone']['id'])) {
         $select->where('zone_id = ? OR zone_id = 0', $request['zone']['id']);
     } else {
         $select->where('zone_id = 0');
     }
     $row = $select->fetchRow();
     $this->_types = array(array('id' => $this->_code, 'title' => $this->getTitle(), 'price' => $row['price'] + (is_numeric($this->_config->handling) ? $this->_config->handling : 0)));
     return $this->_types;
 }
예제 #6
0
 protected function _beforeRender()
 {
     $visitor = Axis::model('log/visitor')->getVisitor();
     // select all viewed products by current visitor
     $selectInner = Axis::model('log/event')->select(array('id', 'object_id'))->order('le.id DESC');
     $customerId = $visitor->customer_id;
     if ($customerId && $customerId === Axis::getCustomerId()) {
         $selectInner->join('log_visitor', 'le.visitor_id = lv.id')->where('lv.customer_id = ?', $customerId);
     } else {
         $selectInner->where('visitor_id = ?', $visitor->id);
     }
     // filter unique product_ids from correctly ordered query
     // using adapter for specific from statement
     // this subquery is used to get the correct order for products
     // bigfix for not displayed product if the user viewed it some time ago and now opened it again
     // with single query this product will not outputted first in a row
     $adapter = Axis::model('log/event')->getAdapter();
     $select = $adapter->select()->from(array('le' => $selectInner), 'object_id')->group('le.object_id')->order('le.id DESC')->limit($this->getProductsCount());
     $productIds = $adapter->fetchCol($select);
     if (empty($productIds)) {
         return false;
     }
     $products = Axis::model('catalog/product')->select('*')->addFilterByAvailability()->addCommonFields()->addFinalPrice()->joinCategory()->where('cc.site_id = ?', Axis::getSiteId())->where('cp.id IN (?)', $productIds)->fetchProducts($productIds);
     if (empty($products)) {
         return false;
     }
     $this->products = $products;
     return $this->hasProducts();
 }
예제 #7
0
 public function init()
 {
     $categories = Axis::single('catalog/category')->select('*')->addName(Axis_Locale::getLanguageId())->addKeyWord()->order('cc.lft')->addSiteFilter(Axis::getSiteId())->addDisabledFilter()->fetchAll();
     if (!is_array($this->_activeCategories)) {
         $this->_activeCategories = array();
         if (Zend_Registry::isRegistered('catalog/current_category')) {
             $this->_activeCategories = array_keys(Zend_Registry::get('catalog/current_category')->cache()->getParentItems());
         }
     }
     $container = $_container = new Zend_Navigation();
     $lvl = 0;
     $view = $this->getView();
     foreach ($categories as $_category) {
         $uri = $view->hurl(array('cat' => array('value' => $_category['id'], 'seo' => $_category['key_word']), 'controller' => 'catalog', 'action' => 'view'), false, true);
         $class = 'nav-' . str_replace('.', '-', $_category['key_word']);
         $page = new Zend_Navigation_Page_Uri(array('label' => $_category['name'], 'title' => $_category['name'], 'uri' => $uri, 'order' => $_category['lft'], 'class' => $class, 'visible' => 'enabled' === $_category['status'] ? true : false, 'active' => in_array($_category['id'], $this->_activeCategories)));
         $lvl = $lvl - $_category['lvl'] + 1;
         for ($i = 0; $i < $lvl; $i++) {
             $_container = $_container->getParent();
         }
         $lvl = $_category['lvl'];
         $_container->addPage($page);
         $_container = $page;
     }
     $this->setData('menu', $container);
     return true;
 }
예제 #8
0
 public function indexAction()
 {
     $this->setCanonicalUrl($this->view->url(array(), 'cms', true));
     $this->setTitle(Axis::translate('cms')->__('Pages'), null, false);
     $categories = Axis::single('cms/category')->select(array('id', 'parent_id'))->addCategoryContentTable()->columns(array('ccc.link', 'ccc.title'))->addActiveFilter()->addSiteFilter(Axis::getSiteId())->addLanguageIdFilter(Axis_Locale::getLanguageId())->order('cc.parent_id')->where('ccc.link IS NOT NULL')->fetchAssoc();
     $pages = Axis::single('cms/page')->select(array('id', 'name'))->join(array('cpca' => 'cms_page_category'), 'cp.id = cpca.cms_page_id', 'cms_category_id')->join('cms_page_content', 'cp.id = cpc.cms_page_id', array('link', 'title'))->where('cp.is_active = 1')->where('cpc.language_id = ?', Axis_Locale::getLanguageId())->where('cpca.cms_category_id IN (?)', array_keys($categories))->order('cpca.cms_category_id')->fetchAssoc();
     $menu = new Zend_Navigation();
     foreach ($categories as $_category) {
         $title = empty($_category['title']) ? $_category['link'] : $_category['title'];
         $page = new Zend_Navigation_Page_Mvc(array('category_id' => $_category['id'], 'label' => $title, 'title' => $title, 'route' => 'cms_category', 'params' => array('cat' => $_category['link']), 'class' => 'icon-folder'));
         $_container = $menu->findBy('category_id', $_category['parent_id']);
         if (null === $_container) {
             $_container = $menu;
         }
         $_container->addPage($page);
     }
     foreach ($pages as $_page) {
         $title = empty($_page['title']) ? $_page['link'] : $_page['title'];
         $page = new Zend_Navigation_Page_Mvc(array('label' => $title, 'title' => $title, 'route' => 'cms_page', 'params' => array('page' => $_page['link']), 'class' => 'icon-page'));
         $_container = $menu->findBy('category_id', $_page['cms_category_id']);
         $_container->addPage($page);
     }
     $this->view->menu = $menu;
     $this->render();
 }
예제 #9
0
 public function registerAction()
 {
     $this->setTitle(Axis::translate('account')->__('Forgot password'));
     $username = $this->_getParam('username', null);
     if (empty($username)) {
         $this->render();
         return;
     }
     $customerId = Axis::single('account/customer')->getIdByEmail($username);
     if ($customerId && ($customer = Axis::single('account/customer')->find($customerId)->current()) && Axis::getSiteId() === $customer->site_id) {
         $modelForgotPassword = Axis::model('account/customer_forgotPassword');
         $hash = $modelForgotPassword->generatePassword();
         $link = $this->view->href('account/forgot', true) . '?hash=' . $hash;
         try {
             $mail = new Axis_Mail();
             $configResult = $mail->setConfig(array('event' => 'forgot_password', 'subject' => Axis::translate('account')->__('Forgotten Password'), 'data' => array('link' => $link, 'firstname' => $customer->firstname, 'lastname' => $customer->lastname), 'to' => $username));
             if ($configResult) {
                 $mail->send();
                 $modelForgotPassword->save(array('hash' => $hash, 'customer_id' => $customerId));
                 Axis::message()->addSuccess(Axis::translate('core')->__('Message was sended to you. Check your mailbox'));
             }
         } catch (Zend_Mail_Exception $e) {
             Axis::message()->addError(Axis::translate('core')->__('Mail sending was failed.'));
         }
     } else {
         Axis::message()->addError(Axis::translate('account')->__("'%s' was not found in database", $username));
     }
     $this->render();
 }
예제 #10
0
 public function registerAction()
 {
     if (Axis::getCustomerId()) {
         $this->_redirect('account');
     }
     $this->setTitle(Axis::translate('account')->__('Create an Account'));
     $form = Axis::single('account/form_signup');
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($form->isValid($data)) {
             $model = Axis::single('account/customer');
             $data['site_id'] = Axis::getSiteId();
             $data['is_active'] = 1;
             list($row, $password) = $model->create($data);
             $row->setDetails($data);
             Axis::dispatch('account_customer_register_success', array('customer' => $row, 'password' => $password));
             $model->login($data['email'], $password);
             return $this->_redirect('account');
         } else {
             $form->populate($data);
         }
     }
     $this->view->formSignup = $form;
     $this->render();
 }
예제 #11
0
 /**
  *
  * @param string $hash
  * @param string $email
  * @return bool
  */
 public function isValid($hash, $email = null)
 {
     $date = Axis_Date::now()->addDay(-1)->toSQLString();
     $select = $this->select('*')->joinLeft('account_customer', 'ac.id = acf.customer_id')->where('acf.hash = ?', $hash)->where('ac.site_id = ?', Axis::getSiteId())->where('acf.created_at > ?', $date);
     if (null !== $email) {
         $select->where('ac.email = ?', $email);
     }
     return (bool) $select->count();
 }
예제 #12
0
파일: Log.php 프로젝트: baisoo/axiscommerce
 /**
  * @param array $data
  * @return mixed
  */
 public function logging(array $data = array())
 {
     $pdata = array('num_results' => $data['num_results'], 'created_at' => Axis_Date::now()->toSQLString(), 'visitor_id' => Axis::single('log/visitor')->getVisitor()->id, 'customer_id' => Axis::getCustomerId(), 'site_id' => Axis::getSiteId());
     $query = Axis::single('search/log_query')->getQuery($data['query']);
     $query->hit++;
     $query->save();
     $pdata['query_id'] = $query->id;
     /* @todo analize search query */
     return parent::insert($pdata);
 }
예제 #13
0
 public function init()
 {
     $this->addElement('text', 'email', array('required' => true, 'label' => 'Email', 'class' => 'input-text required email', 'validators' => array('EmailAddress', new Axis_Validate_Exists(Axis::single('account/customer'), 'email', "id <> " . Axis::getCustomerId() . " AND site_id = " . Axis::getSiteId()))));
     $this->addElement('text', 'firstname', array('required' => true, 'label' => 'Firstname', 'class' => 'input-text required'));
     $this->addElement('text', 'lastname', array('required' => true, 'label' => 'Lastname', 'class' => 'input-text required'));
     $this->addDisplayGroup(array('email', 'firstname', 'lastname'), 'login', array('legend' => 'General information'));
     $rows = Axis::single('account/customer_field')->getFields();
     $groupsFields = array();
     foreach ($rows as $row) {
         $field = 'field_' . $row['id'];
         $config = array('id' => 'field_' . $row['name'], 'required' => (bool) $row['required'], 'label' => $row['field_label'], 'class' => in_array($row['field_type'], array('textarea', 'text')) ? 'input-text' : '');
         if ($row['field_type'] == 'textarea') {
             $config['rows'] = 6;
             $config['cols'] = 60;
         }
         $this->addElement($row['field_type'], $field, $config);
         $el = $this->getElement($field);
         if ($row['required']) {
             $el->addValidator('NotEmpty')->setAttrib('class', $el->getAttrib('class') . ' required');
         }
         if (!empty($row['validator'])) {
             if ($row['validator'] == 'Date') {
                 $el->addValidator($row['validator'], false, array('format' => 'yyyy-MM-dd'));
                 $el->setAttrib('class', $el->getAttrib('class') . ' input-date');
             } else {
                 $el->addValidator($row['validator']);
             }
         }
         if (!empty($row['axis_validator'])) {
             $el->addValidator(new $row['axis_validator']());
         }
         if (isset($row['customer_valueset_id'])) {
             $values = Axis::single('account/Customer_ValueSet_Value')->getCustomValues($row['customer_valueset_id'], Axis_Locale::getLanguageId());
             if (method_exists($el, 'setMultiOptions')) {
                 $el->setMultiOptions($values);
             }
         }
         $groupsFields[$row['customer_field_group_id']][$row['id']] = $field;
     }
     /* add field groups */
     if (count($groupsFields)) {
         $groups = Axis::single('account/customer_fieldGroup')->getCustomGroups(array_keys($groupsFields), Axis_Locale::getLanguageId());
         foreach ($groups as $row) {
             $this->addDisplayGroup(array_values($groupsFields[$row['id']]), empty($row['name']) ? $row['id'] : $row['name'], array('legend' => $row['group_label']));
             $this->getDisplayGroup(empty($row['name']) ? $row['id'] : $row['name'])->setDisableTranslator(true);
         }
     }
     $this->addElement('checkbox', 'change_password_toggle', array('label' => 'Change password', 'onchange' => "togglePasswordForm(this.checked)"));
     $this->addElement('password', 'password', array('disabled' => 'disabled', 'label' => 'New password', 'class' => 'input-text required password', 'validators' => array('NotEmpty', new Axis_Validate_PasswordConfirmation())));
     $this->addElement('password', 'password_confirm', array('disabled' => 'disabled', 'label' => 'Confirm new password', 'class' => 'input-text required password'));
     $this->addElement('password', 'password_current', array('disabled' => 'disabled', 'label' => 'Current password', 'class' => 'input-text required password', 'validators' => array('NotEmpty', new Axis_Validate_PasswordEqual(Axis::getCustomer()->password))));
     $this->addDisplayGroup(array('password_current', 'password', 'password_confirm'), 'change_password', array('legend' => 'Change password', 'style' => 'display: none;'));
     $this->addElement('button', 'submit', array('type' => 'submit', 'class' => 'button', 'label' => 'Save'));
     $this->addActionBar(array('submit'));
 }
예제 #14
0
 protected function _beforeRender()
 {
     $select = Axis::model('catalog/product')->select('id')->addFilterByAvailability()->joinCategory()->where('cc.site_id = ?', Axis::getSiteId())->where('cp.ordered > 0')->order(array('cp.ordered DESC', 'cp.id DESC'))->limit($this->getProductsCount());
     if ($catId = Axis_HumanUri::getInstance()->getParamValue('cat')) {
         $select->where('cc.id = ?', $catId);
     }
     $list = $select->fetchList();
     if (!$list['count']) {
         return false;
     }
     $this->products = $list['data'];
 }
예제 #15
0
 private function _load($key, $siteId, $default)
 {
     if (null === $siteId) {
         $siteId = Axis::getSiteId();
     }
     $rows = Axis::single('core/config_field')->getFieldsByKey($key, $siteId);
     if (!sizeof($rows)) {
         $this->_data[$key] = $default;
         return;
     }
     $values = array();
     foreach ($rows as $path => $row) {
         $parts = explode('/', $path);
         switch ($row['config_type']) {
             case 'string':
                 $value = $row['value'];
                 break;
             case 'select':
                 $value = $row['value'];
                 break;
             case 'bool':
                 $value = (bool) $row['value'];
                 break;
             case 'handler':
                 $class = 'Axis_Config_Handler_' . ucfirst($row['model']);
                 if ($row['model']) {
                     $value = call_user_func(array($class, 'getConfig'), $row['value']);
                 } else {
                     $value = $row['value'];
                 }
                 break;
             case 'multiple':
                 if (!isset($row['value'])) {
                     $value = array();
                 } else {
                     $value = explode(self::MULTI_SEPARATOR, $row['value']);
                 }
                 break;
             default:
                 $value = $row['value'];
                 break;
         }
         $values[$parts[0]][$parts[1]][$parts[2]] = $value;
     }
     foreach ($values as $key => $value) {
         if (is_array($value)) {
             $this->_data[$key] = new Axis_Config($value, $this->_allowModifications);
         } else {
             $this->_data[$key] = $value;
         }
     }
 }
예제 #16
0
 protected function _beforeRender()
 {
     $productId = $this->_getCurrentProductId();
     if (!$productId) {
         return false;
     }
     $select = Axis::model('catalog/product')->select('id')->addFilterByAvailability()->joinCategory()->joinInner('catalog_product_related', 'cpr.related_product_id = cp.id')->where('cpr.product_id = ?', $productId)->where('cc.site_id = ?', Axis::getSiteId())->order(array('cpr.sort_order ASC'))->limit($this->getProductsCount());
     $list = $select->fetchList();
     if (!$list['count']) {
         return false;
     }
     $this->products = $list['data'];
 }
예제 #17
0
 /**
  * Initialize new cart
  *
  * @return int
  */
 protected function _initCartId()
 {
     if ($this->_hasCartId()) {
         $cartId = Axis::session()->cartId;
     } elseif ($customerId = Axis::getCustomerId()) {
         $cartId = $this->getIdByCustomerId($customerId);
     }
     if (!isset($cartId) || !$cartId) {
         $cartId = $this->insert(array('site_id' => Axis::getSiteId(), 'customer_id' => $customerId ? $customerId : new Zend_Db_Expr('NULL')));
     }
     $this->_setCartId($cartId);
     return $cartId;
 }
예제 #18
0
 public function init()
 {
     $this->addElement('text', 'email', array('required' => true, 'label' => 'Email', 'class' => 'input-text required email', 'description' => 'Email will be used to login into your account', 'validators' => array('EmailAddress', new Axis_Validate_Exists(Axis::single('account/customer'), 'email', 'site_id = ' . Axis::getSiteId()))));
     $this->addElement('password', 'password', array('required' => true, 'label' => 'Password', 'class' => 'input-text required password', 'validators' => array('NotEmpty', new Axis_Validate_PasswordConfirmation())));
     $this->addElement('password', 'password_confirm', array('required' => true, 'label' => 'Confirm Password', 'class' => 'input-text required password'));
     $this->addElement('text', 'firstname', array('required' => true, 'label' => 'Firstname', 'class' => 'input-text required'));
     $this->addElement('text', 'lastname', array('required' => true, 'label' => 'Lastname', 'class' => 'input-text required'));
     $this->addDisplayGroup(array('email', 'password', 'password_confirm', 'firstname', 'lastname'), 'login', array('legend' => 'General information'));
     $rows = Axis::single('account/customer_field')->getFields();
     $groupsFields = array();
     foreach ($rows as $row) {
         $field = 'field_' . $row['id'];
         $config = array('id' => 'field_' . $row['name'], 'required' => (bool) $row['required'], 'label' => $row['field_label'], 'class' => in_array($row['field_type'], array('textarea', 'text')) ? 'input-text' : '');
         if ($row['field_type'] == 'textarea') {
             $config['rows'] = 6;
             $config['cols'] = 60;
         }
         $this->addElement($row['field_type'], $field, $config);
         $el = $this->getElement($field);
         if ($row['required']) {
             $el->addValidator('NotEmpty')->setAttrib('class', $el->getAttrib('class') . ' required');
         }
         if (!empty($row['validator'])) {
             $el->addValidator($row['validator']);
             if ($row['validator'] == 'Date') {
                 $el->setAttrib('class', $el->getAttrib('class') . ' input-date');
             }
         }
         if (!empty($row['axis_validator'])) {
             $el->addValidator(new $row['axis_validator']());
         }
         if (isset($row['customer_valueset_id'])) {
             $values = Axis::single('account/Customer_ValueSet_Value')->getCustomValues($row['customer_valueset_id'], Axis_Locale::getLanguageId());
             if (method_exists($el, 'setMultiOptions')) {
                 $el->setMultiOptions($values);
             }
         }
         $groupsFields[$row['customer_field_group_id']][$row['id']] = $field;
     }
     /* add field groups */
     if (count($groupsFields)) {
         $groups = Axis::single('account/customer_fieldGroup')->getCustomGroups(array_keys($groupsFields), Axis_Locale::getLanguageId());
         foreach ($groups as $row) {
             $groupName = empty($row['name']) ? $row['id'] : $row['name'];
             $this->addDisplayGroup(array_values($groupsFields[$row['id']]), $groupName, array('legend' => $row['group_label']));
             $this->getDisplayGroup($groupName)->setDisableTranslator(true);
         }
     }
     $this->addElement('button', 'submit', array('type' => 'submit', 'class' => 'button', 'label' => 'Register'));
     $this->addActionBar(array('submit'));
 }
예제 #19
0
 /**
  * Detects is url is already in table
  * 
  * @param string $keyWord
  * @param int|array $siteId
  * @param int $keyId - id to skip
  * @return bool
  */
 public function hasDuplicate($keyWord, $site = null, $keyId = null)
 {
     if (null === $site) {
         $site = Axis::getSiteId();
     }
     if (!is_array($site)) {
         $site = array($site);
     }
     $select = $this->select()->where('key_word = ?', $keyWord)->where('site_id IN (?)', $site);
     if ($keyId) {
         $select->where('key_id <> ?', $keyId);
     }
     return !is_null($select->fetchRow());
 }
예제 #20
0
 /**
  *
  * @return Zend_Auth_Result
  */
 public function authenticate()
 {
     $row = Axis::single('account/customer')->select()->where('email = ?', $this->_username)->where('site_id = ?', Axis::getSiteId())->fetchRow();
     $messages = array();
     if (!$row) {
         $code = Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND;
         $messages[] = Axis::translate('account')->__('Username or password is incorrect');
         return new Zend_Auth_Result($code, null, $messages);
     } elseif ($row->password != md5($this->_password)) {
         $code = Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID;
         $messages[] = Axis::translate('account')->__('Username or password is incorrect');
     } elseif (!$row->is_active) {
         $code = Zend_Auth_Result::FAILURE_UNCATEGORIZED;
         $messages[] = Axis::translate('account')->__('Your account is not active. Please contact site administrator for more details');
     } else {
         $code = Zend_Auth_Result::SUCCESS;
     }
     return new Zend_Auth_Result($code, $row->id, $messages);
 }
예제 #21
0
 /**
  * Returns an instance of Zend_Cache_Core
  *
  * @static
  * @return Zend_Cache_Core Provides a fluent interface
  */
 public static function getCache()
 {
     if (!Zend_Registry::isRegistered('cache') || !Zend_Registry::get('cache') instanceof Zend_Cache_Core) {
         $defaultLifetime = Axis::model('core/config_value')->select('value')->where("path = 'core/cache/default_lifetime'")->where('site_id IN (0, ?)', Axis::getSiteId())->fetchOne();
         $frontendOptions = array('lifetime' => $defaultLifetime, 'automatic_serialization' => true);
         $cacheDir = Axis::config()->system->path . '/var/cache';
         if (!is_readable($cacheDir)) {
             mkdir($cacheDir, 0777);
         } elseif (!is_writable($cacheDir)) {
             chmod($cacheDir, 0777);
         }
         if (!is_writable($cacheDir)) {
             echo "Cache directory should be writable. Run 'chmod -R 0777 path/to/var'";
             exit;
         }
         $backendOptions = array('cache_dir' => $cacheDir, 'hashed_directory_level' => 1, 'file_name_prefix' => 'axis_cache', 'hashed_directory_umask' => 0777);
         Zend_Registry::set('cache', Zend_Cache::factory('Core', 'Axis_Cache_Backend_File', $frontendOptions, $backendOptions, false, true));
     }
     return Zend_Registry::get('cache');
 }
예제 #22
0
 protected function _beforeRender()
 {
     $visitor = Axis::model('log/visitor')->getVisitor();
     $select = Axis::model('log/event')->select('object_id')->distinct()->limit($this->getProductsCount())->order('le.id DESC');
     $customerId = $visitor->customer_id;
     if ($customerId && $customerId === Axis::getCustomerId()) {
         $select->join('log_visitor', 'le.visitor_id = lv.id')->where('lv.customer_id = ?', $customerId);
     } else {
         $select->where('visitor_id = ?', $visitor->id);
     }
     $productIds = $select->fetchCol();
     if (empty($productIds)) {
         return false;
     }
     $products = Axis::model('catalog/product')->select('*')->addFilterByAvailability()->addCommonFields()->addFinalPrice()->joinCategory()->where('cc.site_id = ?', Axis::getSiteId())->where('cp.id IN (?)', $productIds)->fetchProducts($productIds);
     if (empty($products)) {
         return false;
     }
     $this->products = $products;
     return $this->hasProducts();
 }
예제 #23
0
 public function indexAction()
 {
     $this->setTitle(Axis::translate('contacts')->__('Contact Us'));
     $form = Axis::model('contacts/form_message');
     if ($this->_request->isPost()) {
         $data = $this->_request->getPost();
         if ($form->isValid($data)) {
             $custom = array();
             foreach ($form->getElements() as $element) {
                 $elementsToSkip = array('email', 'subject', 'department_id', 'message', 'submit');
                 if (in_array($element->getName(), $elementsToSkip)) {
                     continue;
                 }
                 $custom[$element->getLabel()] = $element->getValue();
             }
             $data['custom_info'] = Zend_Json::encode($custom);
             $data['site_id'] = Axis::getSiteId();
             Axis::model('contacts/message')->save($data);
             $department = Axis::single('contacts/department')->find($data['department_id'])->current();
             if ($department) {
                 try {
                     $mail = new Axis_Mail();
                     $mail->setLocale(Axis::config('locale/main/language_admin'));
                     $mail->setConfig(array('event' => 'contact_us', 'subject' => $data['subject'], 'data' => $data, 'to' => $department->email, 'from' => array('name' => $data['name'], 'email' => $data['email'])));
                     $mail->send();
                 } catch (Zend_Mail_Exception $e) {
                 }
             }
             Axis::message()->addSuccess(Axis::translate('contacts')->__('Your message was successfully added'));
             $this->_redirect($this->_getBackUrl());
         } else {
             $form->populate($data);
         }
     } elseif ($customer = Axis::getCustomer()) {
         $form->getElement('email')->setValue($customer->email);
         $form->getElement('name')->setValue($customer->firstname . ' ' . $customer->lastname);
     }
     $this->view->form = $form;
     $this->render();
 }
예제 #24
0
 public function up()
 {
     $installer = Axis::single('install/installer');
     $installer->run("\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_block')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_block')}` (\n          `id` int(10) unsigned NOT NULL auto_increment,\n          `content` text,\n          `is_active` tinyint(1) default NULL,\n          `name` varchar(128) default NULL,\n          PRIMARY KEY  (`id`)\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_category')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_category')}` (\n          `id` int(10) unsigned NOT NULL auto_increment,\n          `is_active` tinyint(3) unsigned default '1',\n          `parent_id` int(10) unsigned default NULL,\n          `site_id` smallint(5) unsigned default NULL,\n          `name` varchar(128) NOT NULL,\n          PRIMARY KEY  USING BTREE (`id`),\n          KEY `FK_CMS_CATEGORY_CMS_CATEGORY` (`parent_id`),\n          KEY `FK_CMS_CATEGORY_SITE_ID` (`site_id`),\n          CONSTRAINT `FK_CMS_CATEGORY_SITE_ID` FOREIGN KEY (`site_id`) REFERENCES `{$installer->getTable('core_site')}` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,\n          CONSTRAINT `FK_CMS_CATEGORY_CMS_CATEGORY` FOREIGN KEY (`parent_id`) REFERENCES `{$installer->getTable('cms_category')}` (`id`) ON DELETE CASCADE\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_category_content')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_category_content')}` (\n          `cms_category_id` int(10) unsigned NOT NULL,\n          `language_id` smallint(5) unsigned NOT NULL,\n          `title` varchar(45) default NULL,\n          `description` text,\n          `link` varchar(128) default NULL,\n          `meta_keyword` text,\n          `meta_description` text,\n          `meta_title` varchar(128) default NULL,\n          PRIMARY KEY  USING BTREE (`language_id`,`cms_category_id`),\n          KEY `FK_CMS_CATEGORY_TITLE_CMS_CATEGORY` (`cms_category_id`),\n          CONSTRAINT `FK_CMS_CATEGORY_CONTENT_LANGUAGE` FOREIGN KEY (`language_id`) REFERENCES `{$installer->getTable('locale_language')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,\n          CONSTRAINT `FK_CMS_CATEGORY_TITLE_CMS_CATEGORY` FOREIGN KEY (`cms_category_id`) REFERENCES `{$installer->getTable('cms_category')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_page')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_page')}` (\n          `id` int(10) unsigned NOT NULL auto_increment,\n          `is_active` tinyint(4) default NULL,\n          `layout` varchar(45) default NULL,\n          `comment` tinyint(4) default NULL,\n          `access` tinyint(4) default NULL,\n          `name` varchar(128) default NULL,\n          `show_in_box` tinyint(1) unsigned NOT NULL default '0',\n          PRIMARY KEY  (`id`)\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_page_content')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_page_content')}` (\n          `cms_page_id` int(10) unsigned NOT NULL,\n          `language_id` smallint(5) unsigned NOT NULL,\n          `link` varchar(128) default NULL,\n          `title` varchar(128) default NULL,\n          `content` text,\n          `meta_keyword` text,\n          `meta_description` text,\n          `meta_title` varchar(128) default NULL,\n          PRIMARY KEY  USING BTREE (`language_id`,`cms_page_id`),\n          KEY `FK_CMS_PAGE_CONTENT_CMS_PAGE` (`cms_page_id`),\n          CONSTRAINT `FK_CMS_PAGE_CONTENT_LANGUAGE` FOREIGN KEY (`language_id`) REFERENCES `{$installer->getTable('locale_language')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,\n          CONSTRAINT `FK_CMS_PAGE_CONTENT_CMS_PAGE` FOREIGN KEY (`cms_page_id`) REFERENCES `{$installer->getTable('cms_page')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_page_category')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_page_category')}` (\n          `cms_category_id` int(10) unsigned NOT NULL,\n          `cms_page_id` int(10) unsigned NOT NULL,\n          PRIMARY KEY  (`cms_category_id`,`cms_page_id`),\n          KEY `FK_CMS_PAGE_TO_CATEGORY_CMS_CATEGORY` (`cms_category_id`),\n          KEY `FK_CMS_PAGE_TO_CATEGORY_CMS_PAGE` (`cms_page_id`),\n          CONSTRAINT `FK_CMS_PAGE_TO_CATEGORY_CMS_CATEGORY` FOREIGN KEY (`cms_category_id`) REFERENCES `{$installer->getTable('cms_category')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,\n          CONSTRAINT `FK_CMS_PAGE_TO_CATEGORY_CMS_PAGE` FOREIGN KEY (`cms_page_id`) REFERENCES `{$installer->getTable('cms_page')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n        -- DROP TABLE IF EXISTS `{$installer->getTable('cms_page_comment')}`;\n        CREATE TABLE IF NOT EXISTS `{$installer->getTable('cms_page_comment')}` (\n          `id` int(10) unsigned NOT NULL auto_increment,\n          `cms_page_id` int(10) unsigned NOT NULL,\n          `author` varchar(128) default NULL,\n          `created_on` datetime default NULL,\n          `modified_on` datetime default NULL,\n          `content` text,\n          `status` tinyint(3) unsigned default NULL,\n          `email` varchar(128) default NULL,\n          PRIMARY KEY  USING BTREE (`id`),\n          KEY `FK_CMS_PAGE_COMMENT_CMS_PAGE` (`cms_page_id`),\n          CONSTRAINT `FK_CMS_PAGE_COMMENT_CMS_PAGE` FOREIGN KEY (`cms_page_id`) REFERENCES `{$installer->getTable('cms_page')}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE\n        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;\n\n        ");
     //blocks
     $mBlock = Axis::model('cms/block');
     $mBlock->insert(array('content' => '<p class="legality">&copy; 2008-2011 <a href="http://axiscommerce.com">Axis</a> Demo Store. All rights reserved.</p>', 'is_active' => 1, 'name' => 'copyright'));
     // pages
     $mPage = Axis::model('cms/page');
     $privacyPageId = $mPage->insert(array('is_active' => 1, 'layout' => 'default_2columns-left', 'comment' => 1, 'name' => 'privacy-policy', 'show_in_box' => 1));
     $shippingPageId = $mPage->insert(array('is_active' => 1, 'layout' => 'default_1column', 'comment' => 1, 'name' => 'shipping-and-returns', 'show_in_box' => 1));
     $termsPageId = $mPage->insert(array('is_active' => 1, 'layout' => 'default_2columns-right', 'comment' => 1, 'name' => 'terms-of-use', 'show_in_box' => 1));
     $historyPageId = $mPage->insert(array('is_active' => 1, 'layout' => 'default_2columns-left', 'comment' => 0, 'name' => 'company_history', 'show_in_box' => 0));
     $careersPageId = $mPage->insert(array('is_active' => 1, 'layout' => 'default_2columns-left', 'comment' => 0, 'name' => 'careers', 'show_in_box' => 0));
     // categories
     $mCategory = Axis::model('cms/category');
     $generalCatId = $mCategory->insert(array('is_active' => 1, 'parent_id' => new Zend_Db_Expr('NULL'), 'site_id' => Axis::getSiteId(), 'name' => 'General'));
     $aboutCatId = $mCategory->insert(array('is_active' => 1, 'parent_id' => new Zend_Db_Expr('NULL'), 'site_id' => Axis::getSiteId(), 'name' => 'about-us'));
     // page to category relations
     $mPageCategory = Axis::model('cms/page_category');
     $mPageCategory->insert(array('cms_category_id' => $generalCatId, 'cms_page_id' => $privacyPageId));
     $mPageCategory->insert(array('cms_category_id' => $generalCatId, 'cms_page_id' => $shippingPageId));
     $mPageCategory->insert(array('cms_category_id' => $generalCatId, 'cms_page_id' => $termsPageId));
     $mPageCategory->insert(array('cms_category_id' => $generalCatId, 'cms_page_id' => $historyPageId));
     $mPageCategory->insert(array('cms_category_id' => $aboutCatId, 'cms_page_id' => $careersPageId));
     // content
     $mCategoryContent = Axis::model('cms/category_content');
     $mPageContent = Axis::model('cms/page_content');
     foreach (Axis_Collect_Language::collect() as $langId => $langName) {
         $mPageContent->insert(array('cms_page_id' => $privacyPageId, 'language_id' => $langId, 'link' => 'privacy', 'title' => 'Privacy policy', 'content' => "<div class=\"col2-set\">\n    <div class=\"col-1\">asd, consectetuer adipiscing elit. Sed dolor urna, dapibus ac, convallis eget, ornare a, nisl. Quisque vestibulum congue est. Vivamus ante. Nullam neque tellus, aliquet sed, placerat eget, sagittis hendrerit, leo. Fusce varius pulvinar pede. Fusce at lectus. Nunc ac purus. Aenean rhoncus lacinia nisl. Sed eros sapien, pretium ut, condimentum at, lobortis porta, leo. Aenean ut nibh non metus porttitor sodales. Suspendisse nisl. Phasellus condimentum egestas magna.\nFusce porta porttitor enim. Aenean tempor est nec massa. Phasellus in sapien. Vestibulum urna odio, imperdiet eu, faucibus eu, pretium a, arcu. Morbi mi urna, commodo in, eleifend id, interdum sed, lorem. Pellentesque ullamcorper purus in sapien. Integer faucibus quam a leo. Vivamus posuere porta ipsum. In purus. Proin commodo. Cras eget mi in lacus dignissim volutpat. Fusce orci. Donec eget erat. Mauris sapien libero, sodales non, consequat ut, varius id, lorem.\nMorbi adipiscing. Aenean eu mi. Praesent erat lectus, fringilla non, condimentum ut, semper vitae, lectus. Ut vulputate. Vivamus purus velit, semper nec, dignissim vel, faucibus nec, felis. Cras posuere. Curabitur dignissim convallis lorem. Aenean bibendum auctor justo. Nulla nec diam vel justo rutrum tempor. Suspendisse nec tortor a eros laoreet rutrum. In sapien.\n</div>\n<div class=\"col-2\">\nCras sem sem, condimentum sed, bibendum ac, molestie eget, felis. Integer diam pede, pulvinar quis, eleifend vel, pretium at, nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque id lectus vitae augue imperdiet sodales. Donec dapibus nisl nec arcu. Ut felis turpis, accumsan ac, sagittis a, aliquet vitae, leo. Nullam venenatis, leo quis consectetuer ullamcorper, nisl justo bibendum lorem, sit amet pulvinar quam lorem nec sem. Nunc eleifend, quam sed viverra sollicitudin, dui arcu aliquet nibh, nec tincidunt sem quam non ante. Maecenas et lectus. In tincidunt nisl et velit. Nam venenatis, augue eget congue gravida, mi neque facilisis nunc, sed porta augue erat ac felis\nProin tellus risus, pulvinar ac, pretium eu, faucibus eu, ipsum. Fusce mauris nisl, elementum id, auctor sit amet, porta ac, nibh. Mauris vulputate egestas ipsum.\n\nNunc eget nisi. Phasellus id elit nec elit sollicitudin imperdiet. Cras a justo. Praesent orci. Vivamus sagittis libero ut nulla. Integer dapibus lectus quis lorem. Maecenas consectetuer urna vitae lectus volutpat malesuada. Duis risus. Sed vulputate nulla ac nibh. Pellentesque tincidunt pharetra turpis. Cras libero velit, tristique ut, vehicula a, tempor in, nibh. Praesent ac magna at risus lobortis dictum. Curabitur ultrices neque vehicula neque.</div>\n</div>", 'meta_description' => 'description of privacy policy page', 'meta_keyword' => 'privacy', 'meta_title' => 'Privacy policy'));
         $mPageContent->insert(array('cms_page_id' => $shippingPageId, 'language_id' => $langId, 'link' => 'shipping', 'title' => 'Shipping and returns', 'content' => "Praesent vestibulum iaculis eros. Donec porta odio in tortor. Proin nulla nunc, ornare eu, rhoncus non, laoreet quis, sem. Praesent dictum, sapien a fermentum adipiscing, erat mauris dignissim nisi, <span style=\"background-color: rgb(153, 204, 0);\">nec placerat lorem quam id est.<br/><br/><span style=\"background-color: rgb(192, 192, 192);\">Nullam ut libero. Fusce libero magna, iaculis ac, tempus nec, posuere id, felis. Nulla suscipit augue in sapien. Nullam congue convallis dolor. Cras gravida felis vel nulla. Etiam pulvinar sem in nisi ornare mattis. Proin tempus.</span></span><span style=\"background-color: rgb(192, 192, 192);\"> </span><br/><br/>Phasellus tincidunt mattis nunc. Fusce lorem. Sed consequat. Nulla ac purus. Donec vel nibh. Aliquam in sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In eget quam.", 'meta_description' => '', 'meta_keyword' => '', 'meta_title' => 'Shipping and Returns'));
         $mPageContent->insert(array('cms_page_id' => $termsPageId, 'language_id' => $langId, 'link' => 'terms-of-use', 'title' => 'Terms of use', 'content' => "{{static_intro}}<br/>\n<p>\nIt is a long established fact that a reader will be distracted by the\nreadable content of a page when looking at its layout. The point of\nusing  is that it has a more-or-less normal distribution of\nletters, as opposed to using \"Content here, content here\", making it\nlook like readable English.</p>&nbsp;{{static_google_banner}}\n<br/>\n<p>\nMany desktop publishing packages and web\npage editors now use Lorem Ipsum as their default model text, and a\nsearch for \"lorem ipsum\" will uncover many web sites still in their\ninfancy. Various versions have evolved over the years, sometimes by\naccident, sometimes on purpose (injected humour and the like).\n</p>\n{{static_name_new}}", 'meta_description' => '', 'meta_keyword' => '', 'meta_title' => 'Terms of Use'));
         $mPageContent->insert(array('cms_page_id' => $historyPageId, 'language_id' => $langId, 'link' => 'company-history', 'title' => 'Company history', 'content' => "<div class=\"col3-set\">\n    <div class=\"col-1\">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed dolor urna, dapibus ac, convallis eget, ornare a, nisl. Quisque vestibulum congue est. Vivamus ante. Nullam neque tellus, aliquet sed, placerat eget, sagittis hendrerit, leo. Fusce varius pulvinar pede. Fusce at lectus. Nunc ac purus. Aenean rhoncus lacinia nisl. Sed eros sapien, pretium ut, condimentum at, lobortis porta, leo. Aenean ut nibh non metus porttitor sodales. Suspendisse nisl. Phasellus condimentum egestas magna.\nFusce porta porttitor enim. Aenean tempor est nec massa. Phasellus in sapien. Vestibulum urna odio, imperdiet eu, faucibus eu, pretium a, arcu. Morbi mi urna, commodo in, eleifend id, interdum sed, lorem. Pellentesque ullamcorper purus in sapien. Integer faucibus quam a leo. Vivamus posuere porta ipsum. In purus. Proin commodo. Cras eget mi in lacus dignissim volutpat. Fusce orci. Donec eget erat. Mauris sapien libero, sodales non, consequat ut, varius id, lorem.\n</div>\n  <div class=\"col-2\">\nMorbi adipiscing. Aenean eu mi. Praesent erat lectus, fringilla non, condimentum ut, semper vitae, lectus. Ut vulputate. Vivamus purus velit, semper nec, dignissim vel, faucibus nec, felis. Cras posuere. Curabitur dignissim convallis lorem. Aenean bibendum auctor justo. Nulla nec diam vel justo rutrum tempor. Suspendisse nec tortor a eros laoreet rutrum. In sapien.\nCras sem sem, condimentum sed, bibendum ac, molestie eget, felis. Integer diam pede, pulvinar quis, eleifend vel, pretium at, nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque id lectus vitae augue imperdiet sodales. Donec dapibus nisl nec arcu. Ut felis turpis, accumsan ac, sagittis a, aliquet vitae, leo. Nullam venenatis, leo quis consectetuer ullamcorper, nisl justo bibendum lorem, sit amet pulvinar quam lorem nec sem. Nunc eleifend, quam sed viverra sollicitudin, dui arcu aliquet nibh, nec tincidunt sem quam non ante. Maecenas et lectus. In tincidunt nisl et velit. Nam venenatis, augue eget congue gravida, mi neque facilisis nunc, sed porta augue erat ac felis. </div>\n<div class=\"col-3\">Proin tellus risus, pulvinar ac, pretium eu, faucibus eu, ipsum. Fusce mauris nisl, elementum id, auctor sit amet, porta ac, nibh. Mauris vulputate egestas ipsum.\n\nNunc eget nisi. Phasellus id elit nec elit sollicitudin imperdiet. Cras a justo. Praesent orci. Vivamus sagittis libero ut nulla. Integer dapibus lectus quis lorem. Maecenas consectetuer urna vitae lectus volutpat malesuada. Duis risus. Sed vulputate nulla ac nibh. Pellentesque tincidunt pharetra turpis. Cras libero velit, tristique ut, vehicula a, tempor in, nibh. Praesent ac magna at risus lobortis dictum. Curabitur ultrices neque vehicula neque.</div>\n</div>", 'meta_description' => '', 'meta_keyword' => 'Company, about, history', 'meta_title' => 'Company history'));
         $mPageContent->insert(array('cms_page_id' => $careersPageId, 'language_id' => $langId, 'link' => 'careers', 'title' => 'Careers at our store', 'content' => "<div class=\"col2-set\" style=\"margin-bottom: 7px;\">\n <div class=\"col-1\">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed dolor urna, dapibus ac, convallis eget, ornare a, nisl. Quisque vestibulum congue est. Vivamus ante. Nullam neque tellus, aliquet sed, placerat eget, sagittis hendrerit, leo. Fusce varius pulvinar pede. Fusce at lectus. Nunc ac purus. Aenean rhoncus lacinia nisl. Sed eros sapien, pretium ut, condimentum at, lobortis porta, leo. Aenean ut nibh non metus porttitor sodales. Suspendisse nisl. Phasellus condimentum egestas magna. </div>\n <div class=\"col-2\">Fusce porta porttitor enim. Aenean tempor est nec massa. Phasellus in sapien. Vestibulum urna odio, imperdiet eu, faucibus eu, pretium a, arcu. Morbi mi urna, commodo in, eleifend id, interdum sed, lorem. Pellentesque ullamcorper purus in sapien. Integer faucibus quam a leo. Vivamus posuere porta ipsum. In purus. Proin commodo. Cras eget mi in lacus dignissim volutpat. Fusce orci. Donec eget erat. Mauris sapien libero, sodales non, consequat ut, varius id, lorem. </div>\n</div>\n<div>\nCras sem sem, condimentum sed, bibendum ac, molestie eget, felis. Integer diam pede, pulvinar quis, eleifend vel, pretium at, nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque id lectus vitae augue imperdiet sodales. Donec dapibus nisl nec arcu. Ut felis turpis, accumsan ac, sagittis a, aliquet vitae, leo. Nullam venenatis, leo quis consectetuer ullamcorper, nisl justo bibendum lorem, sit amet pulvinar quam lorem nec sem. Nunc eleifend, quam sed viverra sollicitudin, dui arcu aliquet nibh, nec tincidunt sem quam non ante. Maecenas et lectus. In tincidunt nisl et velit. Nam venenatis, augue eget congue gravida, mi neque facilisis nunc, sed porta augue erat ac felis. Proin tellus risus, pulvinar ac, pretium eu, faucibus eu, ipsum. Fusce mauris nisl, elementum id, auctor sit amet, porta ac, nibh. Mauris vulputate egestas ipsum.\n\nNunc eget nisi. Phasellus id elit nec elit sollicitudin imperdiet. Cras a justo. Praesent orci. Vivamus sagittis libero ut nulla. Integer dapibus lectus quis lorem. Maecenas consectetuer urna vitae lectus volutpat malesuada. Duis risus. Sed vulputate nulla ac nibh. Pellentesque tincidunt pharetra turpis. Cras libero velit, tristique ut, vehicula a, tempor in, nibh. Praesent ac magna at risus lobortis dictum. Curabitur ultrices neque vehicula neque. \n</div>", 'meta_description' => '', 'meta_keyword' => '', 'meta_title' => 'Careers at our store'));
         $mCategoryContent->insert(array('cms_category_id' => $generalCatId, 'language_id' => $langId, 'link' => 'general'));
         $mCategoryContent->insert(array('cms_category_id' => $aboutCatId, 'language_id' => $langId, 'link' => 'about-us'));
     }
     Axis::single('core/page')->add('cms/*/*');
 }
예제 #25
0
 private function _load($key, $siteId, $default)
 {
     if (null === $siteId) {
         $siteId = Axis::getSiteId();
     }
     $hasCache = (bool) Zend_Registry::isRegistered('cache') ? Axis::cache() instanceof Zend_Cache_Core : false;
     if (!$hasCache || !($dataset = Axis::cache()->load("config_{$key}_site_{$siteId}"))) {
         $dataset = Axis::single('core/config_field')->select(array('path', 'model'))->joinInner('core_config_value', 'ccv.config_field_id = ccf.id', 'value')->where('ccf.path LIKE ?', $key . '/%')->where('ccv.site_id IN(?)', array(0, $siteId))->fetchAssoc();
         if ($hasCache) {
             Axis::cache()->save($dataset, "config_{$key}_site_{$siteId}", array('config'));
         }
     }
     if (!sizeof($dataset)) {
         $this->_data[$key] = $default;
         return;
     }
     $values = array();
     foreach ($dataset as $path => $data) {
         $parts = explode('/', $path);
         $value = $data['value'];
         if (!empty($data['model'])) {
             $class = Axis::getClass($data['model']);
             if (class_exists($class) && in_array('Axis_Config_Option_Encodable_Interface', class_implements($class))) {
                 $value = Axis::single($data['model'])->decode($value);
             }
         }
         $values[$parts[0]][$parts[1]][$parts[2]] = $value;
     }
     foreach ($values as $key => $value) {
         if (is_array($value)) {
             $this->_data[$key] = new self($value, $this->_allowModifications);
         } else {
             $this->_data[$key] = $value;
         }
     }
 }
예제 #26
0
 /**
  * Retrieve one-dimensional array of categories where the product lies in,
  * including their parent categories
  *
  * @param int $productId
  * @param int $languageId   [optional]
  * @param int $siteId       [optional]
  * @return array
  */
 public function getRelatedCategoriesByProductId($productId, $languageId = null, $siteId = null)
 {
     if (null === $languageId) {
         $languageId = Axis_Locale::getLanguageId();
     }
     if (null === $siteId) {
         $siteId = Axis::getSiteId();
     }
     return $this->select()->from(array('cc' => 'catalog_category'))->joinLeft(array('cc1' => 'catalog_category'), 'cc.lft BETWEEN cc1.lft AND cc1.rgt', '*')->joinInner('catalog_product_category', 'cc.id = cpc.category_id')->joinInner('catalog_hurl', 'ch.key_id = cc1.id', 'key_word')->joinInner('catalog_category_description', 'ccd.category_id = cc1.id', array('id' => 'category_id', 'name', 'meta_title', 'meta_description', 'meta_keyword'))->where('cpc.product_id = ?', $productId)->where('cc.site_id = ?', $siteId)->where('cc1.site_id = ?', $siteId)->where('ccd.language_id = ?', $languageId)->where("ch.key_type = 'c'")->order(array('cpc.category_id', 'cpc.product_id', 'cc1.lvl'))->fetchAll();
 }
예제 #27
0
 /**
  * Remove tag item for current user
  * @return void
  */
 public function removeItemAction()
 {
     $model = Axis::single('tag/product');
     $integer = new Zend_Filter_Int();
     $id = $integer->filter($this->_getParam('itemId'));
     $row = $model->find($id)->current();
     if (!$row) {
         return $this->_redirect('account/tag');
     }
     $rowCustomer = $row->findParentRow('Axis_Tag_Model_Customer');
     if ($rowCustomer->customer_id != Axis::getCustomerId() || $rowCustomer->site_id != Axis::getSiteId()) {
         return $this->_redirect('account/tag');
     }
     $row->delete();
     if (!$model->weightTag($rowCustomer->id)) {
         $rowCustomer->delete();
         return $this->_redirect('account/tag');
     }
     $this->_redirect('tag/index/show-products/tagId/' . $rowCustomer->id);
 }
예제 #28
0
 /**
  * Register new customer, fill the customer_id in order
  * and save the customer addresses
  *
  * @param Axis_Sales_Model_Order_Row $order
  * @return void
  */
 public function saveCustomerAfterPlaceOrder(Axis_Sales_Model_Order_Row $order)
 {
     $checkout = Axis::single('checkout/checkout');
     $billing = $checkout->getBilling()->toFlatArray();
     $delivery = $checkout->getDelivery()->toFlatArray();
     $newCustomer = false;
     if (!empty($billing['register']) && !Axis::getCustomerId()) {
         $modelCustomer = Axis::model('account/customer');
         $userData = $billing;
         $userData['site_id'] = Axis::getSiteId();
         $userData['is_active'] = 1;
         unset($userData['id']);
         list($customer, $password) = $modelCustomer->create($userData);
         $customer->setDetails($userData);
         $modelCustomer->login($userData['email'], $password);
         $newCustomer = true;
         $order->customer_id = $customer->id;
         $order->save();
     }
     // save address if needed
     if ($customer = Axis::getCustomer()) {
         if (empty($billing['id'])) {
             $customer->setAddress($billing);
         }
         if (empty($delivery['id']) && empty($billing['use_for_delivery'])) {
             $customer->setAddress($delivery);
         }
     }
     if ($newCustomer) {
         Axis::dispatch('account_customer_register_success', array('customer' => $customer, 'password' => $password));
     }
 }
예제 #29
0
 public function getPageIdByLink($link)
 {
     return Axis::single('cms/page_content')->select('cms_page_id')->joinInner(array('cpca' => 'cms_page_category'), 'cpc.cms_page_id = cpca.cms_page_id')->joinInner('cms_category', 'cc.id = cpca.cms_category_id')->where('cpc.link = ?', $link)->where('cc.site_id = ?', Axis::getSiteId())->fetchOne();
 }
예제 #30
0
 public function printAction()
 {
     if ($this->_hasParam('orderId')) {
         $orderId = $this->_getParam('orderId');
     } else {
         $this->_redirect('/account/order');
     }
     $order = Axis::single('sales/order')->fetchAll(array($this->db->quoteInto('customer_id = ?', Axis::getCustomerId()), $this->db->quoteInto('site_id = ?', Axis::getSiteId()), $this->db->quoteInto('id = ?', intval($orderId))));
     if (!sizeof($order)) {
         $this->_redirect('/account/order');
     }
     $order = $order->current();
     $this->view->order = $order->toArray();
     $this->view->order['products'] = $order->getProducts();
     $this->view->order['totals'] = $order->getTotals();
     $this->view->order['billing'] = $order->getBilling();
     $this->view->order['delivery'] = $order->getDelivery();
     $this->_helper->layout->setLayout('layout_print');
     $this->render();
 }