Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
andaril

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

Рекомендованные сообщения

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

 

Как?

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
02/14/09 20:56 (изменено)

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

 

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

Изменено пользователем 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

 

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

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

Поделиться сообщением


Ссылка на сообщение
02/22/09 02:04 (изменено)

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 

 

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

Изменено пользователем LimpaPlanet.ee

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение

Можно.

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

 

lang_global.php спс (Fisana)

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

lang_mypage.php

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

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...