Absolute basisprincipes van het functioneren van een component.

From Joomla! Documentation

This page is a translated version of the page Absolute Basics of How a Component Functions and the translation is 62% complete.
Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Nederlands (informeel)‎ • ‎eesti • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎українська • ‎فارسی • ‎हिन्दी • ‎অসমীয়া • ‎বাংলা • ‎中文(台灣)‎

Dit artikel is voor Joomla! beginners; het legt uit wat een component is en hoe het werkt. Wanneer een voorbeeld van een component ter sprake komt, dan wordt er gerefereerd naar het voorbeeld component met de naam "Hello World!".

Wat is een Joomlaǃ component

Een component is een soort Joomla! extensie. Componenten zijn de voornaamste functionele eenheden binnen Joomla!; ze kunnen gezien worden als mini-toepassingen. Een eenvoudige analogie zou zijn dat Joomla! het besturingssysteem is en de componenten de bureaublad-toepassingen. Ze worden meestal weergegeven in het midden van de hoofdinhoud van een template (afhankelijk van het template).

De meeste componenten hebben twee belangrijke delen: een beheergedeelte en een websitegedeelte. Het websitegedeelte is het deel dat gebruikt wordt voor het renderen van de pagina's wanneer zij aangeroepen worden tijdens normale handelingen op de website. Het beheergedeelte voorziet in een interface om de diverse aspecten van de component in te stellen en te beheren en is toegankelijk via de Joomla! beheertoepassing.

Joomla! bevat een aantal vaste componenten, zoals het artikelbeheersysteem, contactformulieren en weblinks.

Zie ook: Module, Plugin, Template


In het Joomla! framework kunnen componenten worden ontworpen middels een plat model (wat resulteert in de HTML-code voor de gevraagde pagina) of het Model-View-Controller (hierna MVC) patroon.

Inleiding tot MVC

MVC is een software ontwerp methode die kan worden gebruikt voor het ordenen van code op een zodanige wijze dat de business logica en presentatie van gegevens gescheiden zijn. De theorie achter deze benadering is dat de business-logica is ingedeeld in een apart gedeelte, zodat de interface en de gebruikersinteractie kunnen worden herzien en aangepast, zonder de business logica te moeten herprogrammeren. MVC werd oorspronkelijk ontwikkeld om de traditionele invoer, verwerking en uitvoer-rollen in een logische GUI architectuur te verwerken.

Model

Het model is het onderdeel van een component welke de gegevens van de applicatie omvat. Het zal vaak routines bevatten om de gegevens te beheren en te manipuleren op een zinvolle manier als aanvulling op de routines die de gegevens ophalen uit het model. In het algemeen moet de toegangstechniek voor de onderliggende data worden opgenomen in het model. Op deze manier zal, als een toepassing verplaatst wordt van een systeem dat gebruik maakt van bestanden voor het opslaan van de gegevens naar het systeem dat gebruikt maakt van een database, het model als enige element moeten worden gewijzigd, niet de view of de controller.

View

De view is het stuk van het component wat wordt gebruikt om de gegevens van het model aan te voeren zodat het gereed is voor interactie. Voor een web gebaseerde toepassing zal de view normaliter een HTML pagina zijn die wordt gepresenteerd aan de gebruiker. De view haalt de gegevens van het model (welke hij aangeleverd van de controller) en zet deze gegeven in een template welke wordt gevuld en gepresenteerd aan de gebruikt. De view wijzigt op geen enkele manier de gegevens, het toont alleen de gegevens van het model.

Controller

De controller is verantwoordelijk voor het reageren op acties van de gebruiker. In het geval van een web-applicatie, is de actie van een gebruiker meestal een pagina opvragen. De controller zal bepalen welk verzoek wordt gedaan door de gebruiker en zal er adequaat op reageren, namelijk het activeren van het model dat de gegevens op de juiste manier manipuleert en het model doorgeven aan de view. De controller zorgt niet voor de weergave van de gegevens in het model, het zal enkele methoden in het model uitvoeren om gegevens te wijzigen, om dan het model door te geven naar de view die de gegevens weergeeft.

