{"id":305,"date":"2009-06-04T13:33:12","date_gmt":"2009-06-04T12:33:12","guid":{"rendered":"http:\/\/morony.pl\/?p=305"},"modified":"2009-06-04T13:35:11","modified_gmt":"2009-06-04T12:35:11","slug":"joomla-parametry-modulow","status":"publish","type":"post","link":"https:\/\/morony.pl\/?p=305","title":{"rendered":"Joomla &#8211; parametry modu\u0142\u00f3w"},"content":{"rendered":"<p><strong>Co to jest parametr modu\u0142u<\/strong><\/p>\n<p>Modu\u0142y w joomli to wg mnie jedna z najprzyjemniejszych rzeczy z punktu widzenia programisty. Wystarczy napisa\u0107 2 pliki, by mo\u017cna by\u0142o zainstalowa\u0107 a nast\u0119pnie u\u017cy\u0107 jaki\u015b kawa\u0142ek kodu. Dzisiaj po kr\u00f3tce opisz\u0119 jak bardzo szybko doda\u0107 do istniej\u0105cego ju\u017c modu\u0142u (zainstalowanego nawet) jaki\u015b dodatkowy parametr.<\/p>\n<p>Ale co to jest w og\u00f3le parametr? Joomla w panelu admina w ustawieniach modu\u0142u po prawej stronie wy\u015bwietla zwykle kr\u00f3tsz\u0105 lub d\u0142u\u017csz\u0105 list\u0119 dodatkowych ustawie\u0144, z jakich mo\u017cemy skorzysta\u0107 przystosowuj\u0105c modu\u0142 do naszych potrzeb. Na przyk\u0142ad modu\u0142 &#8220;mod_mainmenu&#8221; wykorzystywany do renderowania Menu na stronie posiada ich ca\u0142kiem sporo:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-306\" title=\"2009-06-04_113110\" src=\"http:\/\/morony.pl\/wp-content\/uploads\/2009\/06\/2009-06-04_113110.jpg\" alt=\"2009-06-04_113110\" width=\"362\" height=\"194\" srcset=\"https:\/\/morony.pl\/wp-content\/uploads\/2009\/06\/2009-06-04_113110.jpg 604w, https:\/\/morony.pl\/wp-content\/uploads\/2009\/06\/2009-06-04_113110-300x160.jpg 300w\" sizes=\"(max-width: 362px) 100vw, 362px\" \/>Jak wida\u0107 parametry owe s\u0105 pogrupowane w trzy grupy. Mo\u017cemy w ten spos\u00f3b indywidualnie dostosowa\u0107 do naszych potrzeb ka\u017cd\u0105 kopi\u0119 modu\u0142u &#8220;mod_mainmenu&#8221; wykorzystywan\u0105 w portalu.<\/p>\n<p><strong>Ale sk\u0105d modu\u0142 wie, jakie parametry s\u0105 dost\u0119pne dla danego modu\u0142u?<\/strong><\/p>\n<p>Jest to bardzo proste. Zerknijmy do katalogu <em>modules<\/em>\u00a0w naszej instalacji joomla. Jest w nim napewno katalog <em>mod_mainmenu<\/em>\u00a0a w nim:<\/p>\n<ul>\n<li>katalog [tmpl]<\/li>\n<li>helper.php<\/li>\n<li>index.html<\/li>\n<li>legacy.php<\/li>\n<li>mod_mainmenu.php<\/li>\n<li>mod_mainmenu.xml<\/li>\n<\/ul>\n<p>Nie b\u0119dziemy si\u0119 teraz zajmowa\u0107 budow\u0105 modu\u0142u oraz pisaniem go. To znajdzie si\u0119 w innych artyku\u0142ach. Dzisiaj zajmujemy si\u0119 tylko parametrami, a te znajduj\u0105 si\u0119&#8230; w pliku mod_mainmenu.xml.<\/p>\n<p>Jest to plik instalacyjny modu\u0142u, w kt\u00f3rym znajduje si\u0119 para znacznik\u00f3w:<\/p>\n<p>\u00a0<br \/>\n<code><br \/>\n&lt;install type=\"module\" version=\"1.5.0\"&gt;<\/code><\/p>\n<p><code> <\/code><\/p>\n<p><code>&lt;\/install&gt;<\/code><\/p>\n<p>gdzie\u015b na ko\u0144cu znajduj\u0105 si\u0119 3 grupy parametr\u00f3w (&lt;params&gt;&lt;\/params&gt;), a w ka\u017cdej z nich lista parametr\u00f3w.<\/p>\n<p>Ka\u017cdy parametr to znacznik xml &lt;param&gt; z parametrami (parametrami znacznika)<\/p>\n<ul>\n<li>name &#8211; z tej nazwy korzystamy pobieraj\u0105c potem w module warto\u015b\u0107 parametru<\/li>\n<li>type &#8211; definiujemy typ pola.\n<ul>\n<li>text &#8211; pole tekstowe jednolinijkowe<\/li>\n<li>textarea &#8211; pole tekstowe wielolinijkowe<\/li>\n<\/ul>\n<\/li>\n<li>default &#8211; warto\u015b\u0107 wpisywana w pole domy\u015blnie<\/li>\n<li>label &#8211; etykieta widoczna obok pola<\/li>\n<li>description &#8211; d\u0142u\u017cszy opis wy\u015bwietlaj\u0105cy si\u0119 po najechaniu myszk\u0105 na pole<\/li>\n<\/ul>\n<p>dodatkowo mo\u017cna skorzysta\u0107 z\u00a0<\/p>\n<ul>\n<li>rows &#8211; ilo\u015b\u0107 wierszy w przypadku textarea<\/li>\n<li>cols &#8211; ilo\u015b\u0107 kolum (praktycznie &#8211; szeroko\u015b\u0107 pola)<\/li>\n<\/ul>\n<p>Aby stworzy\u0107 w ten spos\u00f3b parametr kt\u00f3ry b\u0119dzie przechowywa\u0142 tytu\u0142 piszemy:<\/p>\n<pre style=\"padding-left: 30px;\">&lt;param name=\"title\" type=\"text\" default=\"\"\u00a0\r\nlabel=\"Tytu\u0142\" description=\"Tytu\u0142 kt\u00f3ry b\u0119dzie wy\u015bwietlany w module\"\/&gt;<\/pre>\n<p>Mo\u017cemy tak\u017ce stworzy\u0107 pole specjalne:<\/p>\n<ul>\n<li>&lt;param name=&#8221;indent_image1&#8243; type=&#8221;imagelist&#8221; directory=&#8221;\/images\/M_images&#8221; default=&#8221;&#8221; label=&#8221;Indent Image 1&#8243; description=&#8221;Image for the first sub-level&#8221; \/&gt; &#8211; lista obrazk\u00f3w z katalogu<\/li>\n<li><span> <\/span>&lt;param name=&#8221;@spacer&#8221; type=&#8221;spacer&#8221; default=&#8221;&#8221; label=&#8221;&#8221; description=&#8221;&#8221; \/&gt; &#8211; linia pozioma<\/li>\n<\/ul>\n<p>Listy wyboru:<\/p>\n<pre style=\"padding-left: 30px; \">&lt;param name=\"indent_image\" type=\"list\" default=\"0\" label=\"Indent Image\"\r\ndescription=\"Choose which indent image system to utilise\"&gt;\r\n\t\t\t&lt;option value=\"0\"&gt;Template&lt;\/option&gt;\r\n\t\t\t&lt;option value=\"1\"&gt;Joomla! default images&lt;\/option&gt;\r\n\t\t\t&lt;option value=\"2\"&gt;Use params below&lt;\/option&gt;\r\n\t\t\t&lt;option value=\"3\"&gt;None&lt;\/option&gt;\r\n&lt;\/param&gt;<\/pre>\n<p>Oraz liste opcji (radiobuttons):<\/p>\n<pre style=\"padding-left: 30px; \">&lt;param name=\"full_active_id\" type=\"radio\" default=\"0\"\u00a0\r\nlabel=\"Full Active highlighting\" description=\"PARAMFULLACTIVEHIGHLIGHTING\"&gt;<\/pre>\n<pre style=\"padding-left: 30px; \">\t\t\t&lt;option value=\"0\"&gt;No&lt;\/option&gt;\r\n\t\t\t&lt;option value=\"1\"&gt;Yes&lt;\/option&gt;\r\n&lt;\/param&gt;<\/pre>\n<p>W ten spos\u00f3b definiujemy list\u0119 parametr\u00f3w dla modu\u0142u.\u00a0<\/p>\n<p><strong>A jak tego u\u017cy\u0107?<\/strong><\/p>\n<p>R\u00f3wnie prosto. W pliku z kodem modu\u0142u, czyli <em>mod_nazwamodu\u0142u.php<\/em>, o raz w plikach includowanych wystarczy \u017ce skorzystamy z obiektu <em>$params<\/em>\u00a0zawieraj\u0105cego wszystkie parametry, kt\u00f3re zosta\u0142y ustawione dla naszego modu\u0142u:<\/p>\n<pre style=\"padding-left: 30px;\">echo $params-&gt;get('desc', 'Brak');<\/pre>\n<p>jako pierwszy parametr metody <em>get()<\/em>\u00a0podajemy nazw\u0119 parametru kt\u00f3ry chcemy pobra\u0107. Jako drug\u0105 podajemy warto\u015b\u0107 jaka ma zosta\u0107 zwr\u00f3cona w przypadku niepowodzenia, lub te\u017c pustego wyniku. I ju\u017c.\u00a0<\/p>\n<p>W ten spos\u00f3b mo\u017cemy bardzo \u0142atwo doda\u0107 dodatkowy parametr na przyk\u0142ad do modu\u0142u mainmenu (problemem mo\u017ce si\u0119 okaza\u0107 sama budowa modu\u0142u mainmenu, kt\u00f3ra na pocz\u0105tku moze si\u0119 wydawa\u0107 lekko zamotana).\u00a0<\/p>\n<p>Pozdrawiam, Maciej<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Co to jest parametr modu\u0142u Modu\u0142y w joomli to wg mnie jedna z najprzyjemniejszych rzeczy z punktu widzenia programisty. Wystarczy napisa\u0107 2 pliki, by mo\u017cna by\u0142o zainstalowa\u0107 a nast\u0119pnie u\u017cy\u0107 jaki\u015b kawa\u0142ek kodu. Dzisiaj po kr\u00f3tce opisz\u0119 jak bardzo szybko doda\u0107 do istniej\u0105cego ju\u017c modu\u0142u (zainstalowanego nawet) jaki\u015b dodatkowy parametr. Ale co to jest w [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"_links":{"self":[{"href":"https:\/\/morony.pl\/index.php?rest_route=\/wp\/v2\/posts\/305"}],"collection":[{"href":"https:\/\/morony.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/morony.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/morony.pl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/morony.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305"}],"version-history":[{"count":8,"href":"https:\/\/morony.pl\/index.php?rest_route=\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":313,"href":"https:\/\/morony.pl\/index.php?rest_route=\/wp\/v2\/posts\/305\/revisions\/313"}],"wp:attachment":[{"href":"https:\/\/morony.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/morony.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/morony.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}