/** * Event onAfterInitialise */ public function onAfterInitialise() { // Don't do anything if MageBridge is not enabled if ($this->isEnabled() == false) { return false; } // Perform actions on the frontend $application = JFactory::getApplication(); // Check for postlogin-cookie if (isset($_COOKIE['mb_postlogin']) && !empty($_COOKIE['mb_postlogin'])) { // If the user is already logged in, remove the cookie if (JFactory::getUser()->id > 0) { setcookie('mb_postlogin', '', time() - 3600, '/', '.' . JURI::getInstance()->toString(array('host'))); } // Otherwise decrypt the cookie and use it here $data = MageBridgeEncryptionHelper::decrypt($_COOKIE['mb_postlogin']); if (!empty($data)) { $customer_email = $data; } } // Perform a postlogin if needed $post = $application->input->post->getArray(); if (empty($post)) { $postlogin_userevents = $this->params->get('postlogin_userevents', 0) == 1 ? true : false; if (empty($customer_email)) { $customer_email = MageBridgeModelBridge::getInstance()->getSessionData('customer/email'); } if (!empty($customer_email)) { MageBridge::getUser()->postlogin($customer_email, null, $postlogin_userevents); } } }
public static function removeMagentoScripts() { $bridge = MageBridgeModelBridge::getInstance(); $document = JFactory::getDocument(); $bridge->build(); $headers = $document->getHeadData(); $mageurl = $bridge->getMagentoUrl(); foreach ($headers['scripts'] as $index => $header) { if (strstr($header, $mageurl)) { unset($headers['scripts'][$index]); } } foreach ($headers['custom'] as $index => $header) { if (strstr($header, $mageurl) || strstr($header, 'new Translate')) { unset($headers['custom'][$index]); } else { if (strstr($header, 'protoaculous')) { unset($headers['custom'][$index]); } } } $document->setHeadData($headers); MagebridgeModelConfig::load('disable_js_footools', 1); MagebridgeModelConfig::load('disable_js_mootools', 0); }
/** * Event onBeforeBuildMageBridge * * @access public * @param null * @return null */ public function onBeforeBuildMageBridge() { // Get base variables $application = JFactory::getApplication(); // Get the current Magento request $request = MageBridgeUrlHelper::getRequest(); // Check for the logout-page if ($request == 'customer/account/logoutSuccess') { $application->logout(); } // When visiting the checkout/cart/add URL without a valid session, the action will fail because the session does not exist yet // The following workaround makes sure we first redirect to another page (to initialize the session) after which we can add the product if (preg_match('/checkout\\/cart\\/add\\//', $request) && !preg_match('/redirect=1/', $request)) { $bridge = MageBridgeModelBridge::getInstance(); $register = MageBridgeModelRegister::getInstance(); $session = $bridge->getMageSession(); // Check for the Magento session-key stored in the Joomla! session // Session is NOT yet initialized, therefor addtocart is not working yet either if (empty($session) && !empty($_COOKIE)) { // Redirect the client to an intermediate page to properly initialize the session $bridge->setHttpReferer(MageBridgeUrlHelper::route($request . '?redirect=1')); MageBridgeUrlHelper::setRequest('magebridge/redirect/index/url/' . base64_encode($request)); MageBridgeModelBridgeMeta::getInstance()->reset(); } } }
/** * Method to get the meta-data * * @return array */ public function getRequestData() { // Compile the meta-data if (empty($this->_meta_data) || !is_array($this->_meta_data)) { $application = JFactory::getApplication(); $input = $application->input; $user = JFactory::getUser(); $uri = JURI::getInstance(); $session = JFactory::getSession(); $config = JFactory::getConfig(); $storeHelper = MageBridgeStoreHelper::getInstance(); $bridge = MageBridgeModelBridge::getInstance(); $app_type = $storeHelper->getAppType(); $app_value = $storeHelper->getAppValue(); $arguments = array('api_session' => $bridge->getApiSession(), 'api_user' => MageBridgeEncryptionHelper::encrypt(MagebridgeModelConfig::load('api_user')), 'api_key' => MageBridgeEncryptionHelper::encrypt(MagebridgeModelConfig::load('api_key')), 'api_url' => JURI::root() . 'component/magebridge/?controller=jsonrpc&task=call', 'app' => $application->getClientId(), 'app_type' => $app_type, 'app_value' => $app_value, 'storeview' => MagebridgeModelConfig::load('storeview'), 'storegroup' => MagebridgeModelConfig::load('storegroup'), 'website' => MagebridgeModelConfig::load('website'), 'customer_group' => MagebridgeModelConfig::load('customer_group'), 'joomla_url' => $bridge->getJoomlaBridgeUrl(), 'joomla_sef_url' => $bridge->getJoomlaBridgeSefUrl(), 'joomla_sef_suffix' => (int) MageBridgeUrlHelper::hasUrlSuffix(), 'joomla_user_email' => $application->isSite() && !empty($user->email) ? $user->email : null, 'joomla_current_url' => $uri->current(), 'modify_url' => MagebridgeModelConfig::load('modify_url'), 'enforce_ssl' => MagebridgeModelConfig::load('enforce_ssl'), 'has_ssl' => (int) $uri->isSSL(), 'payment_urls' => MagebridgeModelConfig::load('payment_urls'), 'enable_messages' => MagebridgeModelConfig::load('enable_messages'), 'joomla_session' => session_id(), 'joomla_conf_caching' => $config->get('caching', 60), 'joomla_conf_lifetime' => $config->get('lifetime', 60) * 60, 'magento_session' => $bridge->getMageSession(), 'magento_persistent_session' => $bridge->getMagentoPersistentSession(), 'magento_user_allowed_save_cookie' => isset($_COOKIE['user_allowed_save_cookie']) ? $_COOKIE['user_allowed_save_cookie'] : null, 'request_uri' => MageBridgeUrlHelper::getRequest(), 'request_id' => md5(JURI::current() . serialize($input->get->getArray())), 'post' => !empty($_POST) ? $_POST : null, 'http_referer' => $bridge->getHttpReferer(), 'http_host' => $uri->toString(array('host')), 'user_agent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '', 'remote_addr' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '', 'supportkey' => MagebridgeModelConfig::load('supportkey'), 'debug' => (int) MageBridgeModelDebug::isDebug(), 'debug_level' => MagebridgeModelConfig::load('debug_level'), 'debug_display_errors' => MagebridgeModelConfig::load('debug_display_errors'), 'protocol' => MagebridgeModelConfig::load('protocol'), 'state' => 'initializing', 'ajax' => (int) $bridge->isAjax(), 'disable_css' => MageBridgeHelper::getDisableCss(), 'disable_js' => MageBridgeHelper::getDisableJs()); if (MageBridgeTemplateHelper::isMobile()) { $arguments['theme'] = MagebridgeModelConfig::load('mobile_magento_theme'); } else { $arguments['theme'] = MagebridgeModelConfig::load('magento_theme'); } foreach ($arguments as $name => $value) { if (is_string($value)) { $arguments[$name] = MageBridgeEncryptionHelper::base64_encode($value); } } $this->_meta_data = $arguments; } return $this->_meta_data; }
/** * Event onAfterRender * * @access public * @param null * @return null */ public function onAfterRender() { $bridge = MageBridgeModelBridge::getInstance(); $bridge->build(); $register = MageBridgeModelRegister::getInstance(); $segment = $register->getById($this->magebridge_register_id); }
public function getCall($function, $name, $arguments = null) { // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Build the bridge $build = $bridge->build(); return $bridge->{$function}($name, $arguments); }
/** * Fetch the content from the bridge * * @param string $function * @param string $name * @param mixed $arguments * @return mixed */ public static function getCall($function, $name, $arguments = null) { // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Build the bridge MageBridgeModelDebug::getInstance()->notice('Bridge called for ' . $function . ' "' . $name . '"'); $build = $bridge->build(); return $bridge->{$function}($name, $arguments); }
/** * Return whether MageBridge is available or not * * @return boolean */ private function isEnabled() { if (class_exists('MageBridgeModelBridge')) { if (MageBridgeModelBridge::getInstance()->isOffline() == false) { return true; } } return false; }
/** * Constructor */ public function __construct() { $this->bridge = MageBridgeModelBridge::getInstance(); $this->debug = MageBridgeModelDebug::getInstance(); $this->app = JFactory::getApplication(); $this->helper = new MageBridgeProxyHelper($this->app); $this->input = $this->app->input; $this->config = JFactory::getConfig(); }
public function getBlock($block_name, $arguments = null) { // Make sure the bridge is built MageBridgeModelBridge::getInstance()->build(); // Get the response-data $segment = $this->getResponse('block', $block_name, $arguments); if (!isset($segment['data'])) { return null; } // Parse the response-data $block_data = $segment['data']; if (!empty($block_data)) { if (!isset($segment['cache'])) { $block_data = self::decode($block_data); $block_data = self::filterHtml($block_data); } } // Replace Joomla! jdoc:include tags if (MagebridgeModelConfig::load('enable_jdoc_tags') == 1) { $block_data = MageBridgeBlockHelper::parseBlock($block_data); } // Run Content Plugins on this block-html if (MagebridgeModelConfig::load('enable_content_plugins') == 1) { // Prepare a simple item (like an article) for use with Content Plugins $item = (object) null; $item->text = $block_data; // Get a list of all Content Plugins except MageBridge plugins $plugins = MageBridgeModelBridgeBlock::getContentPlugins(); if (!empty($plugins)) { foreach ($plugins as $plugin) { JPluginHelper::importPlugin('content', $plugin); } } // Once the plugins are imported, trigger the content-event $dispatcher = JDispatcher::getInstance(); if (MageBridgeHelper::isJoomla15()) { $item->params = new JParameter(null); $result = $dispatcher->trigger('onPrepareContent', array(&$item, &$item->params, 0)); } else { jimport('joomla.html.parameter'); $item->params = new JParameter(null); $result = $dispatcher->trigger('onContentPrepare', array('com_magebridge.block', &$item, &$item->params, 0)); } // Move the modified contents into $block_data $block_data = $item->text; unset($item); } // Filter the block throw the "magebridge" plugin group if (MagebridgeModelConfig::load('enable_block_rendering') == 1) { JPluginHelper::importPlugin('magebridge'); JFactory::getApplication()->triggerEvent('onBeforeDisplayBlock', array(&$block_name, $arguments, &$block_data)); } return $block_data; }
public function getResult() { // Register this request $register = MageBridgeModelRegister::getInstance(); $register->add('api', 'magebridge_storegroups.list'); // Send the request to the bridge $bridge = MageBridgeModelBridge::getInstance(); $bridge->build(); $result = $bridge->getAPI('magebridge_storegroups.list'); return $result; }
public static function getResult() { $bridge = MageBridgeModelBridge::getInstance(); $result = $bridge->getAPI('customer_group.list'); if (empty($result)) { // Register this request $register = MageBridgeModelRegister::getInstance(); $register->add('api', 'customer_group.list'); // Send the request to the bridge $result = $bridge->getAPI('customer_group.list'); } return $result; }
/** * Event onAfterInitialise * * @access public * @param null * @return null */ public function onAfterInitialise() { // Don't do anything if MageBridge is not enabled if ($this->isEnabled() == false) { return false; } // Perform actions on the frontend $application = JFactory::getApplication(); if ($application->isSite()) { // Import the custom module helper - this is needed to make it possible to flush certain positions if ($this->getParam('override_modulehelper', 1) == 1 && class_exists('JModuleHelper') == false) { $component_path = JPATH_SITE . '/components/com_magebridge/'; if (MageBridgeHelper::isJoomla15()) { @(include_once $component_path . 'rewrite/joomla/application/module/helper.php'); } else { if (MageBridgeHelper::isJoomla16()) { @(include_once $component_path . 'rewrite-16/joomla/application/module/helper.php'); } else { if (MageBridgeHelper::isJoomla17()) { @(include_once $component_path . 'rewrite-17/joomla/application/module/helper.php'); } else { @(include_once $component_path . 'rewrite-25/joomla/application/module/helper.php'); } } } } } // Check for postlogin-cookie if (isset($_COOKIE['mb_postlogin']) && !empty($_COOKIE['mb_postlogin'])) { // If the user is already logged in, remove the cookie if (JFactory::getUser()->id > 0) { setcookie('mb_postlogin', '', time() - 3600, '/', '.' . JURI::getInstance()->toString(array('host'))); } // Otherwise decrypt the cookie and use it here $data = MageBridgeEncryptionHelper::decrypt($_COOKIE['mb_postlogin']); if (!empty($data)) { $customer_email = $data; } } // Perform a postlogin if needed $post = JRequest::get('post'); if (empty($post)) { $postlogin_userevents = $this->getParams()->get('postlogin_userevents', 0) == 1 ? true : false; if (empty($customer_email)) { $customer_email = MageBridgeModelBridge::getInstance()->getMageConfig('customer/email'); } if (!empty($customer_email)) { MageBridge::getUser()->postlogin($customer_email, null, $postlogin_userevents); } } }
public function display($tpl = null) { // Load the bridge $bridge = MageBridgeModelBridge::getInstance(); // Load the parameters $layout = $this->getLayout(); $params = MageBridgeHelper::getParams(); // Set the request based upon the choosen category $request = $params->get('request', false) ? $params->get('request') : MageBridgeUrlHelper::getRequest(); $prefix = preg_replace('/\\?(.*)/', '', $request); $suffix = preg_replace('/(.*)\\?/', '', $request); // Check if this a non-URL-optimized request if (is_numeric($prefix)) { $request = MageBridgeUrlHelper::getLayoutUrl($layout, $prefix); } else { // Determine the suffix if ($layout == 'product') { $suffix = $bridge->getMageConfig('catalog/seo/product_url_suffix'); } else { if ($layout == 'category') { $suffix = $bridge->getMageConfig('catalog/seo/category_url_suffix'); } } // Add the suffix, if this is set in the Magento configuration if (!empty($suffix) && !preg_match('/' . $suffix . '$/', $request)) { $request .= $suffix; } } // Add the $mode = $params->get('mode'); if (!empty($mode)) { $request .= '?mode=' . $mode; } // Set the request in the bridge $this->setRequest($request); // Handle the redirect request $redirect = JRequest::getString('redirect'); if (!empty($redirect)) { $bridge->setHttpReferer($redirect); } // Reuse this request to set the Canonical URL if (MagebridgeModelConfig::load('enable_canonical') == 1) { $uri = MageBridgeUrlHelper::route($request); $document = JFactory::getDocument(); $document->setMetaData('canonical', $uri); } // Set which block to display $this->setBlock('content'); parent::display($tpl); }
public function build($params = null) { // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } return null; }
/** * Method to make logout the current user */ public function logout() { // Perform a logout $user = JFactory::getUser(); $application = JFactory::getApplication(); $application->logout($user->get('id')); // Determine the redirect URL $redirectUrl = base64_decode(JFactory::getApplication()->input->getString('redirect')); if (empty($redirectUrl)) { $redirectUrl = MageBridgeModelBridge::getMagentoUrl(); } // Redirect $application->redirect($redirectUrl); $application->close(); }
public function build($params = null) { $bridge = MageBridgeModelBridge::getInstance(); $stores = $bridge->getAPI('magebridge_storeviews.hierarchy'); if (empty($stores) || !is_array($stores)) { return null; } $storeId = $params->get('store_id'); foreach ($stores as $store) { if ($store['value'] == $storeId) { return array($store); break; } } return $stores; }
/** * Fetch the content from the bridge * * @access public * @param JRegistry $params * @return string */ public static function build($params = null) { // Get the block name $blockName = $params->get('block'); $arguments = array('blocktype' => 'cms'); // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } return $bridge->getBlock($blockName, $arguments); }
public function display($tpl = null) { //JToolBarHelper::help( 'screen.magebridge.usage' ); $this->addMenuItems(); $this->addCss('backend.css', 'media/com_magebridge/css/'); if (JRequest::getCmd('view') == 'home') { $this->addCss('backend-home.css', 'media/com_magebridge/css/'); } if (!MageBridgeHelper::isJoomla15()) { $this->addCss('backend-j16.css', 'media/com_magebridge/css/'); } // If we detect the API is down, report it $bridge = MageBridgeModelBridge::getInstance(); if ($bridge->getApiState() != null) { $message = null; switch (strtoupper($bridge->getApiState())) { case 'EMPTY METADATA': $message = JText::_('The bridge-data arrived empty in Magento.'); break; case 'LICENSE FAILED': $message = JText::sprintf('The Joomla! support-key is different from the one in Magento (%s).', $bridge->getApiExtra()); break; case 'AUTHENTICATION FAILED': $message = JText::_('API authentication failed. Please check your API-user and API-key.'); break; case 'INTERNAL ERROR': $help = MageBridgeHelper::getHelpText('troubleshooting'); $message = JText::sprintf('Bridge encountered a 500 Internal Server Error. Please check out the %s for more information.', $help); break; case 'FAILED LOAD': $help = MageBridgeHelper::getHelpText('faq-troubleshooting:api-widgets'); $message = JText::sprintf('Failed to load API-widgets. Please check out the %s for more information.', $help); break; default: $message = JText::_('An API-error occurred: ' . $bridge->getApiState()); break; } MageBridgeModelDebug::getInstance()->feedback($message); } // If debugging is enabled report it if (MagebridgeModelConfig::load('debug') == 1 && JRequest::getCmd('tmpl') != 'component' && in_array(JRequest::getCmd('view'), array('config', 'home'))) { MageBridgeModelDebug::getInstance()->feedback('Debugging is currently enabled'); } parent::display($tpl); }
public function build($params = null) { // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } if ($params->get('layout') == 'native') { return $bridge->getAPI('magebridge_session.checkout'); } else { return $bridge->getBlock('cart_sidebar'); } }
public function build($params = null) { // Get the widget name $widgetName = $params->get('widget'); // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } // Get the widget $widget = $bridge->getWidget($widgetName); // Return the output return $widget; }
/** * Event onAfterRender * * @access public * @param null * @return null */ public function onAfterRender() { // Don't do anything if MageBridge is not enabled if ($this->isEnabled() == false) { return false; } if (JRequest::getCmd('option') == 'com_zoo') { $body = JResponse::getBody(); // Check for Magento CMS-tags if (preg_match('/\\{\\{([^}]+)\\}\\}/', $body)) { // Get system variables $bridge = MageBridgeModelBridge::getInstance(); // Include the MageBridge register $key = md5(var_export($body, true)) . ':' . JRequest::getCmd('option') . ':' . $row->id; $text = MageBridgeEncryptionHelper::base64_encode($body); // Conditionally load CSS if ($this->getParams()->get('load_css') == 1 || $this->getParams()->get('load_js') == 1) { $bridge->register('headers'); } // Build the bridge $segment_id = $bridge->register('filter', $key, $text); $bridge->build(); // Load CSS if needed if ($this->getParams()->get('load_css') == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($this->getParams()->get('load_js') == 1) { $bridge->setHeaders('js'); } // Get the result from the bridge $result = $bridge->getSegmentData($segment_id); $result = MageBridgeEncryptionHelper::base64_decode($result); // Only replace the original if the new content exists if (!empty($result)) { $body = $result; } } if (!empty($body)) { JResponse::setBody($body); } } }
protected function getInput() { $name = $this->name; $fieldName = $name; $value = $this->value; // Are the API widgets enabled? if (MagebridgeModelConfig::load('api_widgets') == true) { $bridge = MageBridgeModelBridge::getInstance(); $path = $bridge->getMageConfig('backend/path'); if (!empty($path)) { $html = '<input type="text" value="' . $path . '" disabled="disabled" />'; $html .= '<input type="hidden" name="' . $fieldName . '" value="' . $path . '" />'; return $html; } else { MageBridgeModelDebug::getInstance()->warning('Unable to obtain MageBridge API Widget "backend"'); } } return '<input type="text" name="' . $fieldName . '" value="' . $value . '" />'; }
public function getWidget($widget_name, $arguments = null) { // Make sure the bridge is built MageBridgeModelBridge::getInstance()->build(); // Get the response-data $segment = $this->getResponse('widget', $widget_name, $arguments); if (!isset($segment['data'])) { return null; } // Parse the response-data $widget_data = $segment['data']; if (!empty($widget_data)) { if (!isset($segment['cache'])) { $widget_data = self::decode($widget_data); $widget_data = self::filterHtml($widget_data); } } return $widget_data; }
public static function build($params = null) { // Get the block name $blockName = modMageBridgeBlockHelper::blockName($params); // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } // Get the block $block = $bridge->getBlock($blockName); // Return the output return $block; }
/** * Display method * * @param string $tpl * @return null */ public function display($tpl = null) { // Add CSS-code $this->addCss('backend.css', 'media/com_magebridge/css/'); if (MageBridgeHelper::isJoomla25()) { $this->addCss('backend-j25.css', 'media/com_magebridge/css/'); } if (MageBridgeHelper::isJoomla35()) { $this->addCss('backend-j35.css', 'media/com_magebridge/css/'); } // If we detect the API is down, report it $bridge = MageBridgeModelBridge::getInstance(); if ($bridge->getApiState() != null) { $message = null; switch (strtoupper($bridge->getApiState())) { case 'EMPTY METADATA': $message = JText::_('COM_MAGEBRIDGE_VIEW_API_ERROR_EMPTY_METADATA'); break; case 'SUPPORTKEY FAILED': $message = JText::sprintf('COM_MAGEBRIDGE_VIEW_API_ERROR_KEY_FAILED', $bridge->getApiExtra()); break; case 'AUTHENTICATION FAILED': $message = JText::_('COM_MAGEBRIDGE_VIEW_API_ERROR_AUTHENTICATION_FAILED'); break; case 'INTERNAL ERROR': $message = JText::sprintf('COM_MAGEBRIDGE_VIEW_API_ERROR_INTERNAL_ERROR', MageBridgeHelper::getHelpLink('troubleshooting')); break; case 'FAILED LOAD': $message = JText::sprintf('COM_MAGEBRIDGE_VIEW_API_ERROR_FAILED_LOAD', MageBridgeHelper::getHelpLink('faq-troubleshooting:api-widgets')); break; default: $message = JText::sprintf('COM_MAGEBRIDGE_VIEW_API_ERROR_GENERIC', $bridge->getApiState()); break; } MageBridgeModelDebug::getInstance()->feedback($message); } // If debugging is enabled report it if (MagebridgeModelConfig::load('debug') == 1 && JFactory::getApplication()->input->getCmd('tmpl') != 'component' && in_array(JFactory::getApplication()->input->getCmd('view'), array('config', 'home'))) { MageBridgeModelDebug::getInstance()->feedback('COM_MAGEBRIDGE_VIEW_API_DEBUGGING_ENABLED'); } parent::display($tpl); }
public function ajaxbuild($params = null) { // Get the block name $blockName = modMageBridgeRemoteHelper::blockName($params); // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } // Load the Ajax script $url = $bridge->getMagentoUrl() . '/magebridge/block/view/name/' . $blockName; $script = MageBridgeAjaxHelper::getScript($blockName, 'magebridge-' . $blockName, $url); $document = JFactory::getDocument(); $document->addCustomTag('<script type="text/javascript">' . $script . '</script>'); }
public function fetchElement($name, $value, &$node, $control_name) { // Add the control name if (!empty($control_name)) { $name = $control_name . '[' . $name . ']'; } // Are the API widgets enabled? if (MagebridgeModelConfig::load('api_widgets') == true) { $bridge = MageBridgeModelBridge::getInstance(); $path = $bridge->getMageConfig('backend/path'); if (!empty($path)) { $html = '<input type="text" value="' . $path . '" disabled="disabled" />'; $html .= '<input type="hidden" name="' . $name . '" value="' . $path . '" />'; return $html; } else { MageBridgeModelDebug::getInstance()->warning('Unable to obtain MageBridge API Widget "backend"'); } } return '<input type="text" name="' . $name . '" value="' . $value . '" />'; }
/** * Method to display the requested view */ public function display($tpl = null) { // Determine which block to display $blockName = JFactory::getApplication()->input->getString('block'); // Fetch the block if (!empty($blockName)) { // Get the register and add the block-request $register = MageBridgeModelRegister::getInstance(); $register->clean(); $register->add('block', $blockName); // Build the bridge MageBridgeModelDebug::getInstance()->notice('Building AJAX view for block "' . $blockName . '"'); $bridge = MageBridgeModelBridge::getInstance(); $bridge->build(); // Query the bridge for the block $block = $bridge->getBlock($blockName); print $block; } // Close the application JFactory::getApplication()->close(); }
/** * Fetch the content from the bridge * * @access public * @param JRegistry $params * @return string */ public static function build($params = null) { // Get the block name $blockName = modMageBridgeBlockHelper::getBlockName($params); $arguments = modMageBridgeBlockHelper::getArguments($params); // Include the MageBridge bridge $bridge = MageBridgeModelBridge::getInstance(); // Load CSS if needed if ($params->get('load_css', 1) == 1) { $bridge->setHeaders('css'); } // Load JavaScript if needed if ($params->get('load_js', 1) == 1) { $bridge->setHeaders('js'); } // Get the block MageBridgeModelDebug::getInstance()->notice('Bridge called for block "' . $blockName . '"'); $block = $bridge->getBlock($blockName, $arguments); // Return the output return $block; }