Überarbeitung des Admin-Menüs (column_left.php)

Thema wurde von Avenger, 8. August 2011 erstellt.

  1. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Was mich eigentlich seit Anbeginn meiner Arbeit mit xxCommerce/Gambio vor einigen Jahren geärgert hat, habe ich jetzt geändert:

    das unglaublich unübersichtliche Admin-Menü (column_left.php)!

    Und in Vorbereitung auf die hoffentlich bald verfügbare Möglichkeit der Klassenüberladung habe ich das als Klasse implementiert....

    (Dann wird man nämlich Menüeinträge (und ganze Menüblöcke!) hinzufügen können, ohne die neue Menüklasse oder vorhandene Sprachdateien ändern zu müssen...)

    Das Menü wird jetzt von dieser Klassenmethode generiert (wer sich die "column_left.php" mal angesehen hat, weiß, um wieviel übersichtlicher das ist...).

    Code:
      function create_menu()
      {
        $admin_access_query = xtc_db_query("select * from " . TABLE_ADMIN_ACCESS . " where customers_id = '" . $_SESSION['customer_id'] . "'");
        $this->admin_access = xtc_db_fetch_array($admin_access_query);
        
        $this->start_menu_block('favs.png','FAVS');
          echo ('<div id="gm_box_favorites"> </div>');
        $this->end_menu_block('favs');
    
        $this->start_menu_block('gambio.png','BOX_HEADING_LAYOUT_DESIGN');
          $this->menu_entry('gm_style_edit','BOX_GM_STYLE_EDIT',FILENAME_GM_STYLE_EDIT);
          $this->menu_entry('gm_logo','BOX_GM_LOGO',FILENAME_GM_LOGO);
          $this->menu_entry('gm_lightbox','BOX_GM_LIGHTBOX',FILENAME_GM_LIGHTBOX);
          $this->menu_entry('gm_slider','BOX_GM_SLIDER',FILENAME_GM_SLIDER);
          $this->menu_entry('gm_trusted_info','BOX_GM_TRUSTED_INFO',FILENAME_GM_TRUSTED_INFO);
        $this->end_menu_block('gambio');
     
        $this->start_menu_block('gambio.png','BOX_HEADING_GAMBIO_SEO');
          $this->menu_entry('gm_seo_boost','BOX_GM_SEO_BOOST',FILENAME_GM_SEO_BOOST);
          $this->menu_entry('gm_analytics','BOX_GM_ANALYTICS',FILENAME_GM_ANALYTICS);
          $this->menu_entry('gm_meta','BOX_GM_META',FILENAME_GM_META);
          $this->menu_entry('robots_download','BOX_ROBOTS',FILENAME_ROBOTS_DOWNLOAD);
          $this->menu_entry('gm_analytics','BOX_GM_SITEMAP',FILENAME_GM_SITEMAP);
          $this->menu_entry('gm_bookmarks','BOX_GM_BOOKMARKS',FILENAME_GM_BOOKMARKS);
        $this->end_menu_block('seo');
        
        $this->start_menu_block('kunden.png','BOX_HEADING_CUSTOMERS');
          $this->menu_entry('orders','BOX_ORDERS',FILENAME_ORDERS);
          $this->menu_entry('customers','BOX_CUSTOMERS',FILENAME_CUSTOMERS);
          $this->menu_entry('gm_module_export','BOX_GM_MODULE_EXPORT',FILENAME_GM_MODULE_EXPORT);
          $this->menu_entry('customers_status','BOX_CUSTOMERS_STATUS',FILENAME_CUSTOMERS_STATUS);
        $this->end_menu_block('customers');
    
        $this->start_menu_block('artkatalog.png','BOX_HEADING_PRODUCTS');
          $this->menu_entry('categories','BOX_CATEGORIES',FILENAME_CATEGORIES);
          $this->menu_entry('gm_feature_control','BOX_GM_FEATURE_CONTROL',FILENAME_GM_FEATURE_CONTROL);
          $this->menu_entry('products_attributes','BOX_PRODUCTS_ATTRIBUTES',FILENAME_PRODUCTS_ATTRIBUTES);
          $this->menu_entry('reviews','BOX_REVIEWS',FILENAME_REVIEWS);
          $this->menu_entry('quantity_units','BOX_QUANTITYUNITS',FILENAME_QUANTITYUNITS);
          $this->menu_entry('properties','BOX_PROPERTIES',FILENAME_PROPERTIES);
          $this->menu_entry('gm_product_export','BOX_PRODUCTS_EXPECTED',FILENAME_GM_PRODUCT_EXPORT);
          $this->menu_entry('new_attributes','BOX_ATTRIBUTES_MANAGER',FILENAME_NEW_ATTRIBUTES);
          $this->menu_entry('csv_backend','BOX_IMPORT','csv_backend.php');
          $this->menu_entry('products_expected','BOX_PRODUCTS_EXPECTED',FILENAME_PRODUCTS_EXPECTED);
          $this->menu_entry('gm_gmotion','BOX_GM_GMOTION',FILENAME_GM_GMOTION);
          $this->menu_entry('gm_gprint','BOX_GM_GPRINT',FILENAME_GM_GPRINT);
          $this->menu_entry('manufacturers','BOX_MANUFACTURERS',FILENAME_MANUFACTURERS);
          $this->menu_entry('specials','BOX_SPECIALS',FILENAME_SPECIALS);
        $this->end_menu_block('articles');
    
        $this->start_menu_block('module.png','BOX_HEADING_MODULES');
          $this->menu_entry('econda','BOX_ECONDA','econda.php');
          $this->menu_entry('gm_guestbook','BOX_GM_GUESTBOOK',FILENAME_GM_GUESTBOOK);
          $this->menu_entry('gm_janolaw','BOX_GM_JANOLAW',FILENAME_GM_JANOLAW);
          $this->menu_entry('module_export','BOX_MODULE_EXPORT',FILENAME_MODULE_EXPORT);
          $this->menu_entry('gm_scroller','BOX_GM_SCROLLER',FILENAME_GM_SCROLLER);
          $this->menu_entry('paypal','BOX_PAYPAL','paypal.php');
          $this->menu_entry('gm_trusted_shop_id','BOX_GM_TRUSTED_SHOP_ID',FILENAME_GM_TRUSTED_SHOP_ID);
          $this->menu_entry('gm_trusted_shops_widget','BOX_GM_TRUSTED_SHOPS_WIDGET',FILENAME_GM_TRUSTED_SHOPS_WIDGET);
          $this->menu_entry('modules','BOX_SHIPPING',FILENAME_MODULES.'?set=shipping');
          $this->menu_entry('yatego','BOX_YATEGO','yatego.php');
          $this->menu_entry('modules','BOX_YOOCHOOSE','yoochoose.php');
          $this->menu_entry('modules','BOX_PAYMENT',FILENAME_MODULES.'?set=payment');
          $this->menu_entry('modules','BOX_ORDER_TOTAL',FILENAME_MODULES.'?set=ordertotal');
        $this->end_menu_block('modules');
    
        $this->start_menu_block('statistik.png','BOX_HEADING_STATISTICS');
          $this->menu_entry('gm_counter','BOX_GM_COUNTER',FILENAME_GM_COUNTER);
          $this->menu_entry('stats_products_viewed','BOX_PRODUCTS_VIEWED',FILENAME_STATS_PRODUCTS_VIEWED);
          $this->menu_entry('stats_campaigns','BOX_CAMPAIGNS_REPORT',FILENAME_CAMPAIGNS_REPORT);
          $this->menu_entry('stats_customers','BOX_STATS_CUSTOMERS',FILENAME_STATS_CUSTOMERS);
          $this->menu_entry('stats_sales_report','BOX_SALES_REPORT',FILENAME_SALES_REPORT);
          $this->menu_entry('stats_products_purchased','BOX_PRODUCTS_PURCHASED',FILENAME_STATS_PRODUCTS_PURCHASED);
        $this->end_menu_block('statistics');
    
        $this->start_menu_block('module.png','BOX_HEADING_XTBOOSTER');
          $this->menu_entry('xtbooster','BOX_XTBOOSTER_LISTAUCTIONS',FILENAME_XTBOOSTER."?xtb_module=list");
          $this->menu_entry('xtbooster','BOX_XTBOOSTER_ADDAUCTIONS',FILENAME_XTBOOSTER."?xtb_module=add");
          $this->menu_entry('gm_ebay','BOX_GM_EBAY',FILENAME_GM_EBAY);
          $this->menu_entry('xtbooster','BOX_XTBOOSTER_CONFIG',FILENAME_XTBOOSTER."?xtb_module=conf");
        $this->end_menu_block('xtbooster');
    
        $this->start_menu_block('hilfsprogr1.png','BOX_HEADING_TOOLS');
          $this->menu_entry('banner_manager','BOX_BANNER_MANAGER',FILENAME_BANNER_MANAGER);
          $this->menu_entry('content_manager','BOX_CONTENT',FILENAME_CONTENT_MANAGER);
          $this->menu_entry('gm_backup_files_zip','BOX_GM_BACKUP_FILES_ZIP',FILENAME_GM_BACKUP_FILES_ZIP);
          $this->menu_entry('backup','BOX_BACKUP',FILENAME_BACKUP);
          $this->menu_entry('blacklist','BOX_TOOLS_BLACKLIST',FILENAME_BLACKLIST);
          $this->menu_entry('show_logs','BOX_SHOW_LOGS',FILENAME_SHOW_LOGS);
          $this->menu_entry('module_newsletter','BOX_MODULE_NEWSLETTER',FILENAME_MODULE_NEWSLETTER);
          $this->menu_entry('gm_opensearch','BOX_GM_OPENSEARCH',FILENAME_GM_OPENSEARCH);
          $this->menu_entry('server_info','BOX_SERVER_INFO',FILENAME_SERVER_INFO);
          $this->menu_entry('gm_offline','BOX_GM_OFFLINE',FILENAME_GM_OFFLINE);
          $this->menu_entry('gm_sql','BOX_GM_SQL',FILENAME_GM_SQL);
          $this->menu_entry('gm_lang_edit','BOX_GM_LANG_EDIT',FILENAME_GM_LANG_EDIT);
          $this->menu_entry('whos_online','BOX_WHOS_ONLINE',FILENAME_WHOS_ONLINE);
        $this->end_menu_block('tools');
    
        if (ACTIVATE_GIFT_SYSTEM=='true') {
        $this->start_menu_block('hilfsprogr2.png','BOX_HEADING_GV_ADMIN');
          $this->menu_entry('gv_mail','BOX_GV_ADMIN_MAIL',FILENAME_GV_MAIL);
          $this->menu_entry('gv_queue','BOX_GV_ADMIN_QUEUE',FILENAME_GV_QUEUE);
          $this->menu_entry('gv_sent','BOX_GV_ADMIN_SENT',FILENAME_GV_SENT);
          $this->menu_entry('coupon_admin','BOX_COUPON_ADMIN',FILENAME_COUPON_ADMIN);
        $this->end_menu_block('gift');
        }
    
        $this->start_menu_block('land.png','BOX_HEADING_ZONE');
          $this->menu_entry('zones','BOX_ZONES',FILENAME_ZONES);
          $this->menu_entry('countries','BOX_COUNTRIES',FILENAME_COUNTRIES);
          $this->menu_entry('languages','BOX_LANGUAGES',FILENAME_LANGUAGES);
          $this->menu_entry('tax_classes','BOX_TAX_CLASSES',FILENAME_TAX_CLASSES);
          $this->menu_entry('tax_rates','BOX_TAX_RATES',FILENAME_TAX_RATES);
          $this->menu_entry('geo_zones','BOX_GEO_ZONES',FILENAME_GEO_ZONES);
          $this->menu_entry('currencies','BOX_CURRENCIES',FILENAME_CURRENCIES);
        $this->end_menu_block('countries');
    
        $this->start_menu_block('meinshop.png','BOX_HEADING_CONFIGURATION');
          $this->menu_entry('gm_miscellaneous','BOX_GM_MISCELLANEOUS',FILENAME_GM_MISCELLANEOUS);
          $this->menu_entry('configuration','BOX_CONFIGURATION_8',FILENAME_CONFIGURATION.'?gID=8');
          $this->menu_entry('orders_status','BOX_ORDERS_STATUS',FILENAME_ORDERS_STATUS);
          $this->menu_entry('configuration','BOX_CONFIGURATION_4',FILENAME_CONFIGURATION.'?gID=4');
          $this->menu_entry('configuration','BOX_CONFIGURATION_11',FILENAME_CONFIGURATION.'?gID=11');
          $this->menu_entry('cross_sell_groups','BOX_ORDERS_XSELL_GROUP',FILENAME_XSELL_GROUPS);
          $this->menu_entry('configuration','BOX_CONFIGURATION_13',FILENAME_CONFIGURATION.'?gID=13');
          $this->menu_entry('configuration','BOX_CONFIGURATION_12',FILENAME_CONFIGURATION.'?gID=12');
          $this->menu_entry('gm_emails','BOX_GM_EMAILS',FILENAME_GM_EMAILS);
          $this->menu_entry('configuration','BOX_CONFIGURATION_14',FILENAME_CONFIGURATION.'?gID=14');
          $this->menu_entry('campaigns','BOX_CAMPAIGNS',FILENAME_CAMPAIGNS);
          $this->menu_entry('configuration','BOX_CONFIGURATION_5',FILENAME_CONFIGURATION.'?gID=5');
          $this->menu_entry('configuration','BOX_CONFIGURATION_9',FILENAME_CONFIGURATION.'?gID=9');
          $this->menu_entry('shipping_status','BOX_SHIPPING_STATUS',FILENAME_SHIPPING_STATUS,ACTIVATE_SHIPPING_STATUS=='true');
          $this->menu_entry('configuration','BOX_CONFIGURATION_10',FILENAME_CONFIGURATION.'?gID=10');
          $this->menu_entry('configuration','BOX_CONFIGURATION_3',FILENAME_CONFIGURATION.'?gID=3');
          $this->menu_entry('configuration','BOX_CONFIGURATION_1',FILENAME_CONFIGURATION.'?gID=1');
          $this->menu_entry('configuration','BOX_CONFIGURATION_2',FILENAME_CONFIGURATION.'?gID=2');
          $this->menu_entry('gm_id_starts','BOX_GM_ID_STARTS',FILENAME_GM_ID_STARTS);
          $this->menu_entry('gm_pdf','BOX_GM_PDF',FILENAME_GM_PDF,gm_pdf_is_installed());
          $this->menu_entry('configuration','BOX_CONFIGURATION_19',FILENAME_CONFIGURATION.'?gID=19');
          $this->menu_entry('configuration','BOX_CONFIGURATION_15',FILENAME_CONFIGURATION.'?gID=15');
          $this->menu_entry('gm_security','BOX_GM_SECURITY',FILENAME_GM_SECURITY);
          $this->menu_entry('gm_statusbar','BOX_GM_STATUSBAR',FILENAME_GM_STATUSBAR);
          $this->menu_entry('configuration','BOX_CONFIGURATION_16',FILENAME_CONFIGURATION.'?gID=16');
          $this->menu_entry('configuration','BOX_CONFIGURATION_20',FILENAME_CONFIGURATION.'?gID=22');
          $this->menu_entry('configuration','BOX_CONFIGURATION_18',FILENAME_CONFIGURATION.'?gID=18');
          $this->menu_entry('products_vpe','BOX_PRODUCTS_VPE',FILENAME_PRODUCTS_VPE);
          $this->menu_entry('configuration','BOX_CONFIGURATION_7',FILENAME_CONFIGURATION.'?gID=7');
          $this->menu_entry('configuration','BOX_CONFIGURATION_17',FILENAME_CONFIGURATION.'?gID=17');
        $this->end_menu_block('shop');
      }
    Die "end_menu_block($menu_block)"-Methode schließt zum einen den Menüblock ab, und sie bietet die Möglichkeit, vor dem Ende des Menüblocks weitere Menü-Einträge einzubauen....

    (Man könnte sogar einen komplett neuen Menüblock an den aktuellen Menüblock anhängen!!)

    Code:
      function end_menu_block($menu_block)
      {
        switch ($menu_block)
        {
          case 'favs':
          {
            break;
          }
          case 'seo':
          {
            break;
          }
          case 'customers':
          {
            break;
          }
          case 'articles':
          {
            if (SHOW_LIVESHOPPING===true)
            {
              $this->menu_entry('liveshopping',BOX_LIVE_SHOPPING,FILENAME_LIVESHOPPING);
            }
            break;
          }
          case 'modules':
          {
            break;
          }
          case 'statistics':
          {
            break;
          }
          case 'xtbooster':
          {
            break;
          }
          case 'tools':
          {
            break;
          }
          case 'gift':
          {
            break;
          }
          case 'countries':
          {
            break;
          }
          case 'shop':
          {
            break;
          }
        }
        $html.='
    </ul>
    ';
        echo $html;
      }
    So richtig schön wird das Ganze, wenn es die Möglichkeit gibt, Klassen zu überladen.....

    Dann kann man eigene Menüeinträge und -blöcke einbauen, ohne den vorhandenen Code zu ändern!

    Eine Klasse, die z.B. eine eigene Sprach-Datei lädt, und nach dem "articles"-Menü den neuen Menüblock "powertemplate" einbaut, würde nach dem von mir vorgeschlagenen Konzept wie folgt aussehen:

    Code:
    class pt_admin_menu extends pt_admin_menu_parent
    {   
      function admin_menu()
      {
    
        //Include your own language file for additional menu entries. No need to change existing files! (Secure for updates!)
    
        $file=DIR_FS_CATALOG.'lang/'.$_SESSION['language'].'/admin/my_admin_menu.php';
        if (is_file($file))
        {
          include($file);
        }
        parent::admin_menu();  //Execute parents' method
      }
    * 
      function end_menu_block($menu_block)
      {
          parent::end_menu_block($menu_block);
        switch ($menu_block)
        {
          case 'articles':
          {
            //Close articles menu block
            $this->start_menu_block('powertemplate.png','BOX_HEADING_POWERTEMPLATE');
              $this->menu_entry('pt_function1','BOX_PT_FUNCTION1','pt_function1.php');
              //More entries....
            break;
          }
        }
        $html.='
    </ul>
    ';
        echo $html;
      }
    Und da eine Klasse mehrfach auch vererbt werden kann, können auch mehrere Entwickler (updatesicher) Änderungen am Admin-Menü vornehmen, ohne sich gegenseitig zu stören.

    Es wäre toll, wenn die Gambio GmbH das in ihren Core-Code aufnehmen würde...
     

    Anhänge:

  2. Junge

    Junge G-WARD 2012

    Registriert seit:
    23. Mai 2011
    Beiträge:
    1.197
    Danke erhalten:
    117
    Danke vergeben:
    13
    habs mal bei einem Testshop hochgeladen - kommt ne Fehlermeldung
     
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Welche denn?
     
  4. Junge

    Junge G-WARD 2012

    Registriert seit:
    23. Mai 2011
    Beiträge:
    1.197
    Danke erhalten:
    117
    Danke vergeben:
    13
    admin.jpg


    Diese da
     
  5. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Da gab es noch eine Diskrepanz mit einer Text-Konstanten....

    Ist jetzt OK
     

    Anhänge:

  6. Junge

    Junge G-WARD 2012

    Registriert seit:
    23. Mai 2011
    Beiträge:
    1.197
    Danke erhalten:
    117
    Danke vergeben:
    13
    ok thx , schau ich mir nachher an...
     
  7. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    544
    Danke erhalten:
    56
    Danke vergeben:
    101
    Habs eingebaut, funktioniert super - sieht aus wie lackiert.

    !
     
  8. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Wie schon gesagt ist im Moment eigentlich nur die bessere Übersicht der Lohn.

    Richtig cool wird das erst, wenn das Überladen von Klassen funktioniert (was es schon seit ca. 4 Monaten tun könnte.....)

    Dann kann man ein weiteres der großen Probleme lösen: die updatesichere Erweiterung des Admin-Menüs, auch durch mehrere Entwickler...
     
  9. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    @Avenger Warum gehts noch nicht?
     
  10. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    544
    Danke erhalten:
    56
    Danke vergeben:
    101
    Da müsste sich Gambio reinhängen, das wäre viel zu viel Aufwand, das bei jedem Update wieder abzugleichen. Da es Sinn hat, wäre die Implementation seitens Gambio nötig. Die müssten das dann auch testen und sicher sein bevor es rausgeht. Ist sicher keine Sache von 'nem Nachmittag.
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich habe ein vollständig durchentwickeltes Konzept (das seit vielen Jahren im OXID-Shop verwendet wird), das auch der Gambio GmbH vorliegt.

    Ich weiß nicht, warum man sich da so ziert, diese immens wichtige Funktionalität zu integrieren.

    Mittlerweile habe ich das weiter verbessert, so dass auch alle vorhandenen Klassen damit verwendet werden können....

    Ich hatte ja hier schon mal geposted (http://www.gambio-forum.de/threads/834-Plugin-F%C3%A4higkeit-von-GX2-Ein-%C3%9Cberblick-und-Ausblick?p=4451&viewfull=1#post4451): in einer Woche kann das funktionieren, da es erst mal nicht um inhaltliche, sondern rein formale Änderungen geht.

    Um die inhaltlichen Änderungen der Klassen kann man sich später immer noch kümmern.
     
  12. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    544
    Danke erhalten:
    56
    Danke vergeben:
    101
    #12 MJ, 12. August 2011
    Zuletzt bearbeitet: 12. August 2011
    [Spaßmodus]Ich glaube Daniel und Nonito machen da nen GX3 draus ;) oder üben gerade das Fingerhandschuh über den Fäustling ziehen.[/Spaßmodus]
     
  13. Ollie

    Ollie Erfahrener Benutzer

    Registriert seit:
    27. April 2011
    Beiträge:
    231
    Danke erhalten:
    6
    Danke vergeben:
    50
    Haha - ich lach mich kaputt
     
  14. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    544
    Danke erhalten:
    56
    Danke vergeben:
    101
    !!! Das ist natürlich nicht so gemeint, das die Gambios Däumchen drehen würden sondern nur eine Anspielung auf den lustigen Kommentar von dakler im oben erwähnten Thread.
     
  15. Ollie

    Ollie Erfahrener Benutzer

    Registriert seit:
    27. April 2011
    Beiträge:
    231
    Danke erhalten:
    6
    Danke vergeben:
    50
    ja is klar - hab ich auch gelesen - daher hab ich hier Tränen gelacht
     
  16. Nonito (Gambio)

    Nonito (Gambio) Administrator

    Registriert seit:
    21. April 2011
    Beiträge:
    279
    Danke erhalten:
    134
    Danke vergeben:
    52
    Hallo zusammen,

    das dynamische Anpassen des Adminmenüs ist bei uns schon lange Zeit Thema. Das Konzept von Avenger ist echt gut. Wir haben vor einiger Zeit schon an etwas ähnlichem gearbeitet. Bei der Umsetzung ist uns allerdings aufgefallen, dass wir es den Entwicklern mit einem XML-basierten Konzept allerdings noch einfacher machen können.

    Neue Menüpunkte lassen sich z.B. durch Ablegen zusätzlicher XML-Dateien im Verzeichnis admin/conf/menu/ hinzufügen:
    Code:
    <?xml version="1.0"?>
    <menugroup id="LAYOUT_DESIGN">
    	<menuitem value="gm_style_edit.php">{$txt.style_edit}</menuitem>
    	<menuitem value="gm_lightbox.php">{$txt.lightbox}</menuitem>
    </menugroup>
    
    Oder eine neue Gruppe durch eine XML-Datei mit
    Code:
    <?xml version="1.0"?>
    <menu>
    	<group value="LAYOUT_DESIGN">{$txt.layout_design}</group>
    </menu>
    
    Die Menütexte können mit dem Textphrasensystem sprachabhängig hinterlegt werden, das wir in diesem Thread schon mal kurz angerissen haben: http://www.gambio-forum.de/threads/...xtphrasen-hinzufügen?p=173&viewfull=1#post173

    Wenn es keine zu großen Updateprobleme damit gibt, erscheint das mit dem kommenden Service Pack.

    Viele Grüße
    Nonito
     
  17. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Auch eine Möglichkeit...

    Allerdings sehe ich dabei noch das Problem bei der Anlage von Texten, wenn unabhängig voneinander mehrere Entwickler das Menü modifizieren (Installation mehrerer Module), da das Textphrasensystem nur eine Textphrasendatei zulässt....
     
  18. Nonito (Gambio)

    Nonito (Gambio) Administrator

    Registriert seit:
    21. April 2011
    Beiträge:
    279
    Danke erhalten:
    134
    Danke vergeben:
    52
    Mit dem Textphrasensystem lassen sich auch mehrere Sprachdateien hinzufügen... habe dazu eben noch schnell was in den Thread geschrieben ;)
    http://www.gambio-forum.de/threads/48-Template-Entwicklung-Textphrasen-hinzuf%FCgen?p=7670#post7670