Een component maken in Joomla 1.5 PDF Print

De structuur van components.

Joomla heeft een typische benaminsgstructuur voor directories en bestanden.

Elke component in het systeem heeft een unieke naam zonder spaties, te beginnen met “com_”, dus als we een map aanmaken dan noemen we deze bijvoorbeeld:

 

com_testcomp

 

Als je een basis installatie hebt gedaan van Joomla, dan heb je zowel in de root als in de administrator kant een map die components heet. In die map maak je een eigen map aan, zoals in het bovenstaande voorbeeld.

 

In de map moet een php bestand staan met de unieke naam met de naam van je directorie, minnus het “com_” gedeelte

 

testcomp.php

 

Het Joomla systeem zal automatisch dit bestand opzoeken en parsen.

 

Deze directorie en dit php bestand moet in zowel de administrator en de front end (root) components map staan. Alleen in het admin gedeelte moet het bestand admin.textcomp.php heten.

 

Plaats in de beide bestanden de volgende code.

 

defined('_JEXEC') or die('Restricted access');

echo '<div class="componentheading">My Testcomponent</div>';

De eerste regel controleerd of er niet direct naar verwezen word door het pad er naar te typen:

 

http://localhost/joomla/components/com_testcomp/textcomp.php

 

Als je je werk wilt testen dan doe je het volgende:

 

Admin gedeelte:

http://localhost/joomla/administrator/index.php?option=com_testcomp

 

Admin gedeelte:

http://localhost/joomla/index.php?option=com_testcomp

 

(als het bij jouw geen localroot is dan moet je een ander domein invullen. )

 

Je ziet dat de index.php in de root van het Joomla Systeem de componenten regelt en deze dan laat zien, met de rest van de Joomla omgeving er omheen. Dat laatste gebeurd ook wel zonder de code, dit gebeurd automatisch. Er word alleen gecontroleerd door het

 

Je kan dan bijvoorbeeld een Php bestand aanmaken deze in dezelfde componenten directorie zetten en deze includen via het Joomla systeem.

require_once (JPATH_COMPONENT.DS.'inclu_testcomp.php');

 

JPATH_COMPONENT.DS is een opdracht aan Joomla om het pad te geven naar de component waar we dan mee werken.

 

De frontend (root gedeelte) en backend (admin gedeelte) van Joomla zijn strikt gescheiden gehouden vanwege veiligheidsoverwegingen.

De backend zal af en toe wel eens een class gebruiken van de front end, maar dit is incidenteel. Het zijn echt twee apparte gedeeltes. En het is dan ook moeilijk om een administration optie in de frontend te krijgen wat maar goed is ook. Als je naar de mappen structuur kijkt dan zijn er veel overeenkomsten. In beide zitten template, images en ander soortige directorie.


 

Je component in de database registreren.

Hoewel we steeds de complete url kunnen typen om bij ons componet te komen, dat is voor onze gebruikers natuurlijk niet acceptabel. We zullen dus het component in de database op moeten nemen om deze op de normale wijze te kunnen benaderen.

De normale manier van navigeren kunnen we bereiken door het toevoegen van een rij aan de components tabel.

(Als je tabellen de jos_ prefix hebben dan hoef je niks aan te passen, als je een andere prefix hebt wel. )

Gebruik hiervoor PhpAdmin dat is wel zo makkelijk.

Je moet het een naam geven, en in Link en admin_menu_link geef je het onderstaande op.

Dat is het laatste gedeelte van de link naar je component.

option=com_testcomp

MenuId en parent laat je op 0 staan.

in admin_menu_alt kan je een omschrijvende tekst schrijven, dit is de tekst die je als tooltip ziet als je over deze menu optie gaat in het admin gedeelte.

Enabled zal automatisch 1 zijn, wat betekend dat deze actief is.

 

Bij admin_menu_img geef je het pad op naar het plaatje dat je in het admin menu terugvind bij de components. (een bruin doosje)

Dat pad is:

 

js/ThemeOffice/component.png

 

Je zal hem nu in het admin componenten menu terug moeten vinden.

 


 

Component in Menu in Frontend plaatsen.

Als we het component in het menu in de frontend willen plaatsen dan zullen we dat in menu configuratie scherm moeten doen.

Klik op de menuitems van het menu waar je het compont bij wilt hebben en kies dan voor new Menu Item, hier zal onze component dan bijstaan onder het kopje "Internal Links". Klik deze aan en vul de naam in van het menuitem. Dit kan elke naam zijn. Sla dit op.

Nu zal hij er bij staan in het menu.