Dodanie modułu wewnątrz artykułu / ów w Joomla 1.5
Czasami tworząc naszą stronę zachodzi potrzeba dodania jakiegoś modułu wewnątrz artykułu. Możemy to zrobić na 2 sposoby – korzystając z pluginu loadposition, który domyślnie jest dostępny w Joomla, albo edytując kod szablonu komponentu artykuły – np. kiedy chcemy, aby do każdego tworzonego wpisu została wpleciona dodatkowa informacja w wybranym przez nas miejscu.
Korzystanie z dodatku Load Module
W pierwszej kolejności powinniśmy wyżej wymieniony dodatek uaktywnić (o ile nie jest już włączony) -> Menu Rozszerzenia / Dodatki
Następnie tworzymy moduł, który ma być dodany i ustalamy dla niego unikalną pozycję – wpisujemy ją ręcznie np. wewart, zapisujemy i uaktywniamy oczywiście sam moduł.
Kolejną rzeczą jest dodanie kodu w artykule, w którym podajemy nowo utworzoną pozycję:
⟨loadposition wewart⟩
Wewnąrz artykułu zostanie załadowany moduł posiadający wspomnianą pozycję.
Korzystanie z klasy JModuleHelper
Joomla do pracy z modułami udostępnia specjalną klasę JModuleHelper. Korzystanie z niej umożliwi nam załadowanie modułu wewnątrz każdego z artykułów, bez konieczności dodawania każdorazowo loadposition.
W tym celu podobnie jak w poprzednim przypadku tworzymy moduł i wpisujemy ręcznie pozycję np. wewart
Następnie edytujemy plik /templates/mojszablongraficzny/html/com_content/article/default.php lub jeżeli go nie ma /components/com_content/views/article/tmpl/default.php. Dobrze jeżeli zrobimy sobie kopię tych plików – szczególnie jeżeli grzebiemy w kodzie samej Joomli
Później w pliku po:
<?php if (isset ($this->article->toc)) : ?>
<?php echo $this->article->toc; ?>
<?php endif; ?>
ale przed
<?php echo $this->article->event->afterDisplayContent; ?>
dodajemy następującą linijkę:
$myblurb_modules = &JModuleHelper::getModules( 'wewart' );
foreach ($myblurb_modules as $myblurb)
{
$_options = array( 'style' => 'xhtml' );
echo JModuleHelper::renderModule( $myblurb, $_options );
}
gdzie wewart to oczywiście nasza pozycja.
Spowoduje to dodanie wewnątrz artykułu wspomnianego modułu. Jeżeli chcemy możemy moduł opakować w diva i oczywiście dodać w wybrane miejsce. Korzystając ze zmiennej $article
możemy dodatkowo wyliczyć np. ilość znaków jakie zawiera artykuł.