Поиск сообщества
Показаны результаты для тегов 'хук'.
Найдено: 2 результата
-
Хуки тем позволяют изменять шаблоны HTML. Шаблоны HTML в Invision Community структурированы по группам, месту расположения и приложениям. У каждого приложения по меньшей мере 3 местоположения: front (шаблоны используемые для фронт-энда) admin (шаблоны используемые для администратора) global (шаблоны которые используются для обоих) Хотя некоторые приложения могут иметь больше, для конкретных целей (например, приложение core имеет другое место для установки/обновления - setup). Каждое местоположение может содержать любое количество групп - группы являются наборами шаблонов, например, приложение core имеет одну группу (в front) называется messaging, который содержит все шаблоны для создания и просмотра личных бесед. Один хук тем действует в одной группе шаблонов. Вы можете создать хуки тем в Plugin Developer Center. При создании есть два способа использования хуков тем - каждый из которых работает по-разному и поэтому будет уместен при различных потребностях. CSS селекторы При редактировании ваших хуков тем в Plugin Developer Center, будет отображаться панель, показывающая все шаблоны в этой группе: При выборе любого шаблона появляется интерфейс с вкладками, показывающий изменения, которые ваш хук делает в этом шаблоне, и позволяет создавать другие изменения. Чтобы модифицировать выбранный шаблон, вам нужен CSS селектор - вы можете использовать любой из селекторов, поддерживаемых JQuery (стоит отметить, что jQuery не участвует в создании вашего хука, это просто чтобы показать, что поддерживаемые селекторы одинаковы). Самый простой способ выбрать селектор - использовать кнопку "Select Element", которая запустит модель отображения шаблона и позволит просто выбрать элемент, который вы хотите использовать: Важно отметить, что при использовании функции "Select Element", используется наиболее специфический селектор CSS для выбранного элемента, однако, селектор может также соответствовать другим элементам, так что вам, возможно, потребуется настроить его. При работе с контентом, в дополнение к переменным, которые доступны для шаблона (которые показаны рядом с редактором) вы также можете использовать любые переменные, доступные в этом пункте в шаблоне (например, если вы вставили код в цикл foreach, вы можете использовать переменные, созданные им). Вы можете также использовать логику шаблонов и теги шаблонов Invision Community. Режим PHP Под капотом, каждый шаблон группы скомпилирован в PHP класс, с помощью метода для каждого шаблона. Вы можете расширить этот класс вручную отредактировав файл, который будет создан в /plugins/<your plugin>/hooks. Важно отметить, что при использовании этого режима, когда вы перегружаете группы скомпилированных шаблонов, возвращаемое значение будет в виде HTML-кода, который будет отображаться, без какой-либо логики шаблонов или тэгов шаблона. Все те же соображения, что и для хуков кода (см "Важные моменты которые нужно помнить при создании хуков") также применимы и здесь.
-
Хуки кода позволяют расширить любой класс в Invision Community, или функционал установленного приложения. Вы можете создавать хуки кода в Plugin Developer Center. Как вы могли заметить, в коде классы при определении начинаются с подчеркивания, а вызывается без него. Например, в /system/Member/Member.php определение следующее: namespace IPS; class _Member extends \IPS\Patterns\ActiveRecord Уже в коде класс вызывается так \IPS\Member а не \IPS\_Member. При создании хука определите класс который вы хотите расширить без подчеркивания. Когда вы редактируете код будет следующая надпись "extends _HOOK_CLASS_" –это из-за того что класс который он расширяет может варьироваться, если несколько хуков перегружают один и тот же класс. Вы можете редактировать хуки как в Plugin Developer Center так и вручную, путем изменения файла, находящегося в /plugins/<ваш_плагин>/hooks. Использовать Plugin Developer Center удобнее так как все свойства и методы класса которые вы расширяете показаны в боковой панели и щелчок на любой из них вставит выражение в редактор. Важные моменты которые нужно помнить при создании хуков: Первая строчка в классе, который вы создаете, должна быть такой: //<?php – это если вы хотите править файл вручную в редакторе, чтобы подсветка синтаксиса работала верно, так или иначе тэг <?php не должен применяться без комментариев. Ваш хук определится как расширение _HOOK_CLASS_ - синтаксически это неверно, но это нельзя менять. Система сама изменит это на нужный класс который может изменяться в зависимости от того сколько на нем хуков. Если ваш код создает PHP ошибку или выдает RuntimeException, ваш хук будет проигнорирован и система вернется к исходному классу. Если вы хотите намеренно создать исключение, добавьте объект соответствующего класса в исключение. При переопределении метода НЕОБХОДИМО вызвать родительский метод. Идеально если вы вставите его в начало или конец метода. Это необходимо для работы нескольких хуков на один метод. При переопределении метода, вам НЕ СЛЕДУЕТ копировать код оригинального метода в ваш хук. Необходимо убедиться, что ваш хук не будет конфликтовать с багфиксами или изменениями оригинального класса в будущих версиях. Кроме того, это противоречит условиям лицензии Invision Community на инъекции в него кастомного кода.