Absolute basisprincipes van het functioneren van een component.

From Joomla! Documentation

Revision as of 09:33, 10 October 2015 by Nico-van-Leeuwen (talk | contribs) (Created page with "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...")
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 is gemaakt om uit te leggen wat een component is en hoe het functioneert. Wanneer een specifiek voorbeeld van een component van toegevoegde waarde is voor deze uitleg dan wordt er een referentie gemaakt naar een 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 worden 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

The controller is responsible for responding to user actions. In the case of a web application, a user action is generally a page request. The controller will determine what request is being made by the user and respond appropriately by triggering the model to manipulate the data appropriately and passing the model into the view. The controller does not display the data in the model, it only triggers methods in the model which modify the data, and then pass the model into the view which displays the data.

Joomla! Component Framework Explained

Model

In the Joomla framework, models are responsible for managing the data. The first function that has to be written for a model is a get function. It returns data to the caller. For this example, the caller will be the HelloWorldViewHelloWorld view. By default, the model named HelloWorldModelHelloWorld residing in site/models/helloworld.php is the main model associated to this view.

So let's have a quick look at the naming conventions with an example, since the naming convention are the actual magic, that make everything work:

The class HelloWorldViewHelloWorld resides in site/views/helloworld/view.html.php and will make use of the class HelloWorldModelHelloWorld in the file site/models/helloworld.php

Do let's just assume we want to use an imaginary view fluffy, you would have to have:

The class HelloWorldViewFluffy which resides in site/views/fluffy/view.html.php. The view will make use of HelloWorldModelFluffy in the file site/models/fluffy.php. Note: the actual screen of the view: site/views/fluffy/tmpl/default.php is required as well to make this example work.

Breaking any of these bold conventions will lead to errors or a blank page.

Accessing a Joomlaǃ Component

First we need to access the Joomla! platform, which is always accessed through a single point of entry. Using your preferred web browser, navigate to the following URL:

1 user access <yoursite>/joomla/index.php
2 administrator access <yoursite>/joomla/administrator/index.php

Hello World! example: localhost/joomla/index.php

You can use the URL of the component, or a Menu in order to navigate to the component. In this article we will discuss using the URL.

1 user access <yoursite>/joomla/index.php?option=com_<component_name>
2 administrator access <yoursite>/joomla/administrator/index.php?option=com_<component_name>

Hello World! example: localhost/joomla/index.php?option=com_helloworld

MVC Basic Directory Structure

Components are stored in a directory within your Joomla! installation, specifically at:

  • htdocs/<path_to_joomla>/components/com_<component_name>/ .

The Hello World! component would be stored in htdocs/<path_to_joomla>/components/com_helloworld/.

A basic component will contain the following files within its directoryː

  • A html file that is just a security file with a background colorː index.html
  • A php file that represents the controller itselfː controller.php
  • A php file that loads the controller classː <component_name>.php
  • A php file that represents the model itselfː models/<component_name>.php
  • Another html file for background controlː models/index.html
  • A php file containing the default viewː views/<component_name>/tmpl/default.php
  • A xml file for adding a menu item typeː views/<component_name>/tmpl/default.xml
  • Another html file for background controlː views/<component_name>/tmpl/index.html
  • Another html file for background controlː views/<component_name>/index.html
  • A php file for displaying the viewː views/<component_name>/view.html.php


JEXEC

The following line is commonly found at the start of Joomla! PHP files:

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

This enables for a secure entry point into the Joomla! platform. JEXEC contains a detailed explanation.

Tutorials on Designing a MVC Component

To learn how to design your own MVC Component, please complete the tutorial for your Joomla! version.