Jak opracować moduł Joomla?

10

Poszukałem obszernego poradnika na ten temat, ale nie mogę znaleźć niczego satysfakcjonującego. Jak stworzyć nowy moduł dla Joomla?

Obecnie używam niestandardowych modułów HTML w całym kodzie i chciałbym mieć możliwość sięgnięcia po PHP i uczynienia ich wszystkimi modułami, ale nie znalazłem samouczka, aby to zrobić. Zmodyfikowałem zainstalowane moduły wcześniej, ale nie wiem, jak zrobić taki, który będzie instalował.

Dokumentacja Joomla jest dość myląca i po kilkukrotnym przeczytaniu poddałem się. Czy ktoś może mi wyjaśnić ten proces? dzięki!

serakfalcon
źródło

Odpowiedzi:

17

Nauka programowania modułów Joomla

Sposób, w jaki się nauczyłem, polegał na studiowaniu i dostosowywaniu rdzenia lub innych modułów stron trzecich.
Moduły jako koncepcja są prostsze niż komponenty (które można powiedzieć, są 2 aplikacjami front-end / back-end) i są zaprojektowane do wyświetlania informacji.
Więc jeśli otworzysz folder / pliki modułu i zaczniesz czytać kod, prawdopodobnie szybko się do niego dostaniesz.

Przykład anatomii modułu Joomla

Na przykład możesz otworzyć moduł Najnowsze artykuły w Joomla 3.2 i sprawdzić jego kod, czytając poniższe wiersze. W folderze modułu znajdziemy 4 podstawowe pliki:

1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml

  1. Jest mod_articles_latest.phpto główny plik modułów, który jest używany jako pierwszy, gdy moduł jest wywoływany. Inicjuje moduł i zawiera helper.phpmetodę klasy helper w celu pobrania danych, a na końcu zawiera szablon modułu ( default.php) do wyświetlania danych.

  2. helper.phpPlik jest „maszyna” modułu (jeśli moglibyśmy nazwać tak). W pomocniku tworzymy klasę modułu i jego metody pobierania danych. To miejsce, w którym możemy mieć moduł „rozmawiać” z bazą danych. Odczytanie kodu w pliku pomocnika tego modułu jest, widać, że zawiera ModArticlesLatestHelperklasy , która ma jedną metodę:getList(&$params) .
    W ramach tej metody moduł sprawdza ustawienia zaplecza modułu i ostatecznie buduje listę artykułów, które zwróci, na podstawie tych warunków. Zauważ, że ten moduł używa JModelLegacy::getInstancemetody do zwrócenia obiektu modelu treści .

  3. Jest default.phpto główny szablon modułu i odpowiedzialny za wyświetlanie zawartości modułu. - Tutaj budujemy wyjście html, wykorzystując dane, które wcześniej pobrałeś, mod_articles_latest.phpwywołując klasę modułu. Znajduje się w folderze tmpl . * Zauważ, że plik modułu głównego zawiera plik szablonu z JModuleHelper::getLayoutPathmetodą, która najpierw sprawdzi, czy nie ma żadnych nadpisań szablonu.

  4. Na koniec mod_articles_latest.xmlnazwałbym to „ambasadorem” modułu. Jest to plik, który „wprowadza” moduł do Joomla podczas instalacji, określa pliki, które zostaną skopiowane przez instalatora, a także zawiera informacje o parametrach modułu używanych przez menedżera modułów, a także dodatkowe informacje o module.

Są to podstawowe części podstawowego modułu. Innym aspektem, który warto rozważyć, jest obsługa wielu języków. Można to osiągnąć za pomocą ciągów językowych i plików tłumaczeń językowych . Jeśli do tej pory udało Ci się osiągnąć sukces, aby utworzyć podstawowy moduł, dodanie obsługi języków powinno być dość proste.

FFrewin
źródło
15

Czy widziałeś następujące tutoriale w dokumentacji Joomla?

W szczególności sprawdź wszystkie artykuły z serii.

Peter Wiseman
źródło
3

Opracowaliśmy bezpłatny moduł do tego samego celu. Niestandardowy moduł PHP dla Joomla CMS .

Musisz utworzyć plik PHP, np. Login.php w [root-site] / modules / mod_customphp / files

  • Teraz, aby użyć tego pliku
  • Przejdź do [backend] -> moduł-manager
  • Utwórz nowy niestandardowy moduł php
  • W parametrze includeefile wpisz login
  • Spowoduje to wyświetlenie login.php w module.
Shyam
źródło
który odpowiada na mój przykład użycia wrt php, ale nie odpowiada na to, o co właściwie pytałem (w moim przypadku muszę zapisać pewne ustawienia, takie jak kolor itp. dla każdego użycia modułu, co będzie łatwiejsze, jeśli będę mógł utworzyć nowy moduł, a nie tylko dostęp do php), ale dzięki za wskazówkę.
serakfalcon
Możesz dodać więcej parametrów do modułu i użyć tych parametrów w plikach php.
Shyam,
3

Możesz skopiować istniejący moduł w instalacji lokalnej. Następnie zmień nazwę tak, jak chcesz. Musisz także zmienić nazwę plików php i xml, a także nazw klas php w kodzie. Następnie wystarczy utworzyć plik zip swojego modułu. Ten plik zip możesz zainstalować w swojej instalacji Joomla.

Potrzebujesz więcej informacji na temat zmiany nazwy?

seagul
źródło
Działa to do pewnego stopnia i często tak zaczynam, ale nie jest wystarczające, aby poradzić sobie z ciągami językowymi i dodatkowymi mediami instalowanymi w różnych lokalizacjach.
Peter Wiseman
@PeterWiseman Tak, masz rację, ale jest to łatwy i szybki sposób na rozpoczęcie pracy.
seagul