API JoomGallery

Мы стараемся сделать наш компонент галереи полностью универсальным и совместимым с другими расширениям, которые написаны не нами. (например, Community Builder, AlphaUserPoints или JComments). Для некоторых популярных компонентов Мы уже разработали дополнительные аддоны, с помощью которых можно расширить стандартный функционал галереи. Скачать их можно тут, а здесь прочитать небольшие обзоры этих дополнений.

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

Если Вы решили писать собственные расширения для компонента галереи, то ниже Вы найдете полное описание JoomGallery API. Изучение уже существующих расширений так же поможет Вам в Вашем развитии.

API JoomGallery делится на три основных направления:

  • Интерфейс класса
    Интерфейс класса предлагает — когда-то встроен в Ваши расширения — много полезных функций, чтобы «общаться» с галереей и запрашивать информацию для вывода изображений.
  • Позиции модулей
    Внутри компонента JoomGallery были встроены несколько позиций для модулей, которые можно использовать как позиции модулей шаблона сайта. Кроме того, можно создавать и новые позиции.
  • Плагины
    Для различных задач или при просмотре информации, галерея взаимодействует с плагинами, которые влияют на работу системы.

Интерфейс класса

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

$file = JPATH_ROOT.DS.'components'.DS.'com_joomgallery'.DS.'interface.php';
if(!file_exists($file))
{
  JError::raiseError(500, 'JoomGallery seems not to be installed');
}
else
{
  require_once $file;
  $interface = new JoomInterface();
}

Переменная ‘$interface’ теперь содержит объект интерфейса (при условии, что компонент JoomGallery установлен).

Теперь Вы сможете пользоваться функцией интерфейса. Например, так:

$interface->getPageHeader();

или так, если нужно будет вернуть функцию:

$images = $interface->getPicsOfUser($userid);

В функции ‘getPageHeader’ будет важно, если ваше расширение должно отобразить изображение и Вы хотите использовать стиль определения галереи, потому что загружаются CSS файлы галереи JoomGallery. Пожалуйста, посмотрите на собственный интерфейс класса галереи (‘components/com_joomgallery/interface.php’). Там есть описание в заголовке каждой функции, в котором описано, что эта функция делает, что она возвращает и в каких параметрах нуждается.

в этот момент только функция ‘addConfig()’ должна быть указана дополнительно. С этой опцией Вы сможете настроить интерфейс. Например, Вы можете определить метод, который будет использоваться, чтобы открывать изображения:

$interface->addConfig('openimage', 6);

Номер 6 означает Slimbox, а остальные значения описаны ниже:

0 => Стандартный режим отображения
1 => Новое окно
2 => JavaScript окно
3 => DHTML контейнер
5 => Thickbox3
6 => Slimbox
12 => дополнительные плагины

Если ‘openimage’ не выбран, то будет использоваться параметр из менеджера настроек галереи (это отображается на вкладке «Вид категорий» >> «Общие настройки»).

Дополнительные функции, например, ‘group’, ‘limit’ or ‘type’.

Позиции модулей

Для позиций модулей в галерее, есть отдельная статья в документации, которую Вы можете найти здесь: Позиции модулей.

Вы так же можете добавить свою собственную позицию модулей в любом месте галереи, используя следующий код:

<?php $this->loadModules('positionname'); ?>

С этим параметром, новые позиции модулей будут использоваться с тем же самым суффиксом класса модуля, как уже созданные ранее. Пожалуйста, обратите внимание, что Вы должны указать префикс ‘jg_’ в менеджере модулей    вместе с позицией (‘jg_positionname’), но не используйте его в вызове функции.

Плагин

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

Конечно, Вы можете написать плагин, который будет использовать интерфейс класса, как, например, содержание плагина ‘JoomPlu’.

В этом разделе документации по API мы хотим сосредоточится на плагинах ‘joomgallery’, которые взаимодействуют с галереей и сторонними компонентами.

Так что если Вы хотите создать плагин, который будет влиять на галерею, Вам нужно вставить код элемента ‘install’ в файл XML:

<install version="1.5" type="plugin" group="joomgallery" method="upgrade">

Для общих настроек плагина посмотрите на остальные плагины для этого компонента, чтобы понять принцип их работы.

Ниже написан список плагинов, с которыми может взаимодействовать компонент галереи JoomGallery:

  • onJoomBeforeComment
  • onJoomAfterComment
  • onJoomBeforeUpload
  • onJoomAfterUpload
  • onJoomBeforeVote
  • onJoomAfterVote
  • onJoomBeforeSendMessage
  • onJoomAfterAddFavourite
  • onJoomAfterRemoveFavourite
  • onJoomAfterClearFavourites
  • onJoomAfterDisplayThumb
  • onJoomAfterDisplayCatThumb
  • onJoomAfterSend2Friend
  • onJoomAfterTag
  • onJoomDisplayIcons
  • onJoomDisplayUser
  • onJoomGetCaptcha
  • onJoomCheckCaptcha
  • onJoomGetLastComments
  • onJoomGetSmileys
  • onJoomOpenImage
  • onJoomSearch

