Перейти к публикации
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

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

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

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

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

Небольшое дополнение к мануалу...)))

 

Загрузка своего языкового файла:

$this->ipsclass->load_language['тут название языкового файла без .php'];
  • 4 недели спустя...
Опубликовано:

Скажите, а можно в переменную $output засунуть html страницу, то есть ссылку на неё, чтобы та загружалась?

 

например, $output .= "ссылка на html страницу с кодом page.html"

 

содержимое page.html это "hello world"

 

и на странице форума выводится "hello world"

 

Можно ли это сделать?

Изменено пользователем tingalid

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

tingalid, ИМХО проще и безопаснее сделать новый шаблон и загрузить его в компоненте... И в него уже вписать html.

  • 1 месяц спустя...
Опубликовано:
tingalid, ИМХО проще и безопаснее сделать новый шаблон и загрузить его в компоненте... И в него уже вписать html.

 

спасибо за помощь, на самом деле сделать это проще простого как намазать хлеб маслом!!

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

Всё получилось, благодарю.

А кто может сказать, как сделать, чтобы при просмотре этой страницы в онлайне отображалось, что пользователь/гость "просматривает погоду (телепрограмму и т.д.)"?

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

добавление

'WHERE_stranica'				=>	"Просмотр страницы",

в lang_online.php не помогло...

Изменено пользователем arhost

Опубликовано:
Небольшое дополнение к мануалу...)))

 

Загрузка своего языкового файла:

Добавил после

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

это

		$this->ipsclass->load_language['lang_online'];

 

В lang_online.php добавил

WHERE_stranica'				=>	"Просмотр страницы",

 

Не получается:)(

Что неправильно?

 

Делал отдельный лэнг и кидал в кэш, потом менял путь - всё равно ничего....:)

Изменено пользователем arhost

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

а как закрыть вход для гостей?

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

Сейчас на странице 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.