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

Как сделать 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>

 

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

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

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