|
25 Červenec 2009
Posted in
Články -
Tipy a triky
Joomla je spíše zaměřena na využití jako blogovací systém, to znamená, že ve článcích zobrazuje datum vytvoření článku a řadit dokáže rovněž pouze data vytvoření článku. Pokud chceme však Joomlu využít jako publikační systém, tedy když máme určeno kdy článek vyjde a toto datum mít zobrazeno jako datum vytvoření článku a podle tohoto data články taky řadit stačí provést jenom několik menších změn v Joomle.
Jako první vyřešíme, aby se nám zobrazovalo datum publikace článku místo data vytvoření, což je úplně jednoduché, stačí přepsat výchozí vzhledy šablony pomocí souborů v adresáři /templates/jmeno_sablony/html/com_content, kde vytvoříme adresáře frontpage, section, category a article a do nich zkopírovat soubory z odpovídajících podadresářů v /components/com_content/views/pohled/tmpl/. Ze všech jmenovaných adresářů mimo article zkopírujeme soubor blog_item.php, z adresáře s názvem article představujícím zobrazení samotného článku překopírujeme soubor default.php.
Ve všech bude stačit provést jednoduchou náhradu, kdy po nalezení řádku
<?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?>
V něm nahrádíme $this->item->created za $this->item->publish_up, takže řádek bude vypadat následovně:
<?php echo JHTML::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC2')); ?>
Zbývá nám provést ještě druhou změnu a to řazení podle tohoto údaje. Zde začneme přidáním možností tohoto řazení do rozbalovacího seznamu Primární řazení při tvorbě položky v menu. Definice těchto položek se nachází v souborech /components/com_content/views/pohled/tmpl/blog.xml, kde pohled je postupně frontpage, section a category. Tady si najdeme řádky:
<param name="orderby_sec" type="list" default="" label="Primary Order" description="PARAMORDERBYSEC"> <option value="">Default</option>
pod které přidáme
<option value="pdate">Oldest first(by publish date)</option> <option value="rpdate">Most recent first(by publish date)</option>
následně se přesuneme do adresáře /components/com_content/helpers, kde si otevřeme soubor query.php a zde si ve funkci orderbySecondary přidáme do switche tyto řádky:"
case 'pdate': $orderby='a.publish_up'; break; case 'rpdate': $orderby='a.publish_up DESC'; break;
Takže celý blok bude vypadat takto:
function orderbySecondary($orderby) { switch ($orderby) { case 'pdate': $orderby='a.publish_up'; break; case 'rpdate': $orderby='a.publish_up DESC'; break; case 'date' : $orderby = 'a.created'; break; case 'rdate' : $orderby = 'a.created DESC'; break; case 'alpha' : $orderby = 'a.title'; break; case 'ralpha' : $orderby = 'a.title DESC'; break; case 'hits' : $orderby = 'a.hits DESC'; break; case 'rhits' : $orderby = 'a.hits'; break; case 'order' : $orderby = 'a.ordering'; break; case 'author' : $orderby = 'a.created_by_alias, u.name'; break; case 'rauthor' : $orderby = 'a.created_by_alias DESC, u.name DESC'; break; case 'front' : $orderby = 'f.ordering'; break; default : $orderby = 'a.ordering'; break; } return $orderby; }
A tímto máme hotovo. Stačí naše soubory nahrát na ftp a máme z Joomly publikační systém. Ještě pokud chceme mít nově přidané volby při tvorbě nového menu v češtine stačí do souboru /languages/cs-CZ/cs-CZ.com_content.ini přidat tyto řádky:
OLDEST FIRST(BY PUBLISH DATE)=Nejstarší nejdříve(podle data zveřejnění)
MOST RECENT FIRST(BY PUBLISH DATE)=Nejnovější nejdříve(podle data zveřejnění)
Články


