|
11 Květen 2009
Posted in
Články -
Tipy a triky
/administrator/modules/.
Administrační menu
Soubory s administračním menu nalezneme v adresáři mod_menu. Samotné vykreslení menu se nachází v souboru helper.php v tomto adresáři.
Na začátku souboru je umístěno otestování oprávnění přístupu k jednotlivým částem menu. Dále je pomocí komentářů naznačené, který část kódu je za kterou část kódu zodpovědná.
Samotnou položku menu si vytvoříme pomocí objektu JMenuNode, do jehož parametrů předáme název položky, odkaz, který má položka představovat. Do třetího parametru zadáme css třídu, která se má pro danou položku použít a pomocí, které se také příradí daná ikona. Tento parametr uvedeme ve tvaru class:css_trida. Ve výsledném menu se nám poté vytvoří něco takového icon-16-css_trida. Poslední parametr zatím nemá význam.
Nově vytvořenou položku si do menu přípojíme metodou addChild() objektu $menu, do jejíhož prvního parametru příjde objekt JMenuNode.
$menu->addChild(new JMenuNode("Nová položka menu", "index.php?option=com_componenta&task=ukaz_neco", "class:componenta"));
Tento kód nám vygeneruje něco takového
<li><a class="icon-16-komponenta" href="index.php?option=com_componenta&task=ukaz_neco">Nová položka menu</a></li>
Jako konkrétnější příklad si ukážeme jak přidat do menu Obsah položku Přidat nový článek:
Stačí když za kód:
$menu->addChild(new JMenuNode(JText::_('Content')), true);
přídáme
$menu->addChild(new JMenuNode("Přidat nový článek", "index.php?option=com_content&task=add", "class:article"));
Po uložení se nám na začátku menu objeví nový odkaz. Pokud jej budeme chtít od ostatního menu oddělit čarou stačí použít metodu addSeparator():
$menu->addSeparator();
Do menu si můžeme vložit o vlastní podmenu pokud jako druhý parametr metody addChild() zadáme true a jako poslední položku nezapomeneme použít getParent(), kterou Joomle říkáme, že další položky menu jsou o úroveň výše. V následujícím příkladu budeme předpokládat, že do menu Obsah si chceme přidat podmenu pro přidání zobrazení seznamu článků vyfiltrovaných podle sekce nebo kategorie:
$menu->addChild(new JMenuNode("Články"),true);
$menu->addChild(new JMenuNode("Články v sekci 1","index.php?option=com_content&filter_sectionid=1","class:article"));
$menu->addChild(new JMenuNode("Články v kategorii 4","index.php?option=com_content&catid=4","class:article"));
$menu->getParent();
Uživatelé znalejší Joomly si jistě najdou další možné parametry, podle kterých je možné články filtrovat s souboru /administrator/components/com_content/controller.php
Stejně jako podmenu si můžeme vytvořit i kořenovou položku menu.
Administrační panel
Soubor s definicí administračního panelu se nachází v souboru mod_quickicon.php umístěném ve stejnojmenném adresáři mod_quickicon.
Z pohledu do tohoto souboru zjistíme, že má velice jednoduchou syntaxi. Jednotlivé ikony se zobrazují postupně za sebou. K zobrazení ikony stačí použít funkci quickiconButton(), která je v tomto souboru i nadefinovaná. Tato funkce očekává tři parametry a to odkaz, název ikony, která musí být umístěna v adresáři /administrator/templates/khepri/images/header/ a samotný název. Ikonku pro zobrazení článků od uživatele filbar(který má id 65 - id si zjistíme ze Správce uživatelů ze sloupce ID) si přidáme následujícím kódem:
quickiconButton( 'index.php?option=com_content&filter_authorid=65', 'icon-48-article.png', 'Zobrazit články od FilBara' );
Články


