예제 #1
0
 public static function allowPosition($position)
 {
     // If the position is empty, default to true
     $position = trim($position);
     if (empty($position)) {
         return true;
     }
     // Check for a certain page
     if (MageBridgeTemplateHelper::isHomePage()) {
         $setting = 'flush_positions_home';
     } else {
         if (MageBridgeTemplateHelper::isCustomerPage()) {
             $setting = 'flush_positions_customer';
         } else {
             if (MageBridgeTemplateHelper::isProductPage()) {
                 $setting = 'flush_positions_product';
             } else {
                 if (MageBridgeTemplateHelper::isCategoryPage()) {
                     $setting = 'flush_positions_category';
                 } else {
                     if (MageBridgeTemplateHelper::isCartPage()) {
                         $setting = 'flush_positions_cart';
                     } else {
                         if (MageBridgeTemplateHelper::isCheckoutPage()) {
                             $setting = 'flush_positions_checkout';
                         } else {
                             $setting = '';
                         }
                     }
                 }
             }
         }
     }
     // If the page-check returns empty, default to true
     if (empty($setting)) {
         return true;
     }
     // Check for flushing of positions within the MageBridge configuration
     $array = explode(',', MagebridgeModelConfig::load($setting));
     if (!empty($array)) {
         foreach ($array as $a) {
             if ($position == trim($a)) {
                 return false;
             }
         }
     }
     // Default to true
     return true;
 }
