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