Создание компонента Joomla с нуля. Часть 3. Создаем установочный файл
Установка Joomla компонентов в эту CMS штука тривиальная. Однако при создании упакованного установочного архива нужно помнить пару моментов.
Архив не должен быть вложенным, т.е. все необходимые для работы компонента файлы, должны лежать в корне. рассмотренные в предыдущих уроках файлы moy_component.php и moy_component.xml. При этом название самого архива не играет никакой роли. Это не как с кораблем Врунгеля, от того как вы компонент назовете, плавать по другому он не станет.
Немного оговорюсь. При создании одного расширения для Joomla, я не долго думая назвал его datetimepicker. Оказалось, что название было не занято, хотя ниша у этого названия была достаточно популярной. Поэтому, если вы все же делаете расширения для продажи, то подумайте над названием как следует. Тут яхта Врунгеля будет весьма уместна.
Вернемся к нашему компоненту. У нас есть архив. Теперь идем в админку joomla, расширения-установка расширений — выбрать файл. Если все прошло успешно, то компонент будет доступен по ссылке
Человеко понятные URL или как они называются в буржунете SEF Search Engine Friendly, разница в менталитете. Мы делаем ссылки для людей, а они для машин. Шучу. Все это, конечно, придумали не мы.
Как я уже упоминал ранее, если вы хотите обновить компонент, то для начала необходимо обновить файл xml а конкретно поле версии в нем. Иначе Joomla не обновит уже установленные файлы.
Компонент готов для дальнейших тестов и если вы не планируете дальше использовать его, то про архив можно забыть, и сразу же создавать файлы на сервере.
Если же вы хотите повторно использовать компонент в других сайтах, то его нужно будет упаковывать при каждом обновлении или в самом конце работы. тогда вы получите, этот процесс сродни созданию загрузочной флешки в старые добрые времена. Такая флешка всегда была под рукой и при необходимости, легко ставилась в новый компьютер. Так и тут. написав компонент один раз, его можно использовать не единожды
Источник статьи: http://xdan.ru/sozdanie-komponenta-joomla-s-nulja-part-3-sozdaem-ustanovochnij-fajl.html
J3.x:Developing создание MVC компонента/разработка базовых компонент
Материал из Joomla! Documentation
J3.x:Developing an MVC Component/ru == Примечания ==!Н!Этот учебник является частью Developing в создание MVC компонента для Joomla! 3.х: Учебное пособие. Вам рекомендуется прочитать предыдущие части учебника перед прочтением этой.
Если вы пользовались Joomla! перед чтением данного руководства вы заметили, что расширения устанавливаются, используя сжатый файл, содержащий все вещи, которые необходимы для установки и удаления.
Вы можете следовать ниже, чтобы создать компонент Hello World!, или вы можете напрямую загрузить архив
Вот несколько слайдов на основе этого документа, объясняющие, как создавать простые для продвижения компоненты на Joomla! .
!Н!в Joomla! Основная Справка Компонента
!Н!в Joomla! Продвинутая Справка Компонента
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/administrator/index.php. Для этого примера мы будем ориентироваться на localhost/joomla/administrator/index.php.!Н!Примечание — Вы должны увидеть сообщение, показывающее, что установка выполнена успешно.
Вы можете протестировать основные функции компонента, введя 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.
Источник статьи: http://docs.joomla.org/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component/ru
Разработка расширения для Joomla! 3.0 – начинаем разработку
Для того чтобы иметь хороший рабочий пример для статей на тему разработки компонента для Joomla! 3.0, я (David Hurley) выбрал вариант прохождения непосредственно по процессу написания реального расширения. Этот компонент будет доступен для обзора и загрузки с сопроводительного веб-сайта Lendr (сейчас сайт недоступен), на который я буду ссылаться в этой и будущих статьях. Моя цель – это написание полноценного компонента, а не примера вроде «Hello World», для того чтобы продемонстрировать ключевые моменты реальной разработки компонента.
Шаг 1: Опишите основную схему компонента
Первым делом мы должны создать общий обзор файлов, папок, таблиц базы данных и связанных полей. Для нашего компонента мы создадим следующую систему.
Детали компонента
Название: Lendr
Название компонента: com_lendr
Описание: Lendr – это компонент Joomla! 3.0 (использующий Bootstrap), который позволит пользователям создавать профиль, добавлять книги в коллекции своей библиотеки, просматривать библиотеки других пользователей, попросить книгу в долг, добавлять книги в списки желаемых (wishlist), а также подписываться на список ожидания определенной книги.
Основные функции
Новый компонент Lendr будет иметь следующий набор возможностей:
- Аккаунты пользователей / Профили
- Книги / Библиотеки для пользователей
- Списки для желаемых книг
- Одалживание / Заимствование книги
- Запросы на заимствование книги
- Списки ожиданий на уже заимствованные книги
Теперь мы должны написать базовую структуру необходимых нам файлов. Это точно не будет исчерпывающий список, и он, скорее всего, будет изменяться в процессе написания компонента. Однако, имея изначальную схему, мы сможем хоть как-то придерживаться нашего пути. Вот первоначальная схема ключевых файлов необходимых для Lendr:
Controllers | Models | Views | Tables | Misc. |
---|---|---|---|---|
Save List Add Edit Lend Delete Wish Review Request Default | Book Default Library Profile Review Waitlist Wishlist | Book Wishlist Library Profile Waitlist Review | Book Wishlist Library Waitlist Review | Install Router XML |
Основные файлы
Теперь, когда мы все выписали, мы начинаем создавать эти файлы в нашей структуре папок.
Шаг 2: Создайте файлы базы данных
Мы начинаем с создания файлов базы данных. Мы сохраняем эти файлы в папке таблиц, которая расположена во фронтэнде нашего компонента. Мы создаем все файлы, которые описали в нашей схеме. Вот один из этих фалов /components/com_lendr/site/tables/book.php :
В нашем случае файл таблицы содержит одну функцию конструктора. Эта функция описывает имя таблицы, которая связана с этим JTable файлом и также определяет поле первичного ключа book_id .
Во время создания этих таблиц целесообразно начать процесс создания скрипта install.mysql.sql, который будет использоваться при установке компонента из панели управления Joomla!. Вот так выглядит начало файла /administrator/components/com_lendr/admin/install.mysql.sql :
Мы будем продолжать добавлять информацию в этот файл по мере прохождения по процессу создания наших таблиц.
Шаг 3: Начните создание папок и файлов компонента
После создания таблицы базы данных мы создаем структуру файлов для нашего компонента. Ниже приведена базовая структура директорий:
Все эти файлы и папки важны, но не все они необходимы. Вскоре мы начнем работу с каждым из этих файлов и функциями, которые они содержат. По ходу действия мы выясним назначение каждого их них.
Шаг 4: Создайте файлы установки, точку входа, контроллеры и контроллеры представления
На этом шаге мы добавим контент в некоторые файлы. Сначала мы рассмотрим файлы установки, потом мы поработаем с контроллерами и, наконец, добавим наши контроллеры представлений.
Файлы установки
Файлы корневого уровня, это файлы, которые использует Joomla! во время установки компонента. Они расположены в папке вашего компонента com_lendr вне папок site и admin . Это XML-файл (или по другому его называют «манифест-файл») установки, который содержит в себе описание компонента, связанные файлы, меню и языковые файлы. Также это файл install.php , который содержит в себе некоторые функции, выполняющиеся во время установки. Название файла может быть любым, но ссылка на него должна быть четко указана в XML-файле. Эти функции не обязательно использовать, но они могут помочь в выполнении каких-то дополнительных действий во время установки компонента.
Первый блок деталей определяет информацию о компоненте. Эта информация отображается в Менеджере расширений Joomla! и также сохраняется в таблице расширений (#__extensions).
Этот блок говорит Joomla! где находятся SQL файлы компонента. Они выполняются во время установки для создания необходимых таблиц базы данных. Вы можете установить свой кодировку символов, а также тип драйвера.
Вы также можете определить блок uninstall со схожей структурой для определения SQL инструкций, которые необходимо выполнить при удалении компонента.
Этот блок определяет папки, которые будут установлены во фронт-энд компонента. Не обязательно указывать каждый файл, просто папки и файлы корневого уровня. По всем папкам будет выполнен рекрусивный поиск, и все файлы будут добавлены.
Источник статьи: http://cmscafe.ru/razrabotka/360-razrabotka-rasshireniya-dlya-joomla-3-0-nachinaem-razrabotku
Уроки по созданию компонентов для Joomla (Часть 1: создаем каркас компонента)
Сегодня начинаю серию практических уроков по созданию компонента для Joomla 2.5+
Для лучшего восприятия материала будем рассматривать процесс создания формы обратной связи.
Форма будет отправлять данные на указанный E-mail данные и будет сохранять архив отправленных сообщений в базу данных, которые можно будет удобно посмотреть через административную часть.
Данный урок будет создаваться под Joomla 3.x, но основные принципы создания в Joomla 2.5 точно такие же, отличаются только шаблоны вывода в административной части
Для создания каркаса компонента мы воспользуемся сервисом для создания компонентов .
Итак приступим к генерации компонента:
Заполняем основные данные компонента: В качестве названия компонента вводим «Форма обратной связи» В поле «Системное имя:» вводим например «form» | |
Переходим на вкладку «Таблицы» и добавляем одну табличку которую мы назовем form_messages | |
Переходим на вкладку «Пользовательская часть» Тут нам нужно добавить два вида:
| |
Теперь приступим к настройке видов. Сначала настроим вид «form» Нажимаем на кнопку настроить, и в появившемся всплывающем окне выбираем тип вида «Вид формы» . После этого появится дополнительное поле «Связать с таблицей» . В поле «Выбрать таблицу» из выпадающего списка выбираем созданную нами таблицу | |
Теперь настроим вид «result» а точнее настраивать не будем ) Так как мы будем выводить пустое сообщение то мы будем использовать для этого «Пустой вид» | |
Приступаем к конфигурировании административной части Выбираем закладку «Админка» и добавляем в него вид с названием «archive» | |
И настроим наш вид Выбираем тип вида «Вид с функциями редактирования» и прикрепляем табличку которую мы создали в закладке «Таблицы» В поле Связать с категорией: оставляем значение «НЕТ» |
При желании заполняем данные в языковых файлах и нажимаешь на кнопку Сформировать компонент
После чего вам будет предложено сохранить архив с каркасом компонента с таким содержимым:
Важно понимать что файлы из папки site после установки будут помещены в папку components и файлы из папки admin после установки будут помещены в папку administrator/components
У пользовательской части и административной части будут разные точки инициализации практически никак друг с другом не связанные!
В моделях пользовательской части можно использовать таблицы которые помещены в папку administrator/components/com_forms/tables/
Также в пользовательской части можно получать данный из настроек нашего компонента!
Полученный нами архив устанавливаем через менеджер расширений, и дальнейшую разработку мы будем проводить уже в установленной системе.
Источник статьи: http://inet-reklama.com/blog/joomla/uroki-po-sozdaniyu-komponentov-dlya-joomla-chast-1-sozdaem-karkas-komponenta.html
Разработка сайтов на Joomla, WordPress, Opencart и php. Разработка компонентов joomla, плагинов WordPress, Модулей Opencart
Практический урок по разработке компонента на joomla 3. Теорию затрагивать я не буду. Только практика.
Компонент каталог чего угодно на joomla 3. Назовем его katalog — Каталог товаров. Для joomla компонента нужно придумать английское название — чтобы можно было использовать в разработке.
Создадим структуру компонента с выводом панели управления в админке.
1. Стуктура компонента:
Создадим две папки site и admin и файл com_katalog.xml
Папка admin имеет содержимое:
2. Содержимое файла com_katalog.xml
(upgrade — позволит потом ставить повторно компонент не удаляя тот что установлен)
авторство
Copyright (C) 2009 Open Source Matters. All rights reserved.
2011
файлы папки site
language
controllers
helpers
js
css
models
views
images
controller.php
katalog.php
router.php
файлы папки admin
assets
controllers
models
elements
language
tables
helpers
images
views
katalog.php
access.xml
config.xml
controller.php
uninstall.sql
install.sql
ru-RU/ru-RU.com_katalog.ini
Создадим файл sql
Эти файлы у нас расположены в папке admin install.sql и uninstall.sql
в файл install.sql создадим запросы к созданию нужных нам таблицы в файл uninstall.sql запросы у к удалению этих таблиц — когда компонент будет удалятся.
Таблица товаров или записей нашего каталога файл install.sql
CREATE TABLE IF NOT EXISTS `#__katalog_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(300) NOT NULL, — заголовок товара
`content` text NOT NULL, — описание
`price` varchar(100) NOT NULL, — цена
`published` int(11) NOT NULL, — статус (опубликова или снят с публикации)
`images` varchar(300) DEFAULT NULL, — картинка
`ordering` int(11) NOT NULL, — сортировка
`alias` varchar(255) NOT NULL, — псевдоним
`meta_title` varchar(300) NOT NULL, -мета заголовок для страницы подробно записи
`meta_key` varchar(300) NOT NULL, -мета ключевые слова для страницы подробно записи
`meta_desc` varchar(300) NOT NULL, -мета описания для страницы подробно записи
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Эта таблица для привязки категория нашим товарам. 1 товар можно будет привязывать к нескольким категориям
CREATE TABLE IF NOT EXISTS `#__katalog_xref` (
`id` int(11) NOT NULL AUTO_INCREMENT,
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
И файл для удаления этих таблицы uninstall.sql
Далее нужно файлы точек вход в компонент
в папке admin и в папке site создадим файл katalog.php
эти файлы называются также как мы назвали свой компонент на английском языке.
Содержимое файла katalog.php в папке admin
Следующий обязательный файл controller.php
в предыдущем файле мы сразу указываем контроллер по умолчанию
$controller = JControllerLegacy::getInstance(‘katalog’); //контроллер
Создадим панель управления нашего компонента в админке