/**
  * 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();
         }
     }
 }
Beispiel #4
0
 /**
  * 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);
 }
Beispiel #7
0
 /**
  * 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);
 }
Beispiel #8
0
 /**
  * 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;
 }
Beispiel #9
0
 /**
  * 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;
 }
Beispiel #16
0
 /**
  * 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;
 }
Beispiel #18
0
 /**
  * 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;
 }
Beispiel #26
0
 /**
  * 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 . '" />';
 }
Beispiel #29
0
 /**
  * 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();
 }
Beispiel #30
0
 /**
  * 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;
 }