Упрощение страницы после отправления сообщения.

Идеи для расширения функциональности phpBB 2.0.x
Kevin
phpBB 1.0.0
Сообщения: 5
Стаж: 20 лет 4 месяца

Упрощение страницы после отправления сообщения.

Сообщение Kevin »

Полистав форум очень часто натыкался на просьбы выложить мод, который удаляет или упрощает страницу, которая отображается после отправки сообщения. Как известно такая страница необходима для небольшой разрядке серверу, потэтому отказываться и я от нее не стал, сделав только упрощение этой страницы. Полностью файлы выкладывать не буду т.к. можно использовать те темплейты которые уже есть :)

Смысл в следующем, когда вы отправляете сообщение у вас появляется окошко с надписью:

Код: Выделить всё

Ваше сообщение было успешно добавлено

Просмотреть ваше сообщение

Вернуться в форум
Но помимо этого сообщения выводится верхняя и нижняя часть "дизайна" страницы, и если ваш стиль достаточно "толст", то приходится ждать некоторое время пока загрузится это сообщение, приходится платить за бесполезный трафик и терять драгоценное время. Смысл этого исправления загружать не стандартные overall_header.tpl и overall_footer.tpl, а их аналоги simple_header.tpl и simple_footer.tpl, которые используются для отображения тем топика в нижней части страницы в iframe, когда вы нажимаете на кнопку ответить.

Делается это так:
0. Сделайте копии файлов includes/page_header.php и includes/page_tail.php , чтобы произвести откат в случае некорректной работы модификации.

1. Откройте includes/page_header.php

2. Найдите

Код: Выделить всё

$template->pparse('overall_header');
Перед этим вставьте:

Код: Выделить всё

/* BEGIN_simple_reply */
global $mode, $submit;
if ((($mode == "reply" || $mode == "newtopic" || $mode == "editpost") && $submit != "") || $mode == "delete"){
    $template->set_filenames(array(
    	'simple_header' => 'simple_header.tpl')
    );
    $template->pparse('simple_header');
}
else
/* END_simple_reply */
3. Откройте includes/page_tail.php

4. Найдите

Код: Выделить всё

$template->pparse('overall_footer');
Перед этим вставьте

Код: Выделить всё

/* BEGIN_simple_reply */
global $mode, $submit;
if ((($mode == "reply" || $mode == "newtopic" || $mode == "editpost") && $submit != "") || $mode == "delete"){
    $template->set_filenames(array(
    	'simple_footer' => 'simple_footer.tpl')
    );
    $template->pparse('simple_footer');
}
else
/* END_simple_reply */
--
И еще желаетльно изменить templates/subSilver/message_body.tpl , чтобы сообщение выводилось по центру... ну это уже мелочи... которые пока не так значимы

Используйте это на свой страх и риск, сам это опробывал только на своем локалхосте, но по идеи ничего это попортить не должно :roll:

Добавлено спустя 3 минуты 40 секунд:

Да, кстати это можно использовать и для изменения дизайна для разных тем в форуме, но это уже совсем другая история :)
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Ещё вопрос, вроде как в тему, при выводе каких страниц используються simple_header.tpl и simple_footer.tpl, а то вот это
Kevin писал(а):которые используются для отображения тем топика в нижней части страницы в iframe, когда вы нажимаете на кнопку ответить.
не слишком понял?

А вообще надо попробовать.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 9 месяцев
Откуда: Бердск

Сообщение crash »

VVVas писал(а):Ещё вопрос, вроде как в тему, при выводе каких страниц используються simple_header.tpl и simple_footer.tpl
точно используется в дополнительных смайликах.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

VVVas
VVVas писал(а):которые используются для отображения тем топика в нижней части страницы в iframe, когда вы нажимаете на кнопку ответить.
Имеется в виду т.н. обзор темы на странице отправки ответа.
VVVas писал(а):А вообще надо попробовать.
Попробуешь - отпишись. У меня есть подозрение, что упрощенные страницы будут выводиться и в том случае, когда при заполнении формы была допущена ошибка и форма появляется снова. Хотя возможно я ошибаюсь.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 19 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

Добавлю свои пять копеек.
Лично для себя я сделал это давно и немного по другому.
Так как при формировании означенных страниц используется функция message_die, то мое решение выглядит так

открыть
functions.php

найти

Код: Выделить всё

		if ( empty($theme) )
		{
			$theme = setup_style($board_config['default_style']);
		}
добавить после

Код: Выделить всё

		if (!defined('GEN_FULL_HEADER')){
			$gen_simple_header=1;
		}
выводится упрощенная страница.

где необходима полная версия, поставить перед вызовом message_die
строки

