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ł.