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=КОМПОНЕНТ
Если страница отобразила фразы, которые вы вписали в языковой файл и шаблон — то всё нормально. Если же нет — то вы что-то сделали неправильно.