|
26 Červen 2010
Posted in
Dokumentace -
Komponenty
Minule jsme skončili u vytvoření formuláře pro zadávání dat. Dneska si hotovou část komponenty počeštíme a konečně vytvoříme i instalační balíček.
Lokalizace
Jazykové soubory v administraci se pojmenovávají ve tvaru kod-jazyka.com_nazev_komponenty.ini a kod-jazyka.com_nazev_komponenty.menu.ini. Prvně jmenovaný slouží pro překlad komponenty jako takové a ten s příponou menu.ini, jak lze z názvu odvodit překládá položky v menu v administraci. Překlad se tvoři zvlášť pro administraci a zvlášť pro veřejnou část stránek. Ve veřejné části z pochopitelných důvodů nalezneme pouze prvně jmenovaný překladový soubor.
Jak následně uvidímě překlad se tvoří vlastně velice jednoduše. Ini soubor používá syntaxi ve tvaru PŘEKLADOVÝ ŘETĚZEC ZADANÝ VELKÝMI PÍSMENY=překlad. Překladový řetězec je ten text, který jsme zadali do metody JText::_(). V připadě překladu menu v administraci přijde na začátek COM_KOMPONENTA.POLOŽKA_MENU, kde POLOŽKA_MENU je text, který zadáme v instalačním XML souboru. V našem případě se soubory budou jmenovat cs-CZ.com_simpleforum.ini a cs-CZ.com_simpleforum.menu.ini. V souboru s koncovkou menu.ini nám prozatím stačí dva řádky:
COM_SIMPLEFORUM=Fórum
COM_SIMPLEFORUM.SECTIONS=Sekce
Ani překladový soubor komponenty nebude o moc delší:
SECTIONS=Sekce
SECTION=Sekce
SUCCESSFULLY SAVED SECTION=Sekce byla úspěšně uložena
THIS ITEM IS CURRENTLY BEING EDITOR BY ANOTHER USER=Tato položka je právě upravována jiným uživatelem
I z této krátké ukázky můžeme zjistit několik faktů. Překladovým souborem menu.ini se nepřekládají titulky v panelu nástrojů, takže ty musíme uvést také zde. Druhou zajímavostí je, že i když jsme v naší komponentě použili texty jako Title, nebo Details, tak i když jsme je zde neuvedli, přesto budou přeloženy. V tomto nám Joomla vychází vstříc, tyto texty totiž překládá základní jazykový soubor, takže se o ně nemusíme starat.
Pro takto kratičké překlady není problém dělat vše ručně, ale v případě rozsáhlejších projektů nám přichází na pomoc Joomla. Stačí si v administraci v Globálním nastavení na záložce Systém v oddílu Nastavení Debug přepnout Debug jazyk na Ano a poté se v dolní části stránky začnou vypisovat nepřeložené řetězce včetně převedení na velká písmena. Jediná nevýhoda toho spočívá v tom, že takto nejsou zpracovány stavové informace typy SUCCESSFULLY SAVED ....
Vytvoření instalačního balíčku
Jelikož při instalaci se vytvářejí tabulky v databázi, tak začneme jak jinak právě souborem s SQL dotazy vytvářejícími potřebné tabulky:
CREATE TABLE IF NOT EXISTS #__sf_sections(id int(5) NOT NULL auto_increment, title varchar(255) NOT NULL,
checked_out int(5) NOT NULL, checked_out_time datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(id));
CREATE TABLE IF NOT EXISTS #__sf_categories(id int(5) NOT NULL auto_increment, title varchar(255) NOT NULL,
section_id int(5) NOT NULL,
checked_out int(5) NOT NULL, checked_out_time datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(id));
CREATE TABLE IF NOT EXISTS #__sf_posts(id int(5) NOT NULL auto_increment, title varchar(255) NOT NULL, description mediumtext NOT NULL,
section_id int(5) NOT NULL, category_id int(5) NOT NULL,
checked_out int(5) NOT NULL, checked_out_time datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(id));
V tomto souboru najdeme jedinou zajímavější informaci a to datové typy interních polí Joomla checked_out a checked_out_time. Protože id uživatele Joomla ukládá jako int(5) vytvoříme ve stejném datovém typu i pole checked_out. Druhé interní pole checked_out_time má předepsaný typ datetime s výchozí hodnotou 0000-00-00 00:00:00.
Nyní již následuje instalační XML soubor:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE install PUBLIC "SYSTEM" "http://dev.joomla.org/xml/1.5/component-self.install.dtd">
<install version='1.5.0' type='component' method='upgrade'>
<name>SimpleForum</name>
<creationDate>June 2010</creationDate>
<author>Filip Bartmann</author>
<authorEmail> Tato emailová adresa je chráněna před spamboty, abyste ji viděli, povolte JavaScript </authorEmail>
<authorUrl>http://joomladev.eu</authorUrl>
<copyright>(C) Filip Bartmann 2010. All rights reserved</copyright>
<license>GNU/GPL</license>
<version>0.1</version>
<description>
<![CDATA[Simple forum component
]]>
</description>
<install>
<sql>
<file charset='utf8' driver='mysql'>install.mysql.utf8.sql</file>
</sql>
</install>
<administration>
<menu>SimleForum</menu>
<submenu>
<menu controller="sections">Sections</menu>
</submenu>
<files folder='admin'>
<filename>install.mysql.utf8.sql</filename>
<filename>admin.simpleforum.php</filename>
<filename>controller.php</filename>
<filename>controllers/sections.php</filename>
<filename>models/sections.php</filename>
<filename>models/section.php</filename>
<filename>tables/section.php</filename>
<fileneme>tables/post.php</fileneme>
<filename>views/sections/view.html.php</filename>
<filename>views/sections/tmpl/default.php</filename>
<filename>views/section/view.html.php</filename>
<filename>views/section/tmpl/form.php</filename>
</files>
<languages folder='admin/languages'>
<language tag='cs-CZ'>cs-CZ.com_simpleforum.menu.ini</language>
<language tag='cs-CZ'>cs-CZ.com_simpleforum.ini</language>
</languages>
</administration>
</install>
Na první pohled se dá rozdělit na dvě části a to hlavičku(části <name> až <version>) a hlavní část. V hlavičce uvádíme jméno komponenty, to na rozdíl od modulů a pluginů musí odpovídat názvu komponenty za řetězcem com_ a pak naše údaje licenci a verzi a popis komponenty. Následuje uvedení jména souboru s SQL příkazy pro vytvoření tabulek, který jsme si před chvilkou vytvořili a pak část věnovaná samotné administraci. U SQL souboru si všimněte, že musí být uvedený i v části files v administrátorské části. Jeho neuvedení způsobí, že jej Joomla nenalezne. Zde můžeme zpozorovat vytvoření administrátorkého menu, které se skládá z položky uvedené v tagu <menu>, která se při instalaci vkládá přímo do menu Komponenty v administraci Joomly. Položky uvedené v tagu <submenu> se zobrazují jako podmenu hlavní položky. Položky <menu> v tomto tagu mohou obsahovat parametry jako controller(určuje, který který controller se použije), nebo url určující přímo URL v administraci. Jako předposlední oddíl následuje výpis souborů komponenty zabalený v tagu <files> s parametrem určujícím, kde v jakém adresáři v instalačním balíčku se nalézají. Podobně vypadá i poslední oddíl s vyjmenování jazykových souboru. I zde může být v obalujícím tagu <languages> uveden adresář v instalačním balíčku, který tyto soubory obsahuje.
Jako poslední krok nám zbývá instalační adresář komponenty zabalit nejlépe do zip souboru a ten poté nahrát do Joomly. Jelikož již máme vytvořený balíček, tak od toho dílu naleznete vždy na konci článku aktuální verzi komponenty ke stažení.
Příště
Základ komponenty sice máme hotový, ale stále nám zbývá ještě hodně práce. Takže si naší komponentu rozšíříme o kategorie příspěvků, na kterých si ukážeme tvorbu filtrů v zobrazení seznamu.
00:00:00
Články


