Skip to content

Как добавить новый "компонент"/Страницу

Для начала вам надо добавить сам компонент в список. Делается это так:

post-5903-1219922897_thumb.png

А вот описание файла в папке ./sources/components_public/

<?php

// Класс, никогда не менять. Работать не будет
class component_public
{
// Объект ипскласса. Без него опять же не будет ничего работать.
var $ipsclass;

// Эта функция вызывается из файла index.php. Название изменять нельзя.
function run_component()
{
	/* Тайтл страницы. Можно оформить в виде простой переменной, если у вас весь код состоит из одной
	*  функции. Например $title = 'Моя страничка'; . Но не надо забывать, что переменную следует изменить в других местах тоже. 
	*  В любом случае это посылается файлу class_display.php для вывода в $this->ipsclass->print->do_output() (Смотри ниже). 
	*/
	$this->pagetitle = "Название страницы";

	/* Здесь идёт название вашей страницы.
	*  Название также будет показано в панели навигации вашего форума.
	*  Навигацию можно поменять, изменить название и прочее, сделать навигацию более сложной. Зависит от страниц
	*  Например:
	*  $this->nav[] = "<a href='{$this->ipsclass->base_url}autocom=custom'>{$=title}</a>";
	*  $this->nav[] = "Это моя страница";
	*  $this->nav[] = "А это еще одна строчка в навигации";
	*/
	$this->nav[] = "<a href='{$this->ipsclass->base_url}autocom=custom'>{$this->pagetitle}</a>";

	/* Загружаем шаблон главного стиля. Думаю не надо писать, что без этого работать не будет?
	*  Сюда по аналогии можно добавить свои шаблоны, если они, конечно, созданы. Например добавить ниже
	*  $this->ipsclass->load_template( 'skin_mypg' );
	*/
	$this->ipsclass->load_template( 'skin_global' );

	// Пустое  место. Здесь можно проводить операции перед форматированием результата в xhtml.

	/* Эта переменная отвечает за вывод уже готового результата в xhtml формате. (Можно изменить название. (Смотри ниже))
	*  Делать с ней можно все что угодно. 
	*  Например:
	*  $output .= $this->ipsclass->compiled_templates['skin_mypg']->show();
	*  Вызовет xhtml фрагмент show, группы skin_mypg (группу надо предварительно загрузить строками выше)
	*/
	$output .= "Здесь содержимое страницы, переменные, скины";

	// Пустое  место. Здесь можно проводить операции с форматированным результаом переменной $output

	/* Эти строки отвечают за вывод всего что вы подготовили.
	*  $this->ipsclass->print->add_output () добавит основной готовый xhtml к выводу. В этом выводе будет шапка и низ форума.
	*/
	$this->ipsclass->print->add_output ( $output );

	/* Здесь посылаются другие данные файлу class_display.php в виде массива.
	*  Ключ TITLE отвечает за тайтл страницы. Можно просто указать 'TITLE' => $title
	*  Ключ JS отвечает за дополнительный ява скрипт. Например можно туда засунуть xhtml форматированные ссылки на файлы с яваскриптом. 
	*  Это заменяет в wrapper'е слова <% JAVASCRIPT %>
	*  Ключ NAV собственно отвечает за навигацию. Ему передается массив навигации.
	*/
	$this->ipsclass->print->do_output ( array( 'TITLE' => "{$this->ipsclass->vars['board_name']} - {$this->pagetitle}", 'JS' => 0, 'NAV' => $this->nav ) );

} // Конец функции run_component

} // Конец класса
?>

Надеюсь мануал будет пополняться.

Featured Replies

А можно сделать в одном компоненте несколько страниц? Правила клана, например на 5 страницах или ещё что-нибудь.

 

Как?

Вывести вверху страницы ссылки с разными &a=номер на конце, и в скрипте выводить разный текст в зависимости от $this->ipsclass->input['a']

 

Посмотрите в сети "скрипт пагинации".

  • Author

в любом случае без знания php лучше вообще не лезть.

  • 1 month later...

Fatal error: Class 'ad_legends' not found in /www/data01/users/t/torrent.planet.ee/htdocs/sources/acp_loaders/acp_components.php on line 146

 

что я неправильно сделал?

Edited by LimpaPlanet.ee

Fatal error: Class 'ad_legends' not found in /www/data01/users/t/torrent.planet.ee/htdocs/sources/acp_loaders/acp_components.php on line 146

 

что я неправильно сделал?

А что вы делали? Что-то я не улавливаю, как вы связали эту ошибку и тему топика...

Warning:
acp_components::require_once(/www/data01/users/t/torrent.planet.ee/htdocs/sources/components_acp/zvaniya.php): 
failed to open stream: 
No such file or directory in /www/data01/users/t/torrent.planet.ee/htdocs/sources/acp_loaders/acp_components.php on line 144 

 

что у меня не правильно сделано?

Edited by LimpaPlanet.ee

  • Author

нету файла компонента для админки, вот и вся ошибка.

 

Вопрос в том, что вы хотели сделать

  • 3 weeks later...

с помощью этого можно создать свою станицу под скин форума?

 

Что дальше делать?

в компоненты захожу выдаёт

http://xxxxxxxxxxxxxxxx/admin/index.php?adsess=508b01254d01acee861e118390fb84ed&section=components&act=ban&do=ban

Можно.

* Сюда по аналогии можно добавить свои шаблоны, если они, конечно, созданы. Например добавить ниже

* $this->ipsclass->load_template( 'skin_mypg' );

Так я не понял что дальше делать? Когда создал компонент?

Просто второй пункт непонятный и

Заголовок компонента на страницах форума

{ipb.lang['some_words']} - будет заменено на текст из лэнгов из переменной "some_words"

Куда именно вставлять? То есть в какой файл языкового файла

 

lang_global.php спс (Fisana)

 

Жду ответа дальше!

Подождите ответа Гены.

Я только теоретически могу предположить, что надо создать новый языковый файл

lang_mypage.php

Но, возможно, достаточно добавить необходимую строчку в lang_global.php

$output .= "include 'ban1.php'";

Мне надо его прикрутить именно между $output .= "тут" я не знаю как?

  • Author

Строку добавлять в lang_global.php

Создавать дополнительные ланги - по необходимости.

А зачем вы лезете туда, где не разбираетесь?

ob_start();
include 'ban1.php';
$output .= ob_get_contents();
ob_end_clean();

спасибо большое!

  • 3 months later...
А зачем вы лезете туда, где не разбираетесь?

А если не лезть то как разобраться :(

 

Спасибо большое!

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.