Absolutne podstawy działania komponentów

From Joomla! Documentation

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

Ten artykuł jest przeznaczony dla początkujących użytkowników Joomlaǃ; ma na celu wyjaśnienie, czym jest komponent Joomlaǃ i jak działa. Gdy konkretny przykład komponentu będzie przydatny w samouczku, artykuł ten będzie odnosił się do przykładowego komponentu o nazwie Hello Worldǃ.

Czym jest komponent Joomlaǃ?

A component is a kind of Joomla! extension. Components are the main functional units of Joomla!; they can be seen as mini-applications. An easy analogy would be that Joomla! is the operating system and the components are desktop applications. Created by a component, content is usually displayed in the center of the main content area of a template (depending on the template).

Most components have two main parts: an administrator part and a site part. The site part is what is used to render pages of your site when they are requested by your site visitors during normal site operation. The administrator part provides an interface to configure and manage different aspects of the component and is accessible through the Joomla! administrator application.

Joomla! comes with a number of core components, like the content management system, contact forms and Web Links.

See also: Module, Plugin, Template


We frameworku Joomla! komponenty mogą być projektowane przy użyciu płaskiego modelu (zwraca kod HTML dla żądanej strony) lub wzorca Model-Widok-Kontroler (zwanego dalej MVC).

Wprowadzenie do MVC

MVC to wzorzec projektowy oprogramowania, który może być używany do organizowania kodu w taki sposób, że logika biznesowa i prezentacja danych są oddzielone. Założeniem tego podejścia jest to, że jeśli logika biznesowa jest zgrupowana w jednej sekcji, to interfejs i interakcja użytkownika, które otaczają dane, mogą być zmieniane i dostosowywane bez konieczności przeprogramowywania logiki biznesowej. MVC został pierwotnie opracowany w celu odwzorowania tradycyjnych ról wejścia, przetwarzania i wyjścia w logiczną architekturę GUI.

Model

Model jest częścią komponentu, która hermetyzuje dane aplikacji. Często zapewnia procedury zarządzania i manipulowania tymi danymi w znaczący sposób, oprócz procedur, które pobierają dane z modelu. Ogólnie rzecz biorąc, podstawowa technika dostępu do danych powinna być zamknięta w modelu. W ten sposób, jeśli aplikacja ma zostać przeniesiona z systemu wykorzystującego płaski plik do przechowywania informacji do systemu wykorzystującego bazę danych, model jest jedynym elementem, który należy zmienić, a nie widok lub kontroler.

Widok

Widok jest częścią komponentu, która służy do renderowania danych z modelu w sposób odpowiedni do interakcji. W przypadku aplikacji opartej na sieci Web, widok byłby zazwyczaj stroną HTML, która jest zwracana użytkownikowi. Widok pobiera dane z modelu (które są przekazywane do niego z kontrolera) i przekazuje je do szablonu, który jest wypełniany i prezentowany użytkownikowi. Widok nie powoduje modyfikacji danych w żaden sposób, wyświetla jedynie dane otrzymane z modelu.

Kontroler

Kontroler jest odpowiedzialny za reagowanie na działania użytkownika. W przypadku aplikacji internetowej, akcją użytkownika jest zazwyczaj żądanie strony. Kontroler określi, jakie żądanie jest wykonywane przez użytkownika i odpowiednio zareaguje, uruchamiając model w celu odpowiedniego manipulowania danymi i przekazując model do widoku. Kontroler nie wyświetla danych w modelu, a jedynie uruchamia metody w modelu, które modyfikują dane, a następnie przekazuje model do widoku, który wyświetla dane.

Wyjaśnienie struktury komponentów Joomla!

Model

We frameworku Joomla modele są odpowiedzialne za zarządzanie danymi. Pierwszą funkcją, którą należy napisać dla modelu, jest funkcja "get". Zwraca ona dane do wywołującego. W tym przykładzie wywołującym będzie widok HelloWorldViewHelloWorld. Domyślnie model o nazwie HelloWorldModelHelloWorld znajdujący się w site/models/helloworld.php jest głównym modelem powiązanym z tym widokiem. Przyjrzyjmy się więc konwencjom nazewnictwa na przykładzie, ponieważ konwencje nazewnictwa są prawdziwą magią, która sprawia, że wszystko działa: Klasa HelloWorldViewHelloWorld znajdduje się w pliku site/views/helloworld/view.html.php i będzie korzystać z klasy HelloWorldModelHelloWorld w pliku site/models/helloworld.php Załóżmy, że chcemy użyć wyimaginowanego widoku fluffy, który musiałbyś mieć: Klasa HelloWorldViewFluffy, która znajduje się w pliku site/views/fluffy/view.html.php. Widok będzie korzystał z HelloWorldModelFluffy w pliku site/models/fluffy.php. Uwaga: rzeczywisty ekran widoku: site/views/fluffy/tmpl/default.php jest również wymagany, aby ten przykład działał. 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ː

  • An 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
  • An 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 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.