Posted 21 августа, 20213 yr comment_171782 Всем привет, Кто-нибудь захочет создать модель / пример учебника о том, как создать плагин IPS, единственной целью которого является замена кода файла? У меня уже есть все инструменты разработчика и доступ к «центру разработчиков», но я не уверен, как создать такой «крючок/hook». Я хотел бы немного узнать об этом. Спасибо!! Edited 21 августа, 20213 yr by BlackShot Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/ Share on other sites Больше вариантов
21 августа, 20213 yr comment_171783 Ознакомься сперва с созданием Приложения, легче будет 😃 Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/?&do=findComment&comment=171783 Share on other sites Больше вариантов
21 августа, 20213 yr comment_171784 This link should help: https://invisioncommunity.com/developers/docs/general/ Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/?&do=findComment&comment=171784 Share on other sites Больше вариантов
21 августа, 20213 yr Author comment_171792 15 hours ago, SoulRainr said: Ознакомься сперва с созданием Приложения, легче будет 😃 Не сложнее ли сделать Приложения вместо плагина? 😬 15 hours ago, M4FIA_RaGE said: This link should help: https://invisioncommunity.com/developers/docs/general/ Спасибо. Да, я это уже знал. Я знаю, как использовать инструменты разработчика для создания плагина, я просто не знаю, что делать после этого - например, создать простой плагин для замены кода в одном из файлов IPS. Было бы здорово изучить основы из простого урока. Edited 21 августа, 20213 yr by BlackShot Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/?&do=findComment&comment=171792 Share on other sites Больше вариантов
21 августа, 20213 yr comment_171795 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 pluginClass to extend: downloads\modules\front\downloads\view (IPS\ уже есть) Filename: downloadsViewHook Жмем Save, если не ошиблись, то на экране появится наш новый хук, а в директории hooks плагина файл downloadsViewHook.php Теперь надо кликнуть на карандаш и войти в режим редактирования хука. Слева список функций, которые мы может изменить нашим хуком, справа поле редактирования. Находим в начале списка функций manage() и один раз кликаем на ней. Справа в окне появляется шаблон нашего хука с новой функцией. Опа пока ничего не делает, просто вызывает родительскую функцию, но наш код уже работает. Теперь у вас есть два пути: вызвать родителя и потом добавить/изменить что-то в данных, которые он создал, либо удалить return parent::manage();, полностью скопировать код из оригинальной функции и отредактировать его. Первый путь, по мнению разработчиков движка, считается правильным, т.к. не изменяет родительский код и позволяет строить цепочки хуков, второй путь - путь джедая, вы берете на себя ответственность за то, что цепочки хуков к этому классу работать не будут и это будет единственный хук для этого класса. Выбираете свой путь, пишете свой код, радуетесь жизни. Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/?&do=findComment&comment=171795 Share on other sites Больше вариантов
21 августа, 20213 yr Author comment_171797 2 minutes ago, Desti said: Hook Type: Code pluginClass to extend: downloads\modules\front\downloads\view (IPS\ уже есть) Filename: downloadsViewHook Я смог добраться до этой части, но остальное для меня все еще немного сложно. Мне не хватает навыков программирования, а обучение с нуля кажется трудным даже для такой простой задачи, как создание небольшого плагина. Но уровень детализации ваших инструкций потрясающий !! Большое вам спасибо за это! Именно такие люди, как вы, поддерживают жизнь этого сообщества и мотивируют нас. Если вы когда-нибудь сделаете простой плагин и захотите снимать / записывать его, сделайте это и отметьте меня! Я бы хотел увидеть, как происходит весь процесс! Еще раз спасибо, дружище!! 😄 Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/?&do=findComment&comment=171797 Share on other sites Больше вариантов
21 августа, 20213 yr comment_171799 Для начала вам надо разобраться с классами в php, без этого будет невозможно понять устройство и функционирование движка форума. А поскольку движок еще и глючный, иногда будет очень сложно понять, что вообще происходит Посмотрите youtube - "classes in php", там есть много хороших курсов. Link to comment https://ipbmafia.ru/topic/23438-plugin-tutorialrukovodstvo-po-plaginam/?&do=findComment&comment=171799 Share on other sites Больше вариантов
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.