Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Как сделать IP.Content "корневым" приложением

Чтобы сделать IP.Content первым, что открывается по заходу на ваш IP.Board-форум, нужно выполнить 2 шага:

 

1. Поднять форум и все его страницы из корня в виртуальную подпапку "forums" с помощью правки ЧПУ-шаблонов

 

Заменяем содержимое файла /admin/applications/forums/extensions/furlTemplates.php на:

 

<?php
/**
* <pre>
* Invision Power Services
* IP.Board vVERSION_NUMBER
* Sets up SEO templates
* Last Updated: $Date: 2011-08-02 15:53:39 -0400 (Tue, 02 Aug 2011) $
* </pre>
*
* @author 		$Author: bfarber $
* @copyright	(c) 2001 - 2009 Invision Power Services, Inc.
* @license		http://www.invisionpower.com/community/board/license.html
* @package		IP.Board
* @subpackage	Forums
* @link		http://www.invisionpower.com
* @since		20th February 2002
* @version		$Rev: 9351 $
*
*/

if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}

/**
* SEO templates
*
* 'allowRedirect' is a flag to tell IP.Board whether to check the incoming link and if not formatted correctly, redirect the correct one
*
* OUT FORMAT REGEX:
* First array element is a regex to run to see if we've a match for the URL
* The second array element is the template to use the results of the parenthesis capture
*
* Special variable #{__title__} is replaced with the $title data passed to output->formatUrl( $url, $title)
*
* IMPORTANT: Remember that when these regex are used, the output has not been fully parsed so you will get:
* showuser={$data['member_id']} NOT showuser=1 so do not try and match numerics only!
*
* IN FORMAT REGEX
*
* This allows the registry to piece back together a URL based on the template regex
* So, for example: "/user/(\d+?)/", 'matches' => array(  array( 'showuser' => '$1' ) )tells IP.Board to populate 'showuser' with the result
* of the parenthesis capture #1
*/
$_SEOTEMPLATES = array(

'showannouncement'     => array( 'app'		     => 'forums',
								 'allowRedirect' => 1,
								 'out'           => array( '#showannouncement=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'forums/forum-$3/announcement-$1-#{__title__}/$4' ),
						  		 'in'            => array( 'regex'   => '#/forums/forum-(\d+?)?/announcement-(\d+?)-#i',
												 		   'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),

'showforum'     => array( 'app'		      => 'forums',
						  'allowRedirect' => 1,
						  'isPagesMode'   => 1,
						  'out'           => array( '#showforum=(.+?)(&|$)#i', 'forums/forum/$1-#{__title__}/$2' ),
						  'in'            => array( 'regex'   => '#^/forums/forum/(\d+?)-#i',
												    'matches' => array( array( 'showforum', '$1' ) ) ) ),

'showtopicunread'=> array( 'app'		      => 'forums',
						   'allowRedirect'    => 1,
						   'out'              => array( '#showtopic=(.+?)(?:&|&)view=getnewpost(&|$)#i', 'forums/topic/$1-#{__title__}/unread/$2' ),
						   'in'               => array( 'regex'   => '#^/forums/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
											            'matches' => array( array( 'showtopic', '$1' ),
																			array( 'view', 'getnewpost' ) ) ) ),

'showtopicnextunread'=> array( 'app'		      => 'forums',
							   'allowRedirect'    => 1,
							   'out'              => array( '#showtopic=(.+?)(?:&|&)view=getnextunread(&|$)#i', 'forums/topic/$1-#{__title__}/nextunread/$2' ),
							   'in'               => array( 'regex'   => '#^/forums/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
												            'matches' => array( array( 'showtopic', '$1' ),
																				array( 'view', 'getnextunread' ) ) ) ),

'showtopic'     => array( 'app'		      => 'forums',
						  'allowRedirect' => 1,
						  'isPagesMode'   => 1,
						  'out'           => array( '#showtopic=(.+?)(\#|&|$)#i', 'forums/topic/$1-#{__title__}/$2' ),
						  'in'            => array( 'regex'   => '#^/forums/topic/(\d+?)-#i',
											        'matches' => array( array( 'showtopic', '$1' ) ) ) ),

'acteqst'       => array( 'app'		      => 'forums',
						  'allowRedirect' => 1,
						  'out'           => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'forums/topic/$2-#{__title__}/$3' ),
						  'in'            => array( 'regex'   => '#^notavalidrequest$#i',
											        'matches' => array( array( 'showtopic', '0' ) ) ) ),

'act=idx'       => array( 'app'		      => 'forums',
						  'allowRedirect' => 0,
						  'out'           => array( '#act=idx(&|$)#i', 'forums/$1' ),
						  'in'            => array( 'regex'   => '#^/forums(/|$|\?)#i',
											        'matches' => array( array( 'act', 'idx' ) ) ) ),
);

 

 

2. Назначать IP.Content основным приложением

 

Заменяем в /initdata.php это:

 

/**
* Default app name
* You can set this in your own scripts before 'initdata.php' is required.
*/
if ( ! defined( 'IPS_DEFAULT_PUBLIC_APP' ) )
{
define( 'IPS_DEFAULT_PUBLIC_APP', 'forums' );
}

 

 

на это:

 

/**
* Default app name
* You can set this in your own scripts before 'initdata.php' is required.
*/
if ( ! defined( 'IPS_DEFAULT_PUBLIC_APP' ) )
{
define( 'IPS_DEFAULT_PUBLIC_APP', 'ccs' );
}

 

 

3. Сбрасываем кэш ЧПУ (одноименная кнопка в админке)

 

4. Делаем первой вкладкой в меню наш сайт на IP.Content (опционально)

 

В шаблоне Global Templates > globalTemplate находим:

 

						<if test="showhomeurl:|:$this->settings['home_url'] AND $this->settings['home_name']">
						<li id='nav_home' class='left'><a href='{$this->settings['home_url']}' title='{$this->lang->words['homepage_title']}' rel="home">{$this->settings['home_name']}</a></li>
					</if>

 

 

Заменяем на:

 

						{parse variable="ccsActive" default="" oncondition="IPS_APP_COMPONENT == 'ccs'" value="active"}
					<li id='nav_ccs' class='left {parse variable="ccsActive"}'><a href='{$this->settings['home_url']}' title='{$this->lang->words['homepage_title']}' rel="home">{$this->settings['home_name']}</a></li>

 

 

Адрес и текст этой ссылки задаются в настройках, в группе "General Configuration", поля Website name и Website address. В принципе, если скинов не много, можно сразу написать:

 

						{parse variable="ccsActive" default="" oncondition="IPS_APP_COMPONENT == 'ccs'" value="active"}
					<li id='nav_ccs' class='left {parse variable="ccsActive"}'><a href='/' title='На главную' rel="home">Сайт</a></li>

 

 

В настройках IP.Content выставляем "Show 'Pages' navigation bar entry" на "No".

 

Результат

 

Теперь у вас все несуществующие адреса будут передаваться в IP.Content, который будет либо выдавать текстовую ошибку 404, либо показывать с тем же 404-заголовком любую назначенную вами страницу IP.Content. Главная страница IP.Content (по-умолчанию - index.html, меняется в настройках) станет главной страницей всего форума. Список форумов уйдет на подпапку "/forums/", все остальные приложения останутся в своих подпапках.

 

Итоговая структура:

/ - IP.Content
/forums/ - Форум
/blogs/ - Блоги
/gallery/ - Галерея
и т.д.

 

Примечание! Если вам нужно только назначить IP.Content как приложение по умолчанию, достаточно выполнить только второй пункт.

Статья рассказывает о именно том, как создать эффект "корневого" приложения, когда форум визуально находится в виртуальную папку /forums/

 

Это сообщение было вынесено в статью

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

Как сделать, чтобы первой была страница:

В настройках приложения ищите Default home page

Поставил Default home page: /articles.html

 

Теперь при заходе на сайт показывает страницу ошибки доступа: Sorry, we couldn't find that!

Теперь при заходе на сайт показывает страницу ошибки доступа: Sorry, we couldn't find that!

Нет никакой ошибки. По крайней мере уже.

Потому что тех саппорт ответил, что articles.html должно быть, а не /articles.html, вот и нет уже ошибки.

Дабы не редактировать файлы и сильно не ломать текущую структуру сайта перемещением в подпапку /forums/, попробовал сделать следующим образом штатными средствами IPB 3.4:

 

1. Включил CSS приложением по умолчанию

2. Переименовал имя приложения на "Главная страница". К сожалению, почему-то не работает здесь языковая строка ccs_display_title :(

3. Переместил эту вкладку на первое место

4. В настройках страницы index.html убрал галку Omit page name in URL

5. Включил функционал на вкладке Advanced Settings в IP.Content

 

В итоге получилось, что главная страница - IP.Content, доступная по адресам http://sitename.ru/ и http://sitename.ru/index.html. Ссылки на форумы и темы не изменились, но главная страница форумов теперь доступна по адресу: http://sitename.ru/index

 

Неудобства, которые хотелось бы устранить, если возможно:

 

1. Сделать так, чтобы список форумов был все-таки доступен по адресу http://sitename.ru/forums/, но чтобы ссылки на темы и прочее не изменились

2. Странный механизм получается в работе полосы навигации по сайту, которая главным элементов все равно всегда ставит форум, а не главную страницу. В итоге получается на главной странице следующий путь: Название сайта (список форумов) - Сайт - Главная страница. Сайт конечно можно убрать, но это проблемы не решает. На этом сайте, кстати, так же.

Ну вот и нашлось решение по пункту 2. Оказывается, все просто, нужно лишь в настройках General Configuration поставить Remove default forums navigation в Yes.

 

Остается неприятным только первый пункт, который, в принципе не так значителен...

 

У кого какие комментарии по этому способу?

У кого какие комментарии по этому способу?

 

Удалить в шаблоне ЧПУ у всех массиов кроме act=idx, вот этот фрагмент forums/

 

Например:

 

Было:

 

    'showtopic'     => array( 'app'           => 'forums',
                             'allowRedirect' => 1,
                             'out'           => array( '#showtopic=(.+?)(&|$)#i', 'forums/topic/$1-#{__title__}/$2' ),
                             'in'            => array( 'regex'   => '#^/forums/topic/(\d+?)-#i',
                                                       'matches' => array( array( 'showtopic', '$1' ) ) ) ),

 

Стало:

 

    'showtopic'     => array( 'app'           => 'forums',
                             'allowRedirect' => 1,
                             'out'           => array( '#showtopic=(.+?)(&|$)#i', 'topic/$1-#{__title__}/$2' ),
                             'in'            => array( 'regex'   => '#^/topic/(\d+?)-#i',
                                                       'matches' => array( array( 'showtopic', '$1' ) ) ) ),

@Lesovsky, Вы, наверное, не совсем поняли мой способ. Я НЕ переносил форумы в папку /forums/, поэтому у меня и нет нигде этой строки в ссылках. А код, предложенный Вами, как раз для удаления этой строки. Или я ошибаюсь?

  • 2 месяца спустя...

Нужно,чтобы Ip.Content открывался по адресу МойСайт.ru

А не по адресу http://МойСайт.ru/index.php/index.html

Делал все по инструции, но не хера...

Мб кто поможет: ?

  • 1 месяц спустя...

Делал по превому способоу 402 ошибка !

Ещё способ главной старницей сделать Ip.Content

 

Создайте файл constants.php залейте в него

 

<?php

define('IPS_DEFAULT_PUBLIC_APP', 'ccs');

 

Сохраните и положите его в root вашего форума Все )))

 