define('GEN_FULL_HEADER', 1);
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Поручик писал(а):где необходима полная версия, поставить перед вызовом message_die
строки
Имхо проще наоборот, определять переменную если нужна упрощенная версия.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 19 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

Xpert писал(а): если нужна упрощенная версия.
У меня лично полная версия используется только после регистрации юзера. То есть define('GEN_FULL_HEADER', 1); использовал только один раз

Во всех остальных, например, "отметить как прочтенное", "следить за ответами" и т.п. - упрощенка
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Вариант Kevin, действительно выводит
Xpert писал(а):упрощенные страницы <...> и в том случае, когда при заполнении формы была допущена ошибка и форма появляется снова.
Добавлено спустя 44 секунды:

Вариант Поручик скоро попробую.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Indemion666
phpBB 1.2.0
Сообщения: 18
Стаж: 19 лет 10 месяцев

Сообщение Indemion666 »

Я сделал время при редеректе 1 сек

Она моментом пролетакет
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Xpert писал(а):Имхо проще наоборот, определять переменную если нужна упрощенная версия.
А можно вот это дело с примером, что и куда вставить, а?
я люблю daft punk | новый sugoi.ru
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------
#
functions.php

#
#-----[ FIND ]------------------------------------------
#
		//
		// Load the Page Header
		//
		
#
#-----[ BEFORE, ADD ]------------------------------------------
#
		// [begin] Simple message pages mod
		if ( defined('GEN_SIMPLE_HEADER') )
		{ 
         		$gen_simple_header = true;
      		}
      		// [end] Simple message pages mod
Далее по усмотрению, я ограничился упрощенной версией только для отправки сообщения.

Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------
#
posting.php

#
#-----[ FIND ]------------------------------------------
#
			setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
		}

		$template->assign_vars(array(
			'META' => $return_meta)
		);
		
#
#-----[ AFTER, ADD ]------------------------------------------
#
define('GEN_SIMPLE_HEADER', true);
А вообще конечно было бы неплохо создать и дополнительный шаблон на основе message_body.tpl чтобы сообщение выводилось по вертикали по центру как в ipb.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

deleted

Всё работает. Спасибо.
Последний раз редактировалось VVVas 31.08.2005 1:31, всего редактировалось 1 раз.
я люблю daft punk | новый sugoi.ru
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 6 месяцев

Сообщение Kastaneda »

Kevin, после добавления в файл page_header.php строк:

Код: Выделить всё

/* BEGIN_simple_reply */ 
global $mode, $submit; 
if ((($mode == "reply" || $mode == "newtopic" || $mode == "editpost") && $submit != "") || $mode == "delete"){ 
    $template->set_filenames(array( 
       'simple_header' => 'simple_header.tpl') 
    ); 
    $template->pparse('simple_header'); 
} 
else 
/* END_simple_reply */
перестаёт работать должным образом окно с дополнительными смайликами. То есть, оно открывается, но оно пустое. Это можно подлечить как-нибудь?
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Xpert писал(а):А вообще конечно было бы неплохо создать и дополнительный шаблон на основе message_body.tpl
А можете подсказать что нужно поправить, чтоб вызывался этот другой шаблон в нужном месте? Конкретно только для сообщения об отправке?
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 19 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

Xpert писал(а):А вообще конечно было бы неплохо создать и дополнительный шаблон на основе message_body.tpl чтобы сообщение выводилось по вертикали по центру как в ipb.
Не стал я возиться с шаблоном, сделал у себя так

Код: Выделить всё

#-----[ OPEN ]------------------------------------------ 
# 
includes/functions.php 

# 
#-----[ FIND ]------------------------------------------ 
# 
		//
		// Load the Page Header
		//
# 
#-----[ BEFORE, ADD ]------------------------------------- 
# 
		if (!defined('GEN_FULL_HEADER')){
			$gen_simple_header=1;
			$template->assign_block_vars('switch_simple_header', array());
		}

#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/message_body.tpl 

# 
#-----[ FIND ]------------------------------------------ 
# 
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">

# 
#-----[ BEFORE, ADD ]------------------------------------- 
# 
<!-- BEGIN switch_simple_header -->
<table style="width:90%;height:80%" align="center"><tr><td align="center" valign="middle">
<!-- END switch_simple_header -->

# 
#-----[ FIND ]------------------------------------------ 
# 
<br clear="all" />

# 
#-----[ BEFORE, ADD ]------------------------------------- 
# 
<!-- BEGIN switch_simple_header -->
</td></tr>
</table>
<!-- END switch_simple_header -->
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html

Вернуться в «Запросы модов для phpBB 2.0.x»