예제 #2
0
 /**
  * Method to set the breadcrumbs
  */
 public function setBreadcrumbs()
 {
     // Only run this once
     static $set = false;
     if ($set == true) {
         return true;
     } else {
         $set = true;
     }
     // Only run this for root-views
     if (JFactory::getApplication()->input->getCmd('view') != 'root') {
         return true;
     }
     // Get variables
     $application = JFactory::getApplication();
     $pathway = $application->getPathway();
     $data = $this->getResponseData();
     // Define empty data
     if (!is_array($data)) {
         $data = array();
     }
     // Add the shopping-cart to this pathway
     if (MageBridgeTemplateHelper::isCartPage()) {
         $pathway->addItem(JText::_('COM_MAGEBRIDGE_SHOPPING_CART'), MageBridgeUrlHelper::route('checkout/cart'));
         // Add the checkout to this pathway
     } else {
         if (MageBridgeTemplateHelper::isCheckoutPage()) {
             $pathway->addItem(JText::_('COM_MAGEBRIDGE_SHOPPING_CART'), MageBridgeUrlHelper::route('checkout/cart'));
             $pathway->addItem(JText::_('COM_MAGEBRIDGE_CHECKOUT'), MageBridgeUrlHelper::route('checkout'));
         }
     }
     // Remove the first entry which always the homepage
     @array_shift($data);
     if (empty($data)) {
         return true;
     }
     // Loop through the existing pathway-items and collect them
     $pathway_items = array();
     foreach ($pathway->getPathway() as $pathway_item) {
         if (!preg_match('/^(http|https):/', $pathway_item->link)) {
             $pathway_item->link = preg_replace('/\\/$/', '', JURI::root()) . JRoute::_($pathway_item->link);
         }
         $pathway_items[] = $pathway_item;
     }
     // Actions when we have a root-item
     $rootItem = MageBridgeUrlHelper::getRootItem();
     if ($rootItem != false) {
         // Remove the last entry because it always is inaccurate
         @array_pop($pathway_items);
         // Construct the root-item to this pathway
         $root_pathway_item = (object) null;
         if (isset($rootItem->name)) {
             $root_pathway_item->name = JText::_($rootItem->name);
         } else {
             $root_pathway_item->name = JText::_($rootItem->title);
         }
         $root_pathway_item->link = preg_replace('/\\/$/', '', JURI::base()) . JRoute::_($rootItem->link);
         // Scan the current items to see whether there is a match or not
         $homeMatch = false;
         foreach ($pathway_items as $pathway_item) {
             if ($pathway_item->link == $root_pathway_item->link || strstr($pathway_item->link, $root_pathway_item->link)) {
                 $homeMatch = true;
                 break;
             }
         }
         // If this root item is the homepage, skip it also
         if (!empty($rootItem->home) && $rootItem->home == 1) {
             $homeMatch = true;
         }
         // Only add the root, if there is no match yet
         if (!empty($root_pathway_item) && $homeMatch == false) {
             $pathway_items[] = $root_pathway_item;
         }
         // Actions when we do not have a root-item
     } else {
         // Remove the first entry because it always is inaccurate
         @array_shift($data);
     }
     // Loop through the Magento data
     foreach ($data as $item) {
         // Do not add the current link
         //if (MageBridgeUrlHelper::current() == $item['link']) continue;
         if (empty($item['link'])) {
             $item['link'] = JURI::current();
         }
         // Loop through the current pathway-items to prevent double links
         if (!empty($pathway_items)) {
             $match = false;
             foreach ($pathway_items as $pathway_item) {
                 if (empty($pathway_item) && !is_object($pathway_item)) {
                     continue;
                 }
                 if ($pathway_item->link == $item['link']) {
                     $match = true;
                 }
             }
             if ($match == true) {
                 continue;
             }
         }
         $pathway_item = (object) null;
         $pathway_item->name = JText::_($item['label']);
         $pathway_item->link = $item['link'];
         $pathway_item->magento = 1;
         $pathway_items[] = $pathway_item;
     }
     $pathway->setPathway($pathway_items);
     return true;
 }
 public function setBreadcrumbs()
 {
     static $set = false;
     if ($set == true) {
         return true;
     } else {
         $set = true;
     }
     if (JRequest::getCmd('view') != 'root') {
         return true;
     }
     $application = JFactory::getApplication();
     $pathway = $application->getPathway();
     $data = $this->getResponseData();
     if (!is_array($data)) {
         $data = array();
     }
     if (MageBridgeTemplateHelper::isCartPage()) {
         $pathway->addItem(JText::_('COM_MAGEBRIDGE_SHOPPING_CART'), MageBridgeUrlHelper::route('checkout/cart'));
     } else {
         if (MageBridgeTemplateHelper::isCheckoutPage()) {
             $pathway->addItem(JText::_('COM_MAGEBRIDGE_SHOPPING_CART'), MageBridgeUrlHelper::route('checkout/cart'));
             $pathway->addItem(JText::_('COM_MAGEBRIDGE_CHECKOUT'), MageBridgeUrlHelper::route('checkout'));
         }
     }
     @array_shift($data);
     if (empty($data)) {
         return true;
     }
     $pathway_items = array();
     foreach ($pathway->getPathway() as $pathway_item) {
         $pathway_item->link = preg_replace('/\\/$/', '', JURI::root()) . JRoute::_($pathway_item->link);
         $pathway_items[] = $pathway_item;
     }
     @array_pop($pathway_items);
     foreach ($data as $item) {
         // Do not add the current link
         if (MageBridgeUrlHelper::current() == $item['link']) {
             continue;
         }
         // Loop through the current pathway-items to prevent double links
         if (!empty($pathway_items)) {
             $match = false;
             foreach ($pathway_items as $pathway_item) {
                 if ($pathway_item->link == $item['link']) {
                     $match = true;
                 }
             }
             if ($match == true) {
                 continue;
             }
         }
         $pathway_item = (object) null;
         $pathway_item->name = JText::_($item['label']);
         $pathway_item->link = $item['link'];
         $pathway_item->magento = 1;
         $pathway_items[] = $pathway_item;
     }
     $pathway->setPathway($pathway_items);
     return true;
 }