onJoomBeforeComment

Описание:

  • Это событие запускается перед сохранением предыдущего комментария (при условии, что компонент JoomGallery использует собственную среду для комментирования).

Параметр:

  • Объект, который содержит данные отправленного комментария (этот объект может быть изменен, потому что ссылка передается):
    $comment->cmtpic    => 'ID изображения, которое комментируют'
    $comment->cmtip     => 'IP адрес пользователя, оставившего комментарий'
    $comment->userid    => 'ID пользователя (0 - если гость)'
    $comment->cmtname   => 'Имя посетителя (только если настроен гость)'
    $comment->cmttext   => 'Текст комментария'
    $comment->cmtdate   => 'Текущий момент времени'
    $comment->published => '1, если комментарий опубликован, 0 - если нет'
    $comment->approved  => '0, если комментарий должен быть утвержден, 0 - если нет'

Возвращаемое значение:

  • При возвращении параметра false (ложь), комментарий не будет опубликован. В противном случае вернется параметр true.

onJoomAfterComment

Описание:

  • Это событие происходит после сохранения прошлого комментария (при условии, что компонент JoomGallery использует собственную среду для комментирования)

Параметр:

  • Объект, который содержит данные отправленного комментария:
    $comment->cmtpic    => 'ID изображения, которое комментируют'
    $comment->cmtip     => 'IP адрес пользователя, оставившего комментарий'
    $comment->userid    => 'ID пользователя (0 - если гость)'
    $comment->cmtname   => 'Имя посетителя (только если настроен гость)'
    $comment->cmttext   => 'Текст комментария'
    $comment->cmtdate   => 'Текущий момент времени'
    $comment->published => '1, если комментарий опубликован, 0 - если нет'
    $comment->approved  => '0, если комментарий должен быть утвержден, 0 - если нет'

onJoomBeforeUpload

Описание:

  • Это событие происходит перед загрузкой изображения через лицевую часть сайта.

Параметр:

  • нет

Возвращаемое значение::

  • При возвращении параметра false, загрузка изображения не произойдет. В противном случае вернется параметр true.

onJoomAfterUpload

Описание:

  • Это событие происходит после загрузки изображения через лицевую часть сайта и сохранения своих данных.

Параметр:

  • Объект, который содержит данные нового изображения:
    $image->id          => 'ID изображения'
    $image->imgtitle    => 'Заголовок изображения'
    $image->imgtext     => 'Описание изображения'
    $image->owner       => 'ID зарегистрированного пользователя (загрузчика)'
    $image->cmtdate     => 'Текущий момент времени'
    $image->published   => '1, если изображение опубликовано, 0 - если нет'
    $image->approved    => '0, если изображение должно быть утверждено, 0 - если нет'
    $image->imgfilename => 'Имя нового файла изображения'
    $image->ordering    => 'Номер заказа изображения'

onJoomBeforeVote

Описание:

  • Это событие запускается перед сохранением рейтинга (голосования).

Параметр:

  • Объект, который содержит данные рейтинга (голосования):
    $vote->picid     => 'ID изображения, которое имеет рейтинг'
    $vote->userid    => 'ID зарегистрированного пользователя (0 - если гость)'
    vote->userip     => 'IP адрес посетителя, который проголосовал за изображение'
    $vote->datevoted => 'Текущий момент времени'
    $vote->vote      => 'Количество рейтинга (голосов)'

    [Содержание этого объекта, вероятно, скоро изменится].

  • Количество рейтинга (голосов) [Этот параметр будет скоро удален]

Возвращаемое значение:

  • При возвращении параметра false, сохранения рейтинга не произойдет. В противном случае вернется параметр true.

onJoomAfterVote

Описание:

  • Это событие запускается после сохранения голосования (рейтинга).

Параметр:

  • Объект, который содержит данные рейтинга (голосования):
    $interface->getPageHeader();

    [Содержание этого объекта, вероятно, скоро изменится].

  • Количество рейтинга (голосов) [Этот параметр будет скоро удален]

onJoomBeforeSendMessage

Описание:

  • Это событие запускается перед тем, как сообщение было отправлено в галерее (не e-mail).

Параметр:

  • Массив, который содержит данные, отправленные в сообщении:
    $interface->getPageHeader();

Возвращаемое значение:

  • При возвращении параметра false, сохранения рейтинга предотвращается. В противном случае вернется параметр true.

onJoomAfterAddFavourite

Описание:

  • Это событие происходит после того, как пользователь добавил изображение в избранное.

Параметр:

  • ID добавленного изображения.

onJoomAfterRemoveFavourite

Описание:

  • Это событие происходит после того, как пользователь удалил изображение из избранных.

Параметр:

  • ID удаляемого изображения.

onJoomAfterClearFavourites