Joomla! Component Framework Uitgelegd

Model

In het Joomla framework zijn modellen verantwoordelijk voor het beheer van de gegevens. De eerste functie die voor een model geschreven moet worden, is een 'get'-functie. Die levert de gegevens aan de oproeper. In ons voorbeeld is de oproeper de 'view' HelloWorldViewHelloWorld. Het model dat hier standaard bijhoort heeft een naam als HelloWorldModelHelloWorld en is te vinden in site/models/helloworld.php.

Het belang van de naamgeving zal duidelijk blijken uit ons voorbeeld.

De klasse HelloWorldViewHelloWorld bevindt zich in site/views/helloworld/view.html.php en maakt gebruik van de klasse HelloWorldModelHelloWorld in het bestand site/modellen/helloworld.php

Laten we veronderstellen dat we een denkbeeldige view fluffy willen gebruiken, dan zouden we komen tot:

De klasse HelloWorldViewFluffy die zich bevindt in site/views/fluffy/view.html.php. Deze 'view' zal gebruik maken van HelloWorldModelFluffy in het bestand site/modellen/fluffy.php. Opmerking: om dit voorbeeld te doen werken moet het scherm bestaan voor de weergave van die 'view': site/views/fluffy/tmpl/default.php. Volg je deze strikte regels niet dan krijg je foutmeldingen of een blanko pagina.

Toegang tot een Joomlaǃ Component

Eerste moeten we in het Joomla! platform gaan, dat altijd toegankelijk is via volgende volgende URL (open in je browser):

1 gebruikerstoegang

<uwsite>/joomla/index.php

2 beheerderstoegang

<uwsite>/joomla/administrator/index.php

Hallo Wereld! voorbeeld: localhost/joomla/index.php U kunt gebruik maken van de URL van het component, of een Menu , om te navigeren naar het onderdeel. In dit artikel bespreken we het gebruik van de URL.

1 gebruikerstoegang

<uwsite>/joomla/index.php?option=com_<component_name>

2 beheerderstoegang

<uwsite>/joomla/administrator/index.php?option=com_<component_name>

Hallo Wereld! voorbeeld: localhost/joomla/index.php?option=com_helloworld

MVC Basis Directory-Structuur

Onderdelen worden opgeslagen in een map in uw Joomla! installatie, specifiek op:

  • htdocs/<pad_naar_joomla>/components/com_<component_naam>/ .

Het Hallo World! component zou worden opgeslagen in htdocs/<pad_naar_joomla>/components/com_helloworld/.

Een basis component zal de volgende bestanden in zijn bestandsmap bevatten ː

  • Ter beveiliging een html-bestand met enkel een achtergrond kleurː index.html
  • Een php-bestand dat overeenkomt met de controller zelf ː controller.php
  • Een php-bestand dat de controller klasse oplaadtː <component_name>.php
  • Een php-bestand dat overeenkomt met het model zelf: models/<component_naam>.php
  • Een andere html-bestand voor de achtergrond controlː models/index.html
  • Een php-bestand met de standaard viewː views/<component_naam>/tmpl/default.php
  • Een xml-bestand voor het toevoegen van een menu-item typeː views/<component_naam>/tmpl/default.xml
  • Een ander html-bestand voor de achtergrond controlː views/<component_naam>/tmpl/index.html
  • Een ander html-bestand voor de achtergrond controlː views/<component_naam>/index.html
  • Een php-bestand voor het weergeven van de viewː views/<component_naam>/view.html.php

JEXEC

De volgende regel is meestal te vinden aan het begin van Joomla! PHP-bestanden:

<?php
    defined('_JEXEC') or die('Restricted Access');

Dit zorgt voor een veilig toegang tot het Joomla! platform. JEXEC bevat een gedetailleerde uitleg.

Tutorials over het Ontwerpen van een MVC-Component

Om te leren hoe je eigen MVC-Component te ontwerpen, moet u de lessenreeks over uw Joomla! versie voltooid hebben.