Единственый минус сылка остаеться domainename.com/index.php?/page/index.html

 

Но меня это не парит ))

  • 8 месяцев спустя...

А я вот что никак не могу понять...

Установил форум по адресу домен.ру/forum

Установил ip connect, закинул в папку домен.ру файлы external.php и index.php из папки tools (в index'е заменил forums на forum).

Зашёл в настройки-система-Настройки: Поисковая оптимизация (SEO)- Настройки ЧПУ

Включил там "Перенаправление на новые человекопонятные URL?" - ДА

Тип URL - запрос

Использовать .htaccess mod_rewrite? - ДА

Закинул в корень сайта .htaccess с таким содержанием

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

В настройках ipconnect - Basic

в Default home page я указал -

/articles.html

А в advanced settings

URL to index.php - не указывал ничего. (Если указать домен - то ничего не работает и в дресной строке невероятно длинная и идиотская ссылка с двухкратным повторением доменного имени в разных местах и ничего не работает)

Use .htaccess mod_rewrite - да

Gateway filename index.php

 

 

Так вот - после установки ip content и всех этих манипуляций при переходе на домен.ру в адресной строке браузера

_http://домен.ру/forum/page/index.html

И при этом отображается тоже самое, что и при переходе из меню навигации в раздел PAGES.

А в этом самом разделе Pages отображаются вертикально в столбик сообщения с форума...

Спрашивается зачем мне на главной сообщения с форума? Я же указал Default home page - /articles.html

Почему такая фигня?

 

Мне нужно чтобы:

1) При заходе на домен.ру адресной строке браузера было видно только домен.ру а не длиннющщая ссылка с упоминанием страницы на форуме.

