Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

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 лучше вообще не лезть.

  • 1 месяц спустя...
Опубликовано:

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

 

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

 

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

  • 3 недели спустя...
Опубликовано:

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

 

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

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

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 .= "тут" я не знаю как?

Опубликовано:
  • Автор

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

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

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

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

Опубликовано:

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

  • 3 месяца спустя...
Опубликовано:
А зачем вы лезете туда, где не разбираетесь?

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

 

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

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

Сейчас на странице 0

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

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.