14.07.2020

Joomla 1 5 создание компонента. Файлы и папки расширения


Outdated translations are marked like this.

There are also a number of videos which accompany steps in the tutorial, beginning with
Step 1, Developing a Basic Component and you can access the slides which are used in the series of video presentations at Slides .

Important! Around version 3.8 the Joomla developers started changing the naming of Joomla classes and where they were stored in the directory structure. Many of the tutorial steps and videos refer to the old naming convention. To find the equivalent new class and where it"s stored, look in your libraries/classmap.php file.

Как добавить компонент на Joomla! ==!Н!В данной статье мы рассмотрим, как создать и установить базовый компонент на Joomla! . В этом примере мы будем работать с компонентом Hello World!.

Чтобы начать, вы должны сначала использовать нужный файл менеджер для создания каталога для компонента Hello World! . Этот каталог может быть где угодно в файловой системе, пока это за пределами вашего Joomla! директорию. В этом примере мы назовем каталоге com_helloworld , но эта директория может называться как угодно.

1 это XML-файл (манифест) файл, который говорит Joomla! как установить наш компонент.
2 это сайт точка входа для компонента Hello World!
3
4 предотвращает листинг из веб-сервера содержимого директории
5 это точка входа администратора в компонент Hello World!
6 предотвращает листинг из веб-сервера содержимого директории
7 предотвращает листинг из веб-сервера содержимого директории
8 предотвращает листинг из веб-сервера содержимого директории
9 файл, позволяющий инициализировать версию схемы компонента com_helloworld.

Установка Компонента Hello World! ===!Н!Используя ваш любимый файловый менеджер, создайте.zip файл из этого каталога. В данном примере мы будем использовать Имя файла com_helloworld.zip снова, хотя этот файл можно было назвать как угодно.

Теперь нам нужно установить компонент Hello World!. Есть два способа сделать это, оба показаны в Установке расширения . Здесь мы рассмотрим способ с использованием диспетчера расширений для Joomla!.

  • Используя ваш любимый веб-браузер, перейдите в панель администратора вашего Joomla! сайт. Адрес, например, /joomla/administrator/index.php . Для этого примера мы будем ориентироваться на localhost/joomla/administrator/index.php .!Н!
  • Выберите дополнительные модули Extensions Manage Install Upload Package File Choose File!Н!
  • Перейдите и выберите файл!Н!
  • Нажмите Кнопку " Загрузить & Установить

Примечание - Вы должны увидеть сообщение, показывающее, что установка выполнена успешно.

Вы можете протестировать основные функции компонента, введя Hello World! страницы для сайта и административной части вашего Joomla! сайта.!Н!

  • Используя ваш любимый веб-браузер, перейдите к Hello World! компонент страницы, расположенной на части вашего сайта. Адрес бы /joomla/index.php?option=com_helloworld . Для этого примера мы будем ориентироваться на localhost/joomla/index.php?option=com_helloworld .!Н!
  • Используя ваш любимый веб-браузер, перейдите к странице компонента Hello World!, расположенной в административной части вашего сайта. Адрес бы /joomla/administrator/index.php?option=com_helloworld . Для этого примера мы будем ориентироваться на localhost/joomla/index.php?option=com_helloworld .

Вы можете также заметить, что компонент Hello World! виден в административной части сайта после установки Joomla в подменю "компоненты".

Файл Детали

admin/sql/updates/mysql/0.0.1.sql файл, позволяющий инициализировать версию схемы компонента com_helloworld.

helloworld.xml

Hello World! January 2018 John Doe [email protected] http://www.example.org Copyright Info License Info 0.0.1 Description of the Hello World component ... sql/updates/mysql index.html helloworld.php

"index.php?option=com_helloworld" > Hello World! index.html helloworld.php sql

site/helloworld.php

