7 kwi
Pisanie modułów część 1: Joomla!
Dzisiaj trochę o popularnych skryptach CMSach, blog’ach, a dokładniej jak zrobić własny moduł, plugin, infusiony itp. do tychże skryptów ![]()
Na pierwszy ogień idzie Joomla:
Okej więc zaczynamy!
Stworzymy Moduł który będzie pobierał tytuły artykułów i je wyświetlał za pomocą marquee w postaci linków.
Najpierw tworzymy plik mod_short_news.php
o treści:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php /* Autor: Krzyk www: http://e-krzyk.pl */ defined('_JEXEC') or die('Direct Access to this location is not allowed.'); // Linia ta blokuje bezpośredni dostęp do pliku require_once (dirname(__FILE__).DS.'helper.php'); // załączamy plik z klasą która odpowiedzialna jest za pobieranie danych $names = modshort_newsHelper::getNews(); // pobieramy dane :) echo '<marquee onMouseover="this.scrollAmount=0" onMouseout="this.scrollAmount=6"> <font color="red"><b>Aktualności: </b></font>'; foreach($names as $name) // potrzebujemy pętli żeby wszystko wyświetlić :) { echo "<a href='index.php?option=com_content&view=article&id={$name->id}&Itemid=59'><b>"; print_r ($name->title); echo "</b></a> - "; } echo '</marquee>'; |
następnym plikiem będzie helper.php odpowiedzialny za pobieranie danych
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php /* Autor: Krzyk www: http://e-krzyk.pl */ defined('_JEXEC') or die('Restricted access'); class modshort_newsHelper { function getNews() { // tworzymy funkcję $db=& Jfactory::getDBO(); // połączenie z bazą danych $result = array(); $query = 'SELECT `id`, `title`' . // To co mamy pobrać czyli id i tytuł ' FROM #__content' . // pobranie artykułów ' WHERE sectionid = 1 AND state = 1' . // ale tylko tych które są w 1 sekcji i zostały opublikowane ' ORDER BY id DESC LIMIT 6'; // porządkujemy je i ograniczamy do 6 wyników. $db->setQuery($query); $news = $db->loadObjectList(); // pobieramy if ($db->getErrorNum()) { JError::raiseWarning( 500, $db->stderr() ); } return $news; // i zwracamy wyniki :) } } |
teraz potrzebny jest plik .xml którego nazwiemy mod_short_news.xml
kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <install type="module" version="1.5.0"> <name>Aktualności</name> <author>Krzyk - http://e-krzyk.pl</author> <creationDate>April 2010</creationDate> <copyright>Krzyk - http://e-krzyk.pl</copyright> <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL </license> <authorEmail>krzykophil@gmail.com</authorEmail> <authorUrl>http://e-krzyk.pl</authorUrl> <version>1.5.0</version> <description>Moduł służący do wyświetlenia aktualności</description> <files> <filename module="mod_short_news">mod_short_news.php</filename> <filename module="mod_short_news">helper.php</filename> <filename module="mod_short_news">index.html</filename> </files> </install> |
Teraz wyjaśnię te najważniejsze tagi:
name – nazwa naszego modułu w menu
description – opis modułu
files – pliki jakie wymagane są do działania modułu
pojawia się tu plik o którym wcześniej nie pisałem, a dokładniej index.html
jest to zwykły plik html który uniemożliwia przeglądanie folderu modułu
1 | <html><body bgcolor=?#ffffff?></body></html> |
Teraz przydałoby się zainstalować nasz nowy moduł ![]()
Mamy już kod, teraz wypadałoby to zainstalować w Joomla!. Instalator modułów wymaga pliku .zip zawierającego plik .php i .xml. Zzipuj pliki, a potem w administratorze Joomla wybierz Instaluj(Install/Uninstall) z menu Rozszerzenia(Extensions). I znajdziesz tam opcję do uploadowania plików. Wybierz nasz plik .zip i go wyślij. Gratuluję. Właśnie zainstalowałeś moduł. ![]()
Teraz idziemy do Rozszerzenia(Extensions) -> Moduły(Module Manager), co by opublikować nasz moduł!

Autor: online dnia 07.04.10 o godz. 20:09
Dzieki za ciekawy blog
Autor: Krzyk dnia 07.04.10 o godz. 20:09
Ciekawy? hmm choć to mój blog to uważam go za niezbyt ciekawy
aktualnie brakuje mi pomysłu o czym by tu napisać