Самое начальное по функционированию компонентов

From Joomla! Documentation

This page is a translated version of the page Absolute Basics of How a Component Functions and the translation is 100% complete.

Other languages:
বাংলা • ‎Deutsch • ‎English • ‎español • ‎eesti • ‎فارسی • ‎français • ‎हिन्दी • ‎Bahasa Indonesia • ‎italiano • ‎Nederlands • ‎Nederlands (informeel)‎ • ‎português do Brasil • ‎română • ‎русский • ‎українська

Этот документ написан для начинающих [пользователей системы] Joomla!; его назначение - объяснить что такое компоненты Joomla! и как они функционируют. Когда пример с каким-либо определенным компонентом может быть полезным, то этот документ будет ссылаться на компонент-образец под названием 'Hello World!'.

Что такое компонент Joomlaǃ

Компонент - это вид расширения [системы] Joomla!. Компоненты являются главными функциональными единицами [системы] Joomla! и их можно рассматривать как мини-приложения. Простейшей аналогией будет [представить себе что] Joomla! - это операционная система и [ее] компоненты - это приложения рабочего стола. Создаваемое каким-либо компонентом содержимое обычно показано в центре главной части шаблона (в зависимости от самого шаблона).

Большинство компонентов состоят из двух частей: административной части и лицевой части. Лицевая часть - это то, что используется для предоставления веб-страниц Вашего вебсайта, когда [их] запрашивают во время обычной работы [с] сайтом. Административная часть предоставляет интерфейс для настройки и управления различных аспектов данного компонента и доступна [к нему] через административное приложение.

Joomla! поставляется с набором компонентов ядра [системы, такими] как система управления содержимым, контактные веб-формы и [система управления] веб-ссылками.

Смотрите также: Модуль, Плагин, Шаблон

Во фреймворке Joomla! компонент может быть спроектирован с использованием простой модели (возвращая код HTML запрошенной веб-страницы) или в шаблоне [проектирования] 'Model-View-Controller' (здесь и далее упомянутой как MVC).

Вступление в MVC

MVC - это шаблон проектирования программного обеспечения, который может быть использован так, чтобы отделять друг от друга логику программного обеспечения и то, как оно выглядит. Основанием для такого подхода является то, что если логика программного обеспечения сгруппирована в своем разделе, то тогда интерфейс и взаимодействие с пользователями, которые включают в себя данные, могут быть пересмотрены и подстроены под индивидуальные требования без необходимости перепрограммирования деловой логики. Модель MVC была изначально разработана для связки задач ввода данных, их обработки и их вывода в логичную архитектуру графического интерфейса пользователя.

Модель

Данная модель является частью компонента, которая содержит данные самого приложения. Она часто предоставляет процедуры для существенного управления и манипулирования этими данными в дополнение к процедурам, которые извлекают эти данные из этой модели. В общем, лежащая в основании техника доступа к данным должна быть включена в такую модель. Таким образом, если приложение перемещается из системы, которая содержит информацию в обычном файле, в систему, которая использует [для этого] базу данных, то единственным элементом, который будет необходимо изменить, будет сама эта модель, а не данные представление или контроллер.

Представление

Представление это часть компонента, которая используется для отображения данных из модели в подходящем для взаимодействия с пользователем виде. Для веб-приложения, представление, как правило, будет HTML-страница, которая возвращается пользователю. Представление (вид) извлекает данные из модели (которая передается от контроллера) и передает данные в шаблон, который заполняется и показывается пользователю. Представление (вид) не вызывает данные, которые будут изменены в любом случае, оно только отображает данные полученные от модели.

Контроллер

Контроллер (controller) отвечает за операции пользователя. В случае с веб-приложением, операцией пользователя обычно является запрос страницы. Контроллер (controller) определит какой именно запрос был создан конкретным пользователем и соответственно ответит [на это] запустив [в работу] данную модель (model) для манипулирования нужных данных и передачи данной модели (model) надлежащему представлению (view). Сам контроллер (controller) не показывает данные в модели (model), - он только запускает [в работу] методы в модели, которая вносит изменения в данные, и затем передает эту модель в представление (view), которое показывыет эти данные.

Объяснение фреймворка компонента [системы] Joomla!

Модель

Во фреймворке Joomla модели отвечают за управление данными. Первой функцией, которая должна быть написана для какой-либо модели, является функция get. Она возвращает данные тому, что вызывает ее. Например, таким вызывателем может быть представление HelloWorldViewHelloWorld. По умолчанию, эта названная HelloWorldViewHelloWorld и обитающая в site/models/helloworld.php модель является главной моделью, связанной с этим представлением.

Так что давайте бросим беглый взгляд на пример с общепринятым наименованием, поскольку то, что приводит все в работу - это именно то, как Вы ведете свое наименование.

Класс HelloWorldViewHelloWorld обитает в site/views/helloworld/view.html.php и он будет использовать обитающий в site/models/helloworld.php класс HelloWorldModelHelloWorld.

Так что давайте предположим, что мы желаем использовать воображаемое представление fluffy. Тогда мы имеем:

Данный класс HelloWorldViewFluffy обитает в site/views/fluffy/view.html.php. Данное представление воспользуется HelloWorldModelFluffy в файле site/models/fluffy.php. Примечание: для того, чтобы этот пример сработал, требуется сам экран этого представления: site/views/fluffy/tmpl/default.php.

Нарушение этих выделенных жирным шрифтом наименований приведет к ошибкам или пустой веб-странице.


Вход в компонент системы Joomlaǃ

Сначала нам необходим доступ к платформе Joomla!, доступ к которой всегда осуществляется из одной точки. Пройдите в предпочитаемом Вами браузере по следующей ссылке URL:

1 доступ пользователя <ваш_вебсайт>/joomla/index.php
2 доступ администратора <ваш_вебсайт>/joomla/administrator/index.php

Пример Hello World!: localhost/joomla/index.php

Для того, чтобы пройти в компонент, Вы можете использовать эту URL ссылку компонента или Menu. В этой статье мы обсудим использование URL.

1 доступ пользователя <ваш_вебсайт>/joomla/index.php?option=com_<component_name>
2 доступ администратора <ваш_вебсайт>/joomla/administrator/index.php?option=com_<component_name>

Пример "Hello World!": localhost/joomla/index.php?option=com_helloworld

Начальная структура директории MVC

Компоненты содержатся внутри директории Вашей установки [системы] Joomla!, а именно в *htdocs/<путь_к_вашей_joomla>/components/com_<название_вашего_компонента>/ .

Наш компонент The Hello World! будет храниться в htdocs/<путь_к_joomla>/components/com_helloworld/.

Простой компонент будет содержать в своей директории следующие файлы:

  • Это html файл, который нужен для безопасности, который содержит только цвет заднего фонаː index.html
  • Это php файл, который представляет сам контроллерː controller.php
  • Это php файл, который загружает класс контроллераː <название_компонента>.php
  • Это php файл, который представляет саму модельː models/<название_компонента>.php
  • Еще один html файл для контроля цвета заднего фонаː models/index.html
  • Это php файл, содержащий представление (view) по умолчаниюː views/<название_компонента>/tmpl/default.php
  • Это xml файл для добавления типа пункта менюː views/<название_компонента>/tmpl/default.xml
  • Это еще одни html файл для контроля цвета заднего фонаː views/<название_компонента>/tmpl/index.html
  • Это еще один html файл для контроля цвета заднего фонаː views/<название_компонента>/index.html
  • Это php файл для показа представления (view)ː views/<название_компонента>/view.html.php


JEXEC

Следующая строчка обычно присутствует в начале всех PHP файлов системы Joomla!:

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

Это входная точка безопасности в платформу Joomla!. Этот вики документ по JEXEC содержит более подробное пояснение об этом.

Уроки по проектированию компонента в MVC

Если Вы желаете научиться проектировать свой собственный компонент в модели MVC, то, пожалуйста, пройдите соответствующий урок по свой версии Joomla!.