В Joomla 2.5 треть разработчиков компонентов разделяют компонент согласно шаблону проектирования MVC:

  1. Модель (Мodel). Представляет данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние.
  2. Контроллер (Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.
  3. Представление (view). Отвечает за отображение информации (визуализация).

Создаем контроллер.

Joomla API включает в себя класс JController, который должен быть использован для расширения вашего контроллера. Добавьте в файл site/helloworld.php следующий строки кода:

execute(JRequest::getCmd("task")); // Redirect if set by the controller $controller->redirect();

getInstance – является статичным методом класса JController, который создает экземпляр класса контроллера. В приведенном выше коде экземпляром объекта класса контроллера является класс с именем HelloWorldController. Joomla будет искать объявление этого класса в файле controller.php.

Когда не ставится ни одно действие(action) в переменных url-запроcа, действием по умолчанию будет выполнено действие display, которое наследует класс HelloWorldController от класса JController. В нашем примере будет выведено представление с именем HelloWorld.

Создаем представление.

Когда контроллеру необходимо вывести представление, он будет искать конкретные файлы представления в каталоге component/com_/views// .

Название каталога представления по умолчанию является название самого компонента. В нашем случае это путь component/com_helloworld/views/helloworld/.

Файл, который будет содержать исходный код представления, будет вызываться view..php. Представление компонента по умолчанию использует html режим(view_mode). Таким образом, имя файла представления у нас получается таким - view.html.php.

Создайте представление site/views/helloworld/view.html.php:

msg = "Hello World"; // Display the view parent::display($tpl); } }

Метод display() класса JView вызывает метод display() класса JController. В нашем случае, этот метод будет выводить данные на экран, используя файл tmpl/default.php. Создайте файл site/views/helloworld/tmpl/default.php, который будет является шаблоном представления, содержащим:

msg; ?>

Этот файл шаблон будет включен в JView класс. Таким образом, здесь $tihs относится к классу HelloWorldViewHelloWorld.

Собираем компонент.

Пакет включает в себя файлы и директории:

  • helloworld.xml
  • site/index.html
  • site/helloworld.php
  • site/controller.php
  • site/views/index.html
  • site/views/helloworld/index.html
  • site/views/helloworld/view.html.php
  • site/views/helloworld/tmpl/index.html
  • site/views/helloworld/tmpl/default.php
  • admin/index.html
  • admin/helloworld.php
  • admin/sql/index.html
  • admin/sql/updates/index.html
  • admin/sql/updates/mysql/index.html
  • admin/sql/updates/mysql/0.0.1.sql

Сожмите в zip-файл ваш каталог компонента или скачайте и установите его используя менеджер расширений. Протестируйте установленный компонент вставив index.php?option=com_helloworld в адресную строку браузера.

Листинг файла helloworld.xml:

Hello World! November 2009 John Doe Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. http://www.example.org Copyright Info License Info 0.0.2 Description of the Hello World component ... sql/updates/mysql index.html helloworld.php controller.php views

Hello World! index.html helloworld.php sql

И вы хотите ознакомится с ее основными возможностями, особенностями и устройством. Описать все в одной статье не возможно, поэтому пробегусь только по основным функциям и понятиям.

Войдите в административную панель Joomla по адресу http://вашсайтру/administrator, введите логин и пароль. У вас откроется главная страница админ. панели.

Где: 1) Главное меню Joomla; 2) Панель быстрого доступа.

Главное меню админ. панели Joomla

Начинающих пользователей путают понятия модулей плагинов, компонентов и их расположение. Давайте попробуем разобраться в этом вопросе:

В Joomla есть 3 основных компонента "Менеджер пользователей", "Менеджер меню", "Менеджер материалов", они отделены от всех других, и для удобства и быстрого доступа, вынесены в отдельные пункты "Пользователи", "Меню" и "Материалы". Остальные можно найти открыв меню "Компоненты".

Пункт верхнего меню "Система" - здесь вы сможете произвести основные настройки сайта, выбрать редактор, очистить кэш, посмотреть информацию о движке и системе. А с выходом версии Joomla 3 теперь можно настроить и любой компонент.

Пункт меню "Пользователи" . Тут вы сможете добавлять, удалять, одобрять новых пользователей, делать рассылку, настроить права для пользователей, создать группы пользователей. Ваш профиль администратора с настройкой пароля, email, редактора, тоже находится в менеджере пользователей.