Описание:

  • Это событие выполняется после того, как пользователь очистил список избранных изображений.

Параметр:

  • нет

onJoomAfterDisplayThumb

Описание:

  • Это событие вызывается при просмотре. Возвращаемое значение (должно быть строкой) будет отображать рядом с собой маленькую картинку внутри тега ‘ul’.

Параметр:

  • ID маленького изображения.

Возвращаемое значение:

  • Строка, которая будет отображать рядом с собой маленькую картинку, отображенную в теге ‘ul’.

onJoomAfterDisplayCatThumb

Описание:

  • Это событие вызывается при просмотре. Возвращаемое значение (должно быть строкой) будет отображать рядом с собой маленькую картинку в под-категории внутри тега ‘ul’.

Параметр:

  • ID категории с маленькими изображениями.

Возвращаемое значение:

  • Строка, которая будет отображать рядом с собой маленькую картинку, отображенную в теге ‘ul’.

onJoomAfterSend2Friend

Описание:

  • Это событие будет запущено после отправки e-mail через сервис send2friend при подробном просмотре изображения.

Параметр:

  • Массив, который содержит данные, отправленные по e-mail:
    $interface->getPageHeader();

onJoomAfterTag

Описание:

  • Это событие запускается после сохранения тега изображения.

Параметр:

  • Объект, который содержит данные, хранящие имя тега:
    $interface->getPageHeader();

onJoomDisplayIcons

Описание:

  • Это событие вызывается при просмотре. Возвращаемое значение (должно быть строкой) и будет отображаться рядом с миниатюрами и при подробном просмотре в области значков.

Параметр:

  • ID изображения уменьшенного или при полном просмотре.

Возвращаемое значение:

  • Строка, которая будет отображаться рядом с миниатюрой изображения или при подробном просмотра в области значков (например, значок «Звезда» при избранных или значок «Диск» при загрузке).

onJoomDisplayUser

Описание:

  • Это событие происходит всякий раз, когда имя пользователя отображается в галерее. Таким образом, можно связать имя пользователя с его профилем в другом компоненте с помощью плагина.

Параметр:

  • ID пользователя.
  • Значение верно, если  в настройках галереи стоит отображение реального имени вместо логина.
  • Контекст, в котором будет отображаться имя пользователя (например, комментарий или ячейка с именем).

Возвращаемое значение:

  • Строка, которая будет отображаться вместо имени пользователя. Это может быть, например, связанное имя пользователя.

onJoomGetCaptcha

Описание:

  • Это событие инициируется, если Captcha может быть использована для проверки в галерее, что пользователь является человеком (на данный момент только для комментирования изображений). Строка, в которой отображается капча, должна быть возвращена.

Параметр:

  • нет

Возвращаемое значение:

  • Строка, в которой отображается капча, которая должна быть использована для защиты от спама.

onJoomCheckCaptcha

Описание:

  • Это событие инициируется, если Captcha может быть использована для проверки в галерее, что пользователь является человеком (на данный момент только для комментирования изображений). Для этого плагины, использующие это событие, должны возвращать массив, который содержит результат проверки (в отличие от событий «onJoomGetCaptcha», который используется для отображения капчи).

Параметр:

  • нет

Возвращаемое значение:

  • Массив с действительным ключом, который имеет либо истинное, либо ложное значение . Если действительное значение является ‘false’ то значение выдаст сообщение об ошибке, которое будет отображаться на экране.

onJoomGetLastComments

Описание:

  • Это событие инициируется, если компонент галереи запрашивает определенное количество последних добавленных комментариев. Галерея позволяет подключать в этом месте сторонние компоненты комментирования.

Параметр:

  • Массив объектов, которые должны быть заполнены.
  • Количество комментариев, которое должно быть возвращено.

onJoomGetSmileys

Описание:

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

Параметр:

  • Массив, который содержит уже полученные смайлики.

onJoomOpenImage

Описание:

  • Это событие инициируется, когда нужно открыть изображение, так же можно открыть с помощью плагинов.

Параметр:

  • Строка, в которой плагин должен вписать новую ссылку на изображение.
  • Объект, который содержит данные изображения.
  • Строка, которая содержит URL на изображения, которые должны быть открыты.
  • Строка, которая содержит имя группы изображения, которое выбрано.
  • Строка, которая содержит тип изображения, который должен быть открыт (‘большое’, ‘обычное’ и ‘оригинальное’).

onJoomSearch

Описание:

  • Это событие происходит, если кто-то пользуется поиском по галерее [оно обладает ещё не полным функционалом].

Параметр:

  • Строка, которая была введена для поиска.

Возвращаемое значение:

  • Массив, который содержит дополнительные параметры для поиска.

4 комментариев на “API JoomGallery

  1. а мне пришлось мужа просить чтоб помог, я не осилила такую длинную инструкцию

  2. а че до сих пор не упростили в джумле все это? в других смс намного проще уже давно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *