IP.Board:Компоненты

Материал из CSI

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

[править] IP.Board 2.3

[править] Создание компонента

Для создания простого компонента, вам необходимо скопировать нижеприведённых код в файл КОМПОНЕНТ.php и поместить этот файл в ./sources/components_public/

<?php
 
if ( ! defined( 'IN_IPB' ) )
{
	print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы.";
	exit();
}
 
class component_public
{
	var $output	 = "";
	var $page_title = "";
	var $nav		= array();
	var $html	   = "";
	var $ipsclass;
 
	/*-------------------------------------------------------------------------*/
	// Run Component
	/*-------------------------------------------------------------------------*/
 
	function run_component()
	{
		$this->ipsclass->load_language('lang_КОМПОНЕНТ'); //Укажите название языкового файла.
		$this->ipsclass->load_template('skin_КОМПОНЕНТ'); //Укажите название группы шаблонов.
		$this->base_url		= $this->ipsclass->base_url;
 
		$this->main();
 
		$this->nav[]		= "<a href='{$this->ipsclass->base_url}autocom=КОМПОНЕНТ'>{$this->ipsclass->lang['page_title']}</a>"; //Укажите в ссылке свой компонент (название данного файла).
		$this->page_title	= $this->ipsclass->lang['page_title'];
		$this->ipsclass->print->add_output( $this->output );
		$this->ipsclass->print->do_output( array( 'TITLE' => $this->ipsclass->vars['board_name']." - ".$this->page_title, 'JS' => 0, NAV => $this->nav ) );
	}
 
	/*-------------------------------------------------------------------------*/
	// Main
	/*-------------------------------------------------------------------------*/
	function main()
	{
		$this->output .= $this->ipsclass->compiled_templates['skin_КОМПОНЕНТ']->main(); //Укажите название группы шаблонов.
	}
}
?>

Создайте файл lang_КОМПОНЕНТ.php, впишите языковые фразы:

<?php
 
$lang = array(
 
'page_title'	  => "Новый компонент!",
'welcome_message' => "Вы создали новый компонент!",
 
);
?>

Положите языковой файл в ./cache/lang_cache/en/ и ./cache/lang_cache/ru/

Пройдите в: Админцентр > ВНЕШНИЙ ВИД > [ваш стиль] > Изменить HTML шаблоны > skin_boards (главная страница) > Добавить шаблон

В окошке добавления нового шаблона, впишите:

Название шаблона: '''main'''
Или создайте новую группу...: '''КОМПОНЕНТ''' (укажите своё название компонента латинскими буквами, которое вы вписали в файл)

Нажмите [Продолжить…]

В появившимся окне содержимого шаблона, вы должны вписать следующий код (для проверки):

<div class="borderwrap">
	<div class="maintitle">{$this->ipsclass->lang['welcome_message']}</div>
	<table width='100%' cellpadding='4' cellspacing='1'>
		<tr><td class='row2' width='100%' align='left'>
		Здравствуйте, {$this->ipsclass->member['name']}! {$this->ipsclass->lang['welcome_message']}<br />
		Был создан новый компонент!
		</td></tr>
	</table>
</div>

Далее, пройдите по ссылки:

http://domain.com/index.php?autocom=КОМПОНЕНТ

Если страница отобразила фразы, которые вы вписали в языковой файл и шаблон — то всё нормально. Если же нет — то вы что-то сделали неправильно.

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

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

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