Пункт "Меню" . Если нужно добавить или изменить пункты меню на front-end сайте, то этот компонент поможет. Можно создавать отдельные группы меню сайта и выводить их при помощи модуля. В пунктах меню формируются ссылки на страницы сайта. Т.е. создавая пункт можно выбрать, на страницы какого компонента он будет вести. А компонент в свою очередь наполняется нужной информацией, которою можно вывести при помощи пункта меню. Кроме того можно сделать индивидуальные настройки отображения страницы на которую он ведет. Например указать "Показывать заголовок страницы или нет", "Какой шаблон отображать для этой страницы", "Настроить отображение мета информации страницы", "Порядок пунктов меню", "Какой из пунктов меню будет главной страницей", "Опубликовать пункт меню или скрыть" и др.

Пункт меню "Материалы" . С помощью этого компонента Joomla можно создавать страницы сайта с текстовым и медиа-, контентом. Страницы можно сортировать по группам при помощи категорий с неограниченной вложенностью. Материалы и категории можно выводить списком, в виде блога или по отдельности. Настройка отображения материалов производится через сам компонент, либо через общие настройки.

Пункт меню "Компоненты" . Тут вы найдете список всех установленных компонентов и сможете перейти в любой из них. Компоненты служат для создания и управления разного вида контента например каталог, магазин, форум и т.д.. Вывести содержимое компонента можно через меню выбрав его из списка.

Пункт меню "Расширения" - в подменю этого пункта вы найдете менеджеры модулей, плагинов, языков и шаблонов. А так же менеджер установки новых расширений, в том числе и компонентов.

Компоненты, модули, плагины и шаблоны Joomla

Для того, что бы двинуться дальше нужно разобраться в том, что лежит в основе этой CMS. Работа с Joomla строится на 4 основных видах расширений, которые создают практически неограниченные возможности по наращиванию функционала сайта, от визитки до полноценного интернет-магазина.

  1. Компоненты - это скрипты, которые обладают наибольшей функциональностью и выводят основной контент сайта (статьи, галереи, ССК, форумы, ссылки, поиск, редакторы). Основные компоненты уже встроены в ядро joomla, остальные можно скачать бесплатно или купить и установить на свой сайт.
  2. Модули - это расширения, которые дополняют компоненты и отображают нужную информацию на сайте. Например: пункты меню сайта создаются в компоненте, а выводятся при помощи модуля; Форма поиска выводится при помощи модуля, информация из формы обрабатывается компонентом, который в свою очередь выводит результаты поиска; Список последних новостей выводится при помощи модуля, но сами новости создаются с помощью компонента "Менеджер материалов".
  3. Плагины - это еще один вид расширений функциональности. Плагины выполняют заложенную в них функцию в момент появления определенного события в системе. К примеру это удобно для отображения одного и того же визуального редактора, выбранного пользователем для всей системы, в разных компонентах и модулях.
  4. Шаблоны - позволяют настраивать вид отображения компонентов, модулей и дизайна сайта. Для работы с шаблонами требуются навыки HTML и CSS. Некоторые шаблоны обладают богатым набором настроек, который позволяет менять его вид без навыков верстки и программирования.

Я так и не понял в чем разница компонентов, модулей и плагинов.

Тогда нужно посмотреть на front-end сайта и разобраться где модули, а где содержание компонентов. для наглядности выделил все модули красной рамкой, а компонент зеленой.

Где модули:

1) Модуль "Меню"; 2) Модуль "Календарь"; 3) Модуль "Произвольный HTML код" - где при помощи визуального редактора я разместил и настроил вид блока; 4) Модуль "Последние новости" - выводит последние материалы из выбранной категории. Тут выведено сразу три модуля с названиями "Конкурсы", "Новости", "События", по сути это одно и тоже только названия и категории материалов разные.

Компоненты:

5) С помощью компонента в данном случае выводится материал с заголовком "О проекте" и текстом.

Здесь я написал небольшое руководство для начинающих о том как пользоваться Joomla. Более подробную информацию о том как работать с Joomla вы сможете узнать из ссылок по теме в низу страницы.

Понравилось:
16



Не понравилось: 0

Недоступен ни один перевод.

Создание главного каталога компонента - com_megashop

Итак, создаем где-нибудь на локальном диске каталог com_megashop, а внутри него каталоги site , admin , media , а также два пустых файла - index.html и megashop.xml . В итоге получится вот такая картинка:

Создание файлов и каталогов для backend-части компонента