2) Чтобы в качестве главной выступла страница Статьи - т.е. то, что отображается на домен.ру/forum/page/articles.html

Вот пример

primer.jpg

Вот так выгядит страница домен.ру/forum/page/articles.html - мне нужно чтобы точно также выглядело содержимое домен.ру.

p.s. ссылку pages в навигации я скрыл в настройках.

на скриншоте самый первый пункт меню - это не помню откуда появившаяся ссылка вида домен.ру, а текст кнопки берётся из описания сайта в настройках.

3) Как будут выглядеть ссылки на форуме меня не особо волнует.

 

Что я не делаю не так и что надо ковырять чтобы добиться поставленной мной задачи?

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

Ладно, вопрос выше снимается. Сделал по-другому. Снёс форум и поставил в корень, потом по инструкции всё сделал и вроде бы нормально.

 

Но 1 вопрос по-прежнему остался.

 

Почему я не могу назначить страницу articles.html тем, что первым открывается при заходе на сайт?

Я выбрал default homepage - articles.html, однако открывается всё равно index.html.

А ведь на index.html отображаются лишь темы с форума, а мне нужно чтобы в качестве главной была страница статьи!

 

Кто подскажет в чём дело?

Всё. До меня снова дошло. Надо было отредактировать index.html из меню

ip content-page manager до такого вида

 

{ccs special_tag="navigation"}

<div class='ipsLayout ipsLayout_withright ipsLayout_largeright'>

<div class='ipsLayout_right'>

{parse block="articles_menu"}

{parse block="portal_mini_calendar"}

{parse block="portal_recent_articles"}<br />

{parse block="portal_status_updates"}

{parse block="portal_recent_files"}<br />

{parse block="portal_recent_entries"}

</div>

<div class='ipsLayout_content'>

{parse articles}

</div>

</div>

 

Теперь всё, как я хотел) Так что вопрос закрыт. Кстати зря вы тут отключили возможность редактировать свои сообщения. Теперь выглядит как-будто я тут форум засоряю тремя сообщениями подряд.

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.