2017-07-24 2 views
1

Je veux ajouter un sous-menu dans OpenCart, sous le menu du catalogue dans la zone d'administration. dans le passé, nous avons utilisé ocmod ou vqmod pour le faire, un exemple par ocmod est ici:Ajouter sous-menu dans OpenCart par événements dans la zone d'administration

<?xml version="1.0" encoding="utf-8"?> 
<modification> 
    <code>submenu5</code> 
    <name>submenu5</name> 
    <version>2.3</version> 
    <author>codertj</author> 
    <link>codertj.com</link> 

    <!-- edit header controller --> 
    <file path="admin/controller/common/column_left.php"> 
    <!-- create link to your page --> 
     <operation error="log"> 
      <search><![CDATA[if ($this->user->hasPermission('access', 'catalog/product')) {]]></search> 
      <add position="before"><![CDATA[ 
       if ($this->user->hasPermission('access', 'catalog/product')) { 
        $catalog[] = array(
         'name'  => $this->language->get('text_hello_world'), 
         'href'  => $this->url->link('report/helloworld', 'token=' . $this->session->data['token'], true), 
         'children' => array() 
        ); 
       } 
      ]]></add> 
     </operation> 
    </file> 

    <!-- edit header template --> 
    <file path="admin/language/en-gb/common/column_left.php"> 
     <operation error="log"> 
      <search><![CDATA[$_['text_product']]]></search> 
      <add position="before"><![CDATA[ 
       $_['text_hello_world']    = 'Hello World'; 
      ]]></add> 
     </operation> 
    </file> 

</modification> 

maintenant opencart utilisation du système d'événements, mais je ne peux pas trouver la solution pour convertir cette ocmod à l'événement!

+0

OpenCart Vous pouvez toujours le faire avec vQmod. Ce serait la meilleure et la plus directe. –

+0

Merci Scott, je sais cela et je l'ai fait, mais je veux apprendre comment faire cela par les événements, c'est un aspect d'apprentissage pour moi ... –

+0

Les événements OpenCart sont * complètement * différents dans les versions 2.0 et 2.3. Ensuite, ils sont à nouveau différents dans la version 3.0. Quelle version voulez-vous apprendre? –

Répondre

2

Vous pouvez le faire de cette façon, Nous supposons que vous avez enregistré l'événement dans la base de données, si vous ne le faites pas, vous pouvez créer rapidement avec la requête suivante:

INSERT INTO `oc_event` (`code`, `trigger`, `action`, `status`) VALUES ('mymodule', 'admin/view/common/column_left/before', 'extension/module/mymodule/addSubmenu', 1) 

admin \ contrôleur \ 'extension \ Module \ mymodule.php

<?php 
class ControllerExtensionModuleMymodule extends Controller { 
    public function addSubmenu(&$route = false, &$data = false, &$output = false){ 
     $my_language = $this->load->language('extension/module/mymodule'); 
     $data['menus'][1]['children'][] = array(
      'name'  => $my_language['text_hello_world'], 
      'href'  => $this->url->link('report/helloworld', 'token=' . $this->session->data['token'], true), 
      'children' => array() 
     ); 
    } 
} 

admin \ language \ fr-fr \' extension \ Module \ mymodule.php

<?php 
$_['text_hello_world']  = 'Hello World!'; 

J'ai testé cela avec 2.3