Перейти к содержанию

Plugin Tutorial/Руководство по плагинам?


Рекомендуемые сообщения

Всем привет,

Кто-нибудь захочет создать модель / пример учебника о том, как создать плагин IPS, единственной целью которого является замена кода файла?

У меня уже есть все инструменты разработчика и доступ к «центру разработчиков», но я не уверен, как создать такой «крючок/hook».

Я хотел бы немного узнать об этом.

Спасибо!!

Изменено пользователем BlackShot
Ссылка на комментарий
Поделиться на другие сайты

  • BlackShot изменил название на Plugin Tutorial/Руководство по плагинам?

Ознакомься сперва с созданием Приложения, легче будет 😃

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

15 hours ago, SoulRainr said:

Ознакомься сперва с созданием Приложения, легче будет 😃

Не сложнее ли сделать Приложения вместо плагина? 😬

15 hours ago, M4FIA_RaGE said:

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

Было бы здорово изучить основы из простого урока.

Изменено пользователем BlackShot
Ссылка на комментарий
Поделиться на другие сайты

 

7 минут назад, BlackShot сказал:

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

Весь ISP построен на классах, поэтому ваша задача найти файл, который отвечает за исполнение функции, которую вы хотите изменить/заменить. 

Например, вы хотите изменить что-то в логике галереи при показе изображения. После недолгих поисков вы найдете файл modules/front/view.php и в нем функцию manage(), которая отвечает за показ изображения.

Теперь надо сказать инструменту разработчика, какой класс вы хотите изменить. Смотрим в первые строки файла view.php и видим: 

namespace IPS\downloads\modules\front\downloads; - нашли первую часть головоломки.

Теперь смотрим ниже - class _view extends \IPS\Content\Controller - вторая часть головоломки. Убираем '_', получаем полное имя класса

IPS\downloads\modules\front\downloads\view

Отлично, класс найден. Теперь идем в инструменты разработчика на созданном нами плагине, закладка hooks, нажимаем create hook и заполняем поля как нам надо: 

Hook Type: Code plugin
Class to extenddownloads\modules\front\downloads\view (IPS\ уже есть)
Filename: downloadsViewHook

Жмем Save, если не ошиблись, то на экране появится наш новый хук, а в директории hooks плагина файл downloadsViewHook.php

Теперь надо кликнуть на карандаш и войти в режим редактирования хука. 

Слева список функций, которые мы может изменить нашим хуком, справа поле редактирования. Находим в начале списка функций manage() и один раз кликаем на ней. Справа в окне появляется шаблон нашего хука с новой функцией. Опа пока ничего не делает, просто вызывает родительскую функцию, но наш код уже работает. 

Теперь у вас есть два пути: вызвать родителя и потом добавить/изменить что-то в данных, которые он создал, либо удалить return parent::manage();, полностью скопировать код из оригинальной функции и отредактировать его. Первый путь, по мнению разработчиков движка, считается правильным, т.к. не изменяет родительский код и позволяет строить цепочки хуков, второй путь - путь джедая, вы берете на себя ответственность за то, что цепочки хуков к этому классу работать не будут и это будет единственный хук для этого класса. 

Выбираете свой путь, пишете свой код, радуетесь жизни.

 

Ссылка на комментарий
Поделиться на другие сайты

2 minutes ago, Desti said:

Hook Type: Code plugin
Class to extenddownloads\modules\front\downloads\view (IPS\ уже есть)
Filename: downloadsViewHook

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

Но уровень детализации ваших инструкций потрясающий !! Большое вам спасибо за это! Именно такие люди, как вы, поддерживают жизнь этого сообщества и мотивируют нас.

Если вы когда-нибудь сделаете простой плагин и захотите снимать / записывать его, сделайте это и отметьте меня! Я бы хотел увидеть, как происходит весь процесс!

Еще раз спасибо, дружище!! 😄

Ссылка на комментарий
Поделиться на другие сайты

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

Посмотрите youtube - "classes in php", там есть много хороших курсов.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...