How to modify controller to show some data in the template Opencart

Please LogIn to Reply!

Post By: guest | 01-13-2013 07:57 Reply

Question

Hello all...

I need to place in the header the information that appears in the footer by default. To accomplish that, I would need to modify catalog/controller/common/header.php, which will affect OpenCart upgrades.

How to do it in the right way?

Thanks in advance
Jaime

Answers

jstuardo wrote:How to do it in the right way?


At present, vQmod appears to be the popular choice - you maintain your core files and use these small xml scripts to modify information 'on-the-fly'.

This is a good place to start http://forum.opencart.com/viewtopic.php?f=23&t=40987&p=196942#p196942 and there are loads of available mods written in either the free or commercial areas of the relevant parts of the forum.

There is even an xml script generator available in the last post of this thread: http://forum.opencart.com/viewtopic.php?f=10&t=47534&p=226296#p226296

Have fun playing

In header.php, after index() { add

Code: Select all
      $this->language->load('common/footer');
      
      $this->data['text_information'] = $this->language->get('text_information');
      $this->data['text_service'] = $this->language->get('text_service');
      $this->data['text_extra'] = $this->language->get('text_extra');
      $this->data['text_account'] = $this->language->get('text_account');
      $this->data['text_contact'] = $this->language->get('text_contact');
      $this->data['text_return'] = $this->language->get('text_return');
       $this->data['text_sitemap'] = $this->language->get('text_sitemap');
      $this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
      $this->data['text_voucher'] = $this->language->get('text_voucher');
      $this->data['text_affiliate'] = $this->language->get('text_affiliate');
      $this->data['text_special'] = $this->language->get('text_special');
      $this->data['text_account'] = $this->language->get('text_account');
      $this->data['text_order'] = $this->language->get('text_order');
      $this->data['text_wishlist'] = $this->language->get('text_wishlist');
      $this->data['text_newsletter'] = $this->language->get('text_newsletter');
      
      $this->load->model('catalog/information');
      
      $this->data['informations'] = array();

      foreach ($this->model_catalog_information->getInformations() as $result) {
            $this->data['informations'][] = array(
              'title' => $result['title'],
             'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
            );
       }

      $this->data['contact'] = $this->url->link('information/contact');
      $this->data['return'] = $this->url->link('account/return/insert', '', 'SSL');
       $this->data['sitemap'] = $this->url->link('information/sitemap');
      $this->data['manufacturer'] = $this->url->link('product/manufacturer', '', 'SSL');
      $this->data['voucher'] = $this->url->link('checkout/voucher', '', 'SSL');
      $this->data['affiliate'] = $this->url->link('affiliate/account', '', 'SSL');
      $this->data['special'] = $this->url->link('product/special');
      $this->data['account'] = $this->url->link('account/account', '', 'SSL');
      $this->data['order'] = $this->url->link('account/order', '', 'SSL');
      $this->data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
      $this->data['newsletter'] = $this->url->link('account/newsletter', '', 'SSL');      

      $this->data['powered'] = sprintf($this->language->get('text_powered'), $this->config->get('config_name'), date('Y', time()));

But in this case, core files are modified.

Regards,
Jaime

Code: Select all
<modification>
   <id><![CDATA[Footer data in header]]></id>
   <version><![CDATA[1]]></version>
   <vqmver><![CDATA[]]></vqmver>
   <author><![CDATA[Thomas Smith [Smifis.co.uk]]]></author>
   <file name="catalogcontrollercommonheader.php">
      <operation>
         <search position="after"><![CDATA[protected function index() {]]></search>
         <add><![CDATA[      $this->language->load('common/footer');
     
      $this->data['text_information'] = $this->language->get('text_information');
      $this->data['text_service'] = $this->language->get('text_service');
      $this->data['text_extra'] = $this->language->get('text_extra');
      $this->data['text_account'] = $this->language->get('text_account');
      $this->data['text_contact'] = $this->language->get('text_contact');
      $this->data['text_return'] = $this->language->get('text_return');
       $this->data['text_sitemap'] = $this->language->get('text_sitemap');
      $this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
      $this->data['text_voucher'] = $this->language->get('text_voucher');
      $this->data['text_affiliate'] = $this->language->get('text_affiliate');
      $this->data['text_special'] = $this->language->get('text_special');
      $this->data['text_account'] = $this->language->get('text_account');
      $this->data['text_order'] = $this->language->get('text_order');
      $this->data['text_wishlist'] = $this->language->get('text_wishlist');
      $this->data['text_newsletter'] = $this->language->get('text_newsletter');
     
      $this->load->model('catalog/information');
     
      $this->data['informations'] = array();

      foreach ($this->model_catalog_information->getInformations() as $result) {
            $this->data['informations'][] = array(
              'title' => $result['title'],
             'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
            );
       }

      $this->data['contact'] = $this->url->link('information/contact');
      $this->data['return'] = $this->url->link('account/return/insert', '', 'SSL');
       $this->data['sitemap'] = $this->url->link('information/sitemap');
      $this->data['manufacturer'] = $this->url->link('product/manufacturer', '', 'SSL');
      $this->data['voucher'] = $this->url->link('checkout/voucher', '', 'SSL');
      $this->data['affiliate'] = $this->url->link('affiliate/account', '', 'SSL');
      $this->data['special'] = $this->url->link('product/special');
      $this->data['account'] = $this->url->link('account/account', '', 'SSL');
      $this->data['order'] = $this->url->link('account/order', '', 'SSL');
      $this->data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
      $this->data['newsletter'] = $this->url->link('account/newsletter', '', 'SSL');     

      $this->data['powered'] = sprintf($this->language->get('text_powered'), $this->config->get('config_name'), date('Y', time()));]]></add>
      </operation>
   </file>
</modification>

Reply Or Comment!
Please LogIn to Reply!