О проекте

Проект 9999p.ru создан для людей, ценящих время и средства. Он поможет вам создать качественный сайт за короткий срок и очень недорого!  Суть его - в разработке сайта на основе готовых решений, которые позволяет зарабатывать другим пользователям уже давно!

Преимущества

Преимущества такой разработки очевидны:

  1. Скорость внедрения
  2. Невысокая стоимость
  3. Высокое качество
  4. Ожидаемый результат

Все включено

В стоимость разработки сайта включены все необходимые операции разработки сайта:

  • Регистрация домена
  • Регистрация хостинга
  • Дизайн сайта
  • Верстка сайта
  • Система управления сайтом
  • Наполнение сайта
  • Публикация сайта в интернете
  • Добавление в поисковые системы

Выполненные работы

Мы создали для наших клиентов

И сейчас занимаемся разаботкой новых. Заказать сайт


Поддержка плагинов в компоненте

Введение

Системных событий в Joomla! 1,5 позволяет гибкий метод для компонентов, модулей и плагинов для связи с другими плагинами, следуя шаблону Observer. Эта модель является наиболее легко описать как простой механизм коммуникации. Основной предпосылкой является то, что ноль или более "наблюдателей" или "слушатель" зарегистрироваться в системе для определенных, известных событий. В определенный момент жизненного цикла приложения, "Коммуникатор" (в нашем случае компонент, модуль или плагин) пожаров события, передавая определенную информацию для всех наблюдателей. Наблюдатели могут действовать на информации, переданной им и необязательно возвращать результат обратно на коммуникатор.

Joomla! 1,5 наблюдателей Осуществление

Joomla! 1,5 реализует шаблон наблюдателей на глобальном уровне посредством JPlugin (наблюдатель) и JDispatcher (наблюдаемый) классов. Желающие получать уведомления о событиях, создаст подключаемый модуль, который расширяет класс JPlugin. Подклассы JPlugin автоматически зарегистрирует себя в глобальный класс JDispatcher когда их плагин в категории был загружен (подробнее об этом позже). Класс JDispatcher используется как механизм координирования, что получает от них события коммуникаторов и направляет их на слушателей, которые были загружены.

Зачем становиться Communicator

Там могут быть определенные периоды жизненного цикла компонента, когда было бы неплохо, чтобы предупредить других, что какое-либо действие имело место. Например, предположим, что у вас есть CD компонент библиотеки. Вы можете решить, что вы хотели бы, чтобы люди могли знать, когда новый диск был добавлен в библиотеку. В этом случае, вы могли бы документ, известный конкурс (onCdAddedToLibrary например) и в соответствующее время, "спусковым крючком" событий проходящих в информации о новом альбоме, который был добавлен в библиотеку. Все плагины, которые осуществили это событие получит уведомление с информацией и может обрабатывать его по своему усмотрению. Мгновенное общение!

Как стать Communicator

Поскольку все диспетчерского обрабатывается Joomla! ядра, это довольно легко стать коммуникатором. На самом деле это действительно просто вопрос загрузки определенного набора плагинов и призывая вызвать метод класса JDispatcher.

Вы можете удивиться, как знать, какой набор плагинов для загрузки. Ну, действительно, что до вас. Плагины, управляются на уровне группы, которая определена в плагина файл развертывания XML. Есть восемь предопределенных плагин группы и каждого подключаемого модуля в группе предназначена для обработки различных набора задач. Например, есть "поиск себя" Plug-в группе, которая предназначена для обработки и поиска "пользователь" плагин группы предназначены для обработки пользовательских конкретные функции, такие как добавление и удаление пользователей из Joomla! системы. Эти плагин группы загружается только когда они необходимы, а именно от коммуникатора. Таким образом, вы можете создать свой собственный плагин в группу и называют это все, что вы хотите. Потому что ваш компонент корректно, все слушатели будут точно знать, какой плагин в группе и событиях они должны быть для прослушивания.

Как запускать события

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

JPluginHelper::importPlugin( 'myplugingroup' );

Это позволит загрузить все включено плагинов, которые определили себя как часть вашей группы. Следующее, что вам нужно сделать, это получить экземпляр класса JDispatcher вот так:

$dispatcher =& JDispatcher::getInstance();

Отметьте две вещи здесь. Во-первых, мы используем GetInstance () метод, а не "new"", чтобы создать новый экземпляр. Это потому, что мы должны получить глобальный экземпляр Singleton объекта JDispatcher который содержит список всех плагинов. Во-вторых, мы используем = & построить, чтобы убедиться, что у нас есть ссылка на экземпляр JDispatcher а не копия. Конечно, это действительно только для PHP версии 4, но, поскольку вы хороший разработчик кросс-версии, вы позволите для PHP 4 пользователей.

Далее, нам необходимо, чтобы вызвать наше пользовательское событие:

$results = $dispatcher->trigger( 'onCdAddedToLibrary', array( &$artist, &$title ) );

Здесь мы вызвали события "onCdAddedToLibrary" и проходила в имени исполнителя и название трека. Все плагины будут получать эти параметры, обрабатывать их и при необходимости передавать обратно информацию. Вы можете обрабатывать эту информацию, как вам нравится.

Предостережения

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