Перейти к содержанию
  1. Расширения в Invision Community

    Одним из основных путей реализации cross-application интеграции с Invision Community является использование расширений. Проще говоря, расширение необходимо для реализации конкретного функционала в определенных частях сайта. Например, есть расширение, которое позволяет указать приложению, каким образом его содержимое будет обрабатываться системой поиска, или позволяет построить элементы для отображения на странице "Изменить пользователя" в админцентре. Если у вашего приложения есть расширение, то оно будет автоматически подгружено в соответствующих местах.
    Создание расширений
    Расширения создаются в Центре разработчика в админцентре. Invision Community будет автоматически генерировать файл классов в соответствующем каталоге вашего приложения; вам будет предложено ввести имя класса для расширения при его создании.
    Каждое расширение требует различных методов, в зависимости от того, что делает расширение. Для получения дополнительной информации обратитесь к документации в исходных файлах в каталоге /extensions вашего приложения.
    Типы расширений
    /core AdvertisementLocations
    Позволяет определить новые рекламные места в вашем приложении. Announcements
    Облегчает контроль параметров объявлений внутри приложения (например, позволяя пользователю определять отдельные категории). BBCode
    Добавляет дополнительные теги BBCode для Invision Community, которые будет обрабатывать ваше приложение. Build
    Запуск дополнительного кода при построении приложения. BulkMail
    Позволяет приложению добавлять дополнительные теги замены для массовой рассылки. CommunityEnhancements
    Добавляет новые сторонние улучшения в разделе Расширения админцентра. ContactUs
    Добавление дополнительных полей для формы “Обратная связь” и обеспечение контроля над данными, отправляемыми из этой формы. ContentRouter
    Используется для указания элементов контента, используемых вашим приложением. CreateMenu
    Добавление новых записей в меню "+ Создать", в шапке сайта. Dashboard
    Добавление новых блоков в меню Панель управления вашего админцентра. EditorLocations
    Обработка прав на вложение, загруженного в редактор WYSIWYG в вашем приложении. EditorMedia
    Добавляет новые источники в  "Вставить медиа" в WYSIWYG редактор FileStorage
    Определяет типы файлов которые могут быть загружены вашим приложением. FrontNavigation
    Позволяет добавить вкладки и меню в панель навигации. GroupForm
    Позволяет определить настройки для добавления к форме настроек группы. GroupLimits
    Определяет, как групповые настройки обрабатываются для вторичных групп. IncomingEmail
    Определяет способы обработки входящей почты для вашего приложения. IpAddresses
    Указывает области в вашем приложении, где записываются IP-адреса. LiveSearch
    Добавляет поддержку живого поиска в админцентре для вашего приложения. MFAArea
    Определяет область, для защиты мультифакторной аутентификацией. MemberFilter
    Позволяет установить новые способы фильтрации пользователей (например в форме массовой рассылки). MemberForm
    Позволяет установить новые настройки в форме изменения информации о пользователе. MemberSync
    Выполняет пользовательский код, когда аккаунт пользователя создается, редактируется или удаляется. ModCp
    Добавляет области к панели модератора. ModCpMemberManagement
    Добавляет фильтры на страницу управления пользователем в Центре модератора. ModeratorPermissions
    Определяет новые права доступа модераторов. Notifications
    Определяет типы уведомлений, которые будет отправлять ваше приложение. OutputPlugins
    Определяет новые плагины тэгов шаблонов приложения которые будет использовать ваше приложение. Permissions
    Устанавливает группы разрешений для интеграции с вашим приложением Profile
    Добавляет новые области контента в профили пользователей. Queue
    Определяет фоновые задачи, необходимые для вашего приложения. Sitemap
    Добавляет поддержку карты сайта вашим приложением. Uninstall
    Указывает какой код должен быть выполнен при удалении вашего приложения. /nexus Item
    Позволяет продавать товары в Commerce.
  2. core/AdvertisementLocations

    Что делает расширение
    Расширение AdvertisingLocations позволяет вам определять местоположения и настройки для рекламных объявлений, чтобы вы могли вставлять рекламные объявления в определенных местах вашего приложения. Например, приложение Форумы использует это расширение для показа объявлений после первого сообщения в теме и в списке тем.
    Как использовать
    При создании нового экземпляра этого расширения приложения, вам нужно будет определить два метода (которые уже будут определены шаблонно, если вы используете Центр разработчика для создания расширения).
    /** * Get the locations and the additional settings * * @param array $settings Current setting values * @return array Array with two elements: 'locations' which should have keys as the location keys and values as the fields to toggle, and 'settings' which are additional fields to add to the form */ public function getSettings( $settings ) Метод getSettings принимает один параметр (массив) и должен вернуть массив с двумя элементами. Первый, с ключом 'locations', должен быть массивом с ключами, которые вы определили для расположения рекламных объявлений, и значения должны быть массивом ключей настроек для использования этих местоположений.
    Первый, с ключевыми «местоположениями», должен быть массивом с его ключами, которые являются определяющими вами ключами местоположения рекламы, а значениями являются массив ключей настройки для использования для местоположения. Второй элемент должен использовать ключ 'settings' и определять массив объектов помощника форм. Например:
    /** * Get the locations and the additional settings * * @param array $settings Current setting values * @return array Array with two elements: 'locations' which should have keys as the location keys and values as the fields to toggle, and 'settings' which are additional fields to add to the form */ public function getSettings( $settings ) { return array( 'locations' => array( 'ad_fluid_index_view' => array( 'ad_fluid_index_view_number', 'ad_fluid_index_view_repeat' ) ), 'settings' => array( new \IPS\Helpers\Form\Number( 'ad_fluid_index_view_number', ( isset( $settings['ad_fluid_index_view_number'] ) ) ? $settings['ad_fluid_index_view_number'] : 0, FALSE, array(), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('ad_fluid_index_view_number_suffix'), 'ad_fluid_index_view_number' ), new \IPS\Helpers\Form\Number( 'ad_fluid_index_view_repeat', ( isset( $settings['ad_fluid_index_view_repeat'] ) ) ? $settings['ad_fluid_index_view_repeat'] : 0, FALSE, array( 'unlimited' => -1 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('ad_fluid_index_view_repeat_suffix'), 'ad_fluid_index_view_repeat' ) ) ); } Второй метод в этом файле это parseSettings(), который является обратным вызовом, позволяющим настраивать значения параметров, которые сохраняются во время настройки администратором. Если настроек нет, этот метод должен просто вернуть пустой массив.
    /** * Return an array of setting values to store * * @param array $values Values from the form submission * @return array Array of setting key => value to store */ public function parseSettings( $values ) { return array( 'ad_fluid_index_view_number' => $values['ad_fluid_index_view_number'], 'ad_fluid_index_view_repeat' => $values['ad_fluid_index_view_repeat'] ); } Затем вы можете использовать рекламное объявление в отображении с использованием loadByLocation метода \IPS\core\Advertisement. Например:
    {{if $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_fluid_index_view' )}} {$advertisement|raw} {{endif}}  
×
×
  • Создать...

Важная информация

Используя наш сайт вы соглашаетесь с нашей Политикой конфиденциальности