예제 #4
0
 /**
  * Helper-method to set the debugging information
  *
  * @param null
  * @return null
  */
 public static function addDebug()
 {
     // Do not add debugging information when posting or redirecting
     if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
         return false;
     }
     // Only continue when debugging is enabled
     if (MageBridgeModelDebug::isDebug() && MagebridgeModelConfig::load('debug_bar')) {
         // Load variables
         $debug = MageBridgeModelDebug::getInstance();
         $bridge = MageBridgeModelBridge::getInstance();
         $register = MageBridgeModelRegister::getInstance();
         $original_request = MageBridgeUrlHelper::getOriginalRequest();
         $request = MageBridgeUrlHelper::getRequest();
         // Debug the MageBridge request
         if (MagebridgeModelConfig::load('debug_bar_request')) {
             $url = $bridge->getMagentoUrl() . $request;
             if (empty($request)) {
                 $request = '[empty]';
             }
             $Itemid = JFactory::getApplication()->input->getInt('Itemid');
             $root_item = MageBridgeUrlHelper::getRootItem();
             $root_item_id = $root_item ? $root_item->id : false;
             $menu_message = 'Menu-Item: ' . $Itemid;
             if ($root_item_id == $Itemid) {
                 $menu_message .= ' (Root Menu-Item)';
             }
             JError::raiseNotice('notice', $menu_message);
             JError::raiseNotice('notice', JText::sprintf('Page request: %s', !empty($request) ? $request : '[empty]'));
             JError::raiseNotice('notice', JText::sprintf('Original request: %s', $bridge->getSessionData('request')));
             JError::raiseNotice('notice', JText::sprintf('Received request: %s', $bridge->getSessionData('request')));
             JError::raiseNotice('notice', JText::sprintf('Received referer: %s', $bridge->getSessionData('referer')));
             JError::raiseNotice('notice', JText::sprintf('Current referer: %s', $bridge->getHttpReferer()));
             JError::raiseNotice('notice', JText::sprintf('Magento request: <a href="%s" target="_new">%s</a>', $url, $url));
             JError::raiseNotice('notice', JText::sprintf('Magento session: %s', $bridge->getMageSession()));
             if (MageBridgeTemplateHelper::isCategoryPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCategoryPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isProductPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isProductPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCatalogPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCatalogPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCustomerPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCustomerPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCartPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCartPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCheckoutPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCheckoutPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isSalesPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isSalesPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isHomePage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isHomePage() == TRUE'));
             }
         }
         // Add store information
         if (MagebridgeModelConfig::load('debug_bar_store')) {
             JError::raiseNotice('notice', JText::sprintf('Magento store loaded: %s (%s)', $bridge->getSessionData('store_name'), $bridge->getSessionData('store_code')));
         }
         // Add category information
         $category_id = $bridge->getSessionData('current_category_id');
         if ($category_id > 0) {
             JError::raiseNotice('notice', JText::sprintf('Magento category: %d', $category_id));
         }
         // Add product information
         $product_id = $bridge->getSessionData('current_product_id');
         if ($product_id > 0) {
             JError::raiseNotice('notice', JText::sprintf('Magento product: %d', $product_id));
         }
         // Add information on bridge-segments
         if (MagebridgeModelConfig::load('debug_bar_parts')) {
             $i = 0;
             $segments = $register->getRegister();
             foreach ($segments as $segment) {
                 if (isset($segment['status']) && $segment['status'] == 1) {
                     switch ($segment['type']) {
                         case 'breadcrumbs':
                         case 'meta':
                         case 'debug':
                         case 'headers':
                         case 'events':
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: %s', $i, ucfirst($segment['type'])));
                             break;
                         case 'api':
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: API resource "%s"', $i, $segment['name']));
                             break;
                         case 'block':
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: Block "%s"', $i, $segment['name']));
                             break;
                         default:
                             $name = isset($segment['name']) ? $segment['name'] : null;
                             $type = isset($segment['type']) ? $segment['type'] : null;
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: type %s, name %s', $i, $type, $name));
                             break;
                     }
                     $i++;
                 }
             }
         }
     }
 }
 private function allowPosition($position)
 {
     // Don't do anything if MageBridge is not enabled
     if ($this->isEnabled() == false) {
         return true;
     }
     // If the position is empty, default to true
     $position = trim($position);
     if (empty($position)) {
         return true;
     }
     // Check for a certain page
     if (MageBridgeTemplateHelper::isHomePage()) {
         $setting = 'flush_positions_home';
     } else {
         if (MageBridgeTemplateHelper::isCustomerPage()) {
             $setting = 'flush_positions_customer';
         } else {
             if (MageBridgeTemplateHelper::isProductPage()) {
                 $setting = 'flush_positions_product';
             } else {
                 if (MageBridgeTemplateHelper::isCategoryPage()) {
                     $setting = 'flush_positions_category';
                 } else {
                     if (MageBridgeTemplateHelper::isCartPage()) {
                         $setting = 'flush_positions_cart';
                     } else {
                         if (MageBridgeTemplateHelper::isCheckoutPage()) {
                             $setting = 'flush_positions_checkout';
                         } else {
                             $setting = null;
                         }
                     }
                 }
             }
         }
     }
     // If the page-check returns empty, default to true
     if (empty($setting)) {
         return true;
     }
     // Check for flushing of positions within the MageBridge configuration
     $array = explode(',', $this->params->get($setting));
     if (!empty($array)) {
         foreach ($array as $a) {
             if ($position == trim($a)) {
                 return false;
             }
         }
     }
     // Default to true
     return true;
 }
예제 #6
0
 public function addDebug()
 {
     if (MageBridgeModelDebug::isDebug() && MagebridgeModelConfig::load('debug_bar')) {
         $debug = MageBridgeModelDebug::getInstance();
         $bridge = MageBridgeModelBridge::getInstance();
         $register = MageBridgeModelRegister::getInstance();
         $request = MageBridgeUrlHelper::getRequest();
         if (MagebridgeModelConfig::load('debug_bar_request')) {
             $url = $bridge->getMagentoUrl() . $request;
             if (empty($request)) {
                 $request = '[empty]';
             }
             $Itemid = JRequest::getInt('Itemid');
             $root_item = MageBridgeUrlHelper::getRootItem();
             $root_item_id = $root_item ? $root_item->id : false;
             $menu_message = 'Menu-Item: ' . $Itemid;
             if ($root_item_id == $Itemid) {
                 $menu_message .= ' (Root Menu-Item)';
             }
             JError::raiseNotice('notice', $menu_message);
             JError::raiseNotice('notice', JText::sprintf('Page request: %s', !empty($request) ? $request : '[empty]'));
             JError::raiseNotice('notice', JText::sprintf('Received request: %s', $bridge->getMageConfig('request')));
             JError::raiseNotice('notice', JText::sprintf('Received referer: %s', $bridge->getMageConfig('referer')));
             JError::raiseNotice('notice', JText::sprintf('Current referer: %s', $bridge->getHttpReferer()));
             JError::raiseNotice('notice', JText::sprintf('Magento request: <a href="%s" target="_new">%s</a>', $url, $url));
             JError::raiseNotice('notice', JText::sprintf('Magento session: %s', $bridge->getMageSession()));
             if (MageBridgeTemplateHelper::isCategoryPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCategoryPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isProductPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isProductPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCatalogPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCatalogPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCustomerPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCustomerPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCartPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCartPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isCheckoutPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isCheckoutPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isSalesPage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isSalesPage() == TRUE'));
             }
             if (MageBridgeTemplateHelper::isHomePage()) {
                 JError::raiseNotice('notice', JText::_('MageBridgeTemplateHelper::isHomePage() == TRUE'));
             }
         }
         if (MagebridgeModelConfig::load('debug_bar_store')) {
             JError::raiseNotice('notice', JText::sprintf('Magento store loaded: %s', $bridge->getMageConfig('store_name')));
         }
         if (MagebridgeModelConfig::load('debug_bar_parts')) {
             $i = 0;
             foreach ($register->getRegister() as $segment) {
                 if (isset($segment['status']) && $segment['status'] == 1) {
                     switch ($segment['type']) {
                         case 'breadcrumbs':
                         case 'meta':
                         case 'debug':
                         case 'headers':
                         case 'events':
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: %s', $i, ucfirst($segment['type'])));
                             break;
                         case 'api':
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: API resource "%s"', $i, $segment['name']));
                             break;
                         case 'block':
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: Block "%s"', $i, $segment['name']));
                             break;
                         default:
                             $name = isset($segment['name']) ? $segment['name'] : null;
                             $type = isset($segment['type']) ? $segment['type'] : null;
                             JError::raiseNotice('notice', JText::sprintf('Magento [%d]: type %s, name %s', $i, $type, $name));
                             break;
                     }
                     $i++;
                 }
             }
         }
         $this->assignRef('debug', $debug->getData());
     }
 }