О проекте

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

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

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

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

Все включено

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

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

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

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

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


Разработчиков плагинов Обзор

Обзор

Новое в Joomla! 1,5 класс JPlugin. В усилий для перемещения Joomla! в сторону более эффективного объектно-ориентированного программирования новый плагин система была разработана. Плагины наблюдателя классов, которые придают глобальный объект диспетчера событий в Joomla! ядро. Что это означает на английском языке? Это означает, что либо Joomla! основной или третий компонент партии или модуля может вызвать событие, которое причин одного или нескольких модулей для выполнения некоторого кода. Разве это не то же самое, мамбот? Нет, не совсем. Он похож на основной принцип в том, что оба плагина и мамбот вызываются события, и оба кода выполнять. Один из вопросов, с мамбот том, что она требует от своих функций должны быть объявлены в глобальном масштабе. С JPlugin является класс, методы, которые обрабатывают события могут поделиться переменных и частные вспомогательные методы, а также, что делает для гораздо чище системы для обработки событий.

Осуществление

Осуществление системы плагинов является то, что по отношению к наблюдателю картина. Она состоит из двух частей, наблюдателя класса, JPlugin, и наблюдаемая класса, JEventDispatcher.

 

/**
* JPlugin Class
*
* @package Joomla.Framework
* @subpackage Application
* @since 1.5
*/

class JPlugin extends JObserver
{
/**
* Constructor
*
* For php4 compatability we must not use the __constructor as a constructor for plugins
* because func_get_args ( void ) returns a copy of all passed arguments NOT references.
* This causes problems with cross-referencing necessary for the observer design pattern.
*
* @param object $subject The object to observe
* @since 1.5
*/

function JPlugin(& $subject)
{
parent::__construct($subject);
}

/**
* Method to map events to handler methods
*
* @access public
* @param array Arguments
* @return mixed Routine return value
* @since 1.1
*/

function update( &$args )
{
/*
* First lets get the event from the argument array. Next we will unset the
* event argument as it has no bearing on the method to handle the event.
*/

$event = $args['event'];
unset($args['event']);

/*
* If the method to handle an event exists, call it and return its return
* value. If it does not exist, return a boolean true.
*/

if (method_exists($this, $event)) {
return call_user_func_array(array($this, $event), $args);
} else {
return true;
}
}
}


Есть две важные вещи, что делает этот класс работы.

Одним из них является конструктор, который получает на самом деле выполняется родительский класс этого класса JobServer. Вот что происходит в конструкторе:

//Регистрация наблюдателей ($this), поэтому мы можем быть уведомление
$subject->attach($this);

// Установить предметом для наблюдения
$this->_subject = &$subject;

Это придает JPlugin для наблюдаемого объекта. В случае плагинов, они наблюдают объект JEventDispatcher.

Вторая важная вещь, чтобы отметить это способ обновления. Метод обновления передается массив из триггера. Массив содержит два элемента - события и аргументы. После обновления метод получает этот массив он извлекает события и удаляет его из аргументов. Затем она вызывает метод "событие" название (передачи аргументов массив) и возвращает свой ответ.

Третья сторона использования

 

<?php
/**
* @version $Id: $
* @package
* @subpackage
* @copyright
* @license
*/


jimport('joomla.plugin');


/**
* Example Plugin
*
* @author
* @package
* @subpackage
* @since
*/

class ExamplePlugin extends JPlugin
{
/**
* Constructor
*
* @param object $subject The object to observe
* @since 1.1
*/

function ExamplePlugin( &$subject ) {
parent::__construct( $subject );
}

/**
* This method handles the onIncrement event. It takes an integer input and
* increments its value.
*
* @access public
* @param int $input An integer to increment
* @return int Incremented integer
* @since 1.1
*/

function onIncrement($input)
{
return $input++;
}
}
?>

Как вы можете видеть, это довольно просто создать JPlugin. Это действительно так просто, как создание класса, который расширяет JPlugin и писать метод для каждого события вы хотите плагин для обработки.