IP.Board:Образцы модификаций для 3.x.x

Материал из CSI

Перейти к: навигация, поиск

Данные примеры позволят наглядно объяснить некоторые параметры модификаций.

[править] Блок боковой панели

Используя этот пример, вы можете для себя создавать неограниченное количество блоков в боковой панели. Необходимо всего лишь заменять фразу CSOSideBarBlock001 на свою. Заменять нужно ВЕЗДЕ, где она встречается, даже в совмещённой с другими фразами.
Показать пример модификации "Блок боковой панели"
<?xml version="1.0" encoding="utf-8"?>
<hookexport>
	<hookdata>
		<config>
			<hook_name><![CDATA[НАЗВАНИЕ_МОДИФИКАЦИИ]]></hook_name> <!-- Название вашей модификации. Отображается на странице списка модификаций. -->
			<hook_desc><![CDATA[ОПИСАНИЕ_МОДИФИКАЦИИ]]></hook_desc> <!-- Описание вашей модификации. Отображается на странице списка модификаций. -->
			<hook_author><![CDATA[АВТОР]]></hook_author> <!-- Автор модификации. -->
			<hook_email><![CDATA[E-MAIL]]></hook_email> <!-- Адрес электронной почты автора модификации. -->
			<hook_website><![CDATA[САЙТ]]></hook_website> <!-- Сайт автора модификации. Пример: http://domain.com -->
			<hook_update_check/> <!-- Адрес на скрипт обновлений модификации. -->
			<hook_requirements><![CDATA[a:4:{s:20:"hook_ipb_version_min";i:0;s:20:"hook_ipb_version_max";i:0;s:20:"hook_php_version_min";s:0:"";s:20:"hook_php_version_max";s:0:"";}]]></hook_requirements>
			<hook_version_human>1.0.0</hook_version_human> <!-- Внешняя версия модификации. -->
			<hook_version_long>10000</hook_version_long> <!-- Внутренняя версия модификации. -->
			<hook_extra_data/>
			<hook_key>CSOSideBarBlock001</hook_key> <!-- Ключ модификации. Должен быть уникален для каждой модификации. -->
		</config>
	</hookdata>
	<hookfiles>
		<file>
			<hook_file_real>CSOSideBarBlock001.php</hook_file_real> <!-- Название файла, создаваемого движком при импорте модификации. Помещается в папку "hooks". -->
			<hook_type>templateHooks</hook_type> <!-- Тип модификации. -->
			<hook_classname>CSOSideBarBlock001</hook_classname> <!-- Название класса модификации. Он фигурирует в файле, создаваемого движком при импорте модификации. -->
			<hook_data><![CDATA[a:6:{s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:11:"skin_boards";s:12:"skinFunction";s:18:"boardIndexTemplate";s:4:"type";s:7:"foreach";s:2:"id";s:11:"side_blocks";s:8:"position";s:9:"outer.pre";}]]></hook_data>
			<hooks_source><![CDATA[<?php
class CSOSideBarBlock001
{
	public $registry;
	public $settings;
	public $cache;
	public function __construct()
	{
		$this->registry = ipsRegistry::instance();
		$this->settings =& $this->registry->fetchSettings();
		$this->cache	= $this->registry->cache();
		$this->memberData =& $this->registry->member()->fetchMemberData();
	}
	public function getOutput()
	{
		if ( !$this->settings['show_CSOSideBarBlock001'] || !in_array( $this->memberData['member_group_id'], explode(',', $this->settings['groups_CSOSideBarBlock001'] ) ) )
		{
			return;
		}
		return $this->registry->output->getTemplate( 'boards' )->CSOSideBarBlock001();
	}
}
?>]]></hooks_source>
		</file>
	</hookfiles>
	<hookextras_settings>
		<setting>
			<conf_is_title>1</conf_is_title>
			<conf_title_title><![CDATA[Быстрая навигация]]></conf_title_title> <!-- Название блока настроек. -->
			<conf_title_desc><![CDATA[Настройки модификации.]]></conf_title_desc> <!-- Описание блока настроек. -->
			<conf_title_noshow>0</conf_title_noshow>
			<conf_title_keyword>CSOSideBarBlock001</conf_title_keyword> <!-- Ключевое слово блока настроек. -->
			<conf_title_app>core</conf_title_app> <!-- Название приложения. -->
			<conf_title_tab>Hooks</conf_title_tab> <!-- Название вкладки в настройках движка. Желательно использовать "Hooks". -->
		</setting>
		<setting>
			<conf_id/>
			<conf_title><![CDATA[Активировать модификацию]]></conf_title>
			<conf_description><![CDATA[Включить / отключить модификацию.]]></conf_description>
			<conf_group/>
			<conf_type>yes_no</conf_type>
			<conf_key>show_CSOSideBarBlock001</conf_key> <!-- Ключ данной настройки. Используется в файлах / шаблонах модификации. -->
			<conf_value/>
			<conf_default>1</conf_default>
			<conf_extra/>
			<conf_evalphp/>
			<conf_protected>1</conf_protected>
			<conf_position>1</conf_position>
			<conf_start_group><![CDATA[Основные настройки]]></conf_start_group>
			<conf_end_group>0</conf_end_group>
			<conf_add_cache>1</conf_add_cache>
			<conf_keywords/>
			<conf_title_keyword>CSOSideBarBlock001</conf_title_keyword> <!-- Ключевое слово данной настройки. -->
			<conf_is_title>0</conf_is_title>
		</setting>
		<setting>
			<conf_id/>
			<conf_title><![CDATA[Права доступа]]></conf_title>
			<conf_description><![CDATA[Отображение блока быстрой навигации определённым группам пользователей.]]></conf_description>
			<conf_group/>
			<conf_type>multi</conf_type>
			<conf_key>groups_CSOSideBarBlock001</conf_key> <!-- Ключ данной настройки. Используется в файлах / шаблонах модификации. -->
			<conf_value/>
			<conf_default/>
			<conf_extra>#show_groups#</conf_extra>
			<conf_evalphp><![CDATA[$key = 'groups_CSOSideBarBlock001';
if ( $save == 1)
{
	if ( is_array($_POST[ $key ]) )
	{
		$_POST[ $key ] = implode(",",$_POST[ $key ]);
	}
	else
	{
		$_POST[ $key ] = "";
	}
}
if ( $show == 1 )
{
	$key .= '[]';
}]]></conf_evalphp>
			<conf_protected>1</conf_protected>
			<conf_position>2</conf_position>
			<conf_start_group/>
			<conf_end_group>1</conf_end_group>
			<conf_add_cache>1</conf_add_cache>
			<conf_keywords/>
			<conf_title_keyword>CSOSideBarBlock001</conf_title_keyword> <!-- Ключевое слово данной настройки. -->
			<conf_is_title>0</conf_is_title>
		</setting>
		<setting>
			<conf_id/>
			<conf_title><![CDATA[Заголовок]]></conf_title>
			<conf_description><![CDATA[Заголовок блока быстрой навигации.]]></conf_description>
			<conf_group/>
			<conf_type>input</conf_type>
			<conf_key>title_CSOSideBarBlock001</conf_key> <!-- Ключ данной настройки. Используется в файлах / шаблонах модификации. -->
			<conf_value/>
			<conf_default/>
			<conf_extra/>
			<conf_evalphp/>
			<conf_protected>1</conf_protected>
			<conf_position>3</conf_position>
			<conf_start_group><![CDATA[Содержание]]></conf_start_group>
			<conf_end_group>0</conf_end_group>
			<conf_add_cache>1</conf_add_cache>
			<conf_keywords/>
			<conf_title_keyword>CSOSideBarBlock001</conf_title_keyword> <!-- Ключевое слово данной настройки. -->
			<conf_is_title>0</conf_is_title>
		</setting>
		<setting>
			<conf_id/>
			<conf_title><![CDATA[Иконка]]></conf_title>
			<conf_description><![CDATA[Иконка заголовка блока.]]></conf_description>
			<conf_group/>
			<conf_type>input</conf_type>
			<conf_key>icon_CSOSideBarBlock001</conf_key> <!-- Ключ данной настройки. Используется в файлах / шаблонах модификации. -->
			<conf_value/>
			<conf_default/>
			<conf_extra/>
			<conf_evalphp/>
			<conf_protected>1</conf_protected>
			<conf_position>4</conf_position>
			<conf_start_group/>
			<conf_end_group>0</conf_end_group>
			<conf_add_cache>1</conf_add_cache>
			<conf_keywords/>
			<conf_title_keyword>CSOSideBarBlock001</conf_title_keyword> <!-- Ключевое слово данной настройки. -->
			<conf_is_title>0</conf_is_title>
		</setting>
		<setting>
			<conf_id/>
			<conf_title><![CDATA[Содержание]]></conf_title>
			<conf_description><![CDATA[Содержание блока быстрой навигации.]]></conf_description>
			<conf_group/>
			<conf_type>editor</conf_type>
			<conf_key>text_CSOSideBarBlock001</conf_key> <!-- Ключ данной настройки. Используется в файлах / шаблонах модификации. -->
			<conf_value/>
			<conf_default/>
			<conf_extra/>
			<conf_evalphp/>
			<conf_protected>1</conf_protected>
			<conf_position>5</conf_position>
			<conf_start_group/>
			<conf_end_group>1</conf_end_group>
			<conf_add_cache>1</conf_add_cache>
			<conf_keywords/>
			<conf_title_keyword>CSOSideBarBlock001</conf_title_keyword> <!-- Ключевое слово данной настройки. -->
			<conf_is_title>0</conf_is_title>
		</setting>
	</hookextras_settings>
	<hookextras_language/>
	<hookextras_modules/>
	<hookextras_help/>
	<hookextras_templates>
    <templates>
		<template_set_id>0</template_set_id>
		<template_group>skin_boards</template_group> <!-- Группа шаблонов. В неё будет помещён создаваемый шаблон. -->
		<template_content> <![CDATA[<div class='general_box clearfix'>
	<h3><img src='{$this->settings['img_url']}/{$this->settings['icon_CSOSideBarBlock001']}' alt='{$this->lang->words['icon']}' /> {$this->settings['title_CSOSideBarBlock001']}</h3>
	{$this->settings['text_CSOSideBarBlock001']}
</div>]]> </template_content>
		<template_name>CSOSideBarBlock001</template_name> <!-- Название создаваемого шаблона. -->
		<template_data/>
		<template_updated/>
		<template_removable>0</template_removable>
		<template_added_to>0</template_added_to>
		<template_user_added>0</template_user_added>
		<template_user_edited>0</template_user_edited>
    </templates>
	</hookextras_templates>
	<hookextras_tasks/>
	<hookextras_database_create/>
	<hookextras_database_alter/>
	<hookextras_database_update/>
	<hookextras_database_insert/>
</hookexport>

[править] Ссылки

Тема обсуждения на CSO

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Категории
Инструменты