Jump to content

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

Featured Replies

Всем привет,

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

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

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

Спасибо!!

Edited by BlackShot

Link to comment
https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/
Share on other sites
  • BlackShot changed the title to Plugin Tutorial/Руководство по плагинам?

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

15 hours ago, SoulRainr said:

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

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

15 hours ago, M4FIA_RaGE said:

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

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

Edited by 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", там есть много хороших курсов.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.