Теперь заходим в каталог admin и создаем следующие каталоги:

  • controllers - тут будут храниться файлы с классами контроллеров back-end части
  • css - для хранения файлов CSS-стилей, используемых для отрисовки элементов компонента внутри админки Joomla
  • help - для хранения справки для нашего компонента (на разных языках). Понадобится, если мы захотим написать инструкцию по использованию компонента
  • helpers - для хранения классов-помощников
  • language - здесь будут размещаться языковые файлы компонента
  • models - сюда будем помещать модели для административной части
  • sql - в этом каталоге будут храниться файлы с SQL-запросами для создания всех таблиц компонента в базе данных Joomla
  • tables - тут будут располагаться классы для работы с таблицами компонента
  • views - тут будут храниться файлы представлений, которые будут рисовать всё, что мы увидим в админке Joomla - относительно нашего компонента

После создания каталогов создадим пустые файлы:

  • access.xml - файл прав доступа для компонента для разных категорий пользователей
  • config.xml - файл всех параметров нашего компонента
  • controller.php - файл главного контроллера административной части
  • index.html - индексный файл, который предотвратит отрисовку содержимого каталога, если умный пользователь напрямую пропишет путь к админ-каталогу компонента
  • megashop.php - "входная" точка админ-части компонента. Его Joomla вызовет в первую очередь, когда мы будем обращаться через админку к компоненту

Созданные каталоги и файлы выглядят у меня вот так:

Создание файлов и каталогов для frontend-части компонента

Теперь переходим снова на уровень выше и заходим в созданный нами в начале каталог site. Там потребуется создать каталоги и файлы:

  • css - для хранения файлов CSS-стилей, предназначенных для отрисовки компонента на сайте. Это все стили, которые и будут формировать внешний "облик" компонента - то, что увидит пользователь сайта.
  • js - сюда будем помещать все JavaScript-файлы скриптов, jQuery-библиотеки, плагины jQuery и т.д., словом всё, что относится к скриптам. Они будут выполнять всю динамическую логику на стороне браузера, когда пользователь будет работать с частями компонента на сайте.
  • language - сюда поместим файлы локализации - с сообщениями, которые будут встречаться в нашем компоненте.
  • models - здесь будут храниться файлы моделей для frontend-части компонента
  • views - тут будут размещены файлы представлений, которые отрисуют разные части нашего компонента на сайте
  • controller.php - файл главного контроллера для frontend-части
  • index.html - индексный файл, который предотвратит отрисовку содержимого каталога, если умный пользователь напрямую пропишет путь к frontend-каталогу компонента
  • megashop.php - "входная" точка frontend-части компонента. С неё всегда начинается исполнение компонента, когда пользователь работает с частями компонента на сайте Joomla

У меня после создания всего вышеперечисленного вышло вот такое:

Создание каталога изображений - media/images

Снова выходим на уровень "вверх" и переходим к созданному каталогу media . Внутри него потребуется создать вложенный каталог images и пустой файл index.html. Получится следующее:

На этом этапе мы создали почти все основные каталоги и самые главные файлы компонента. Наполнение каталогов (например models , views и т.д.) будет осуществляться дальше по ходу текста статьи. Мне хотелось, чтобы мы вместе прошли этап создания всей файловой структуры компонента, чтобы далее, когда я буду ссылаться на какой-то файл, вам уже было понятно, где его создавать и редактировать.

Кодировка файлов

На данный момент, как вы заметили, мы создали просто "заглушки" - пустые файлы. Наполнять мы их будем позже. Но во избежание дальнеших проблем с кракозябрами я сразу хочу сказать вам, в какой кодировке вы должны набирать код всех классов и примеров, которые будут встречаться - это кодировка UTF-8 . Joomla является мультиязычной системой, т.е. CMS системой, поддерживающей множество языков - вплоть до китайского с его иероглифами. Кодировка UTF-8 (в отличие например от windows-1251) способна поддерживать наборы языковых символов, встречающихся во всех странах мира. Для того, чтобы явно указать кодировку, достаточно установить любой редактор кода (например, Notepad++). Лично я пользуюсь очень хорошим редактором EditPlus (он платный), однако вам подойдет любой, поддерживающий сохранение файлов в кодировке UTF-8

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



© 2024
maccase.ru - Android. Бренды. Железо. Новости