Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[RC1] Smart Jump Box

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

[RC1] Smart Jump Box

Сообщение quazi »

эта модификация более алгоритмизирована, использует один запрос вместо двух (в отличие от стандартного форума), более "шаблонизирована" и отображает более дружественный интерфейс пользователя

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

#
#----[ OPEN ]----
#
viewforum.php


#
#----[ FIND ]----
#
make_jumpbox('viewforum.'.$phpEx);


#
#----[ REPLACE WITH ]----
#
// +Smart Jump Box
make_jumpbox('viewforum.'.$phpEx, $forum_id);
// -Smart Jump Box


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


#
#----[ FIND ]----
#
function make_jumpbox($action, $match_forum_id = 0)
{
	global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID;

//	$is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);

	$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
		FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
		WHERE f.cat_id = c.cat_id
		GROUP BY c.cat_id, c.cat_title, c.cat_order
		ORDER BY c.cat_order";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql);
	}

	$category_rows = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$category_rows[] = $row;
	}

	if ( $total_categories = count($category_rows) )
	{
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			ORDER BY cat_id, forum_order";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}

		$boxstring = '<select name="' . POST_FORUM_URL . '" onchange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"

		$forum_rows = array();
		while ( $row = $db->sql_fetchrow($result) )
		{
			$forum_rows[] = $row;
		}

		if ( $total_forums = count($forum_rows) )
		{
			for($i = 0; $i < $total_categories; $i++)
			{
				$boxstring_forums = '';
				for($j = 0; $j < $total_forums; $j++)
				{
					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_REG )
					{

//					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $is_auth[$forum_rows[$j]['forum_id']]['auth_view'] )
//					{
						$selected = ( $forum_rows[$j]['forum_id'] == $match_forum_id ) ? 'selected="selected"' : '';
						$boxstring_forums .=  '<option value="' . $forum_rows[$j]['forum_id'] . '"' . $selected . '>' . $forum_rows[$j

						//
						// Add an array to $nav_links for the Mozilla navigation bar.
						// 'chapter' and 'forum' can create multiple items, therefore we are using a nested array.
						//
						$nav_links['chapter forum'][$forum_rows[$j]['forum_id']] = array (
							'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_rows[$j]['forum_id']),
							'title' => $forum_rows[$j]['forum_name']
						);

					}
				}

				if ( $boxstring_forums != '' )
				{
					$boxstring .= '<option value="-1">&nbsp;</option>';
					$boxstring .= '<option value="-1">' . $category_rows[$i]['cat_title'] . '</option>';
					$boxstring .= '<option value="-1">----------------</option>';
					$boxstring .= $boxstring_forums;
				}
			}
		}

		$boxstring .= '</select>';
	}
	else
	{
		$boxstring .= '<select name="' . POST_FORUM_URL . '" onchange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }
	}

	// Let the jumpbox work again in sites having additional session id checks.
//	if ( !empty($SID) )
//	{
		$boxstring .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
//	}

	$template->set_filenames(array(
		'jumpbox' => 'jumpbox.tpl')
	);
	$template->assign_vars(array(
		'L_GO' => $lang['Go'],
		'L_JUMP_TO' => $lang['Jump_to'],
		'L_SELECT_FORUM' => $lang['Select_forum'],

		'S_JUMPBOX_SELECT' => $boxstring,
		'S_JUMPBOX_ACTION' => append_sid($action))
	);
	$template->assign_var_from_handle('JUMPBOX', 'jumpbox');

	return;
}


#
#----[ REPLACE WITH ]----
#
// +Smart Jump Box
function make_jumpbox($action, $match_forum_id = 0)
{
	global $db, $userdata, $template, $nav_links, $phpEx, $lang;

	$sql = "SELECT c.cat_title, f.*
		FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
		WHERE c.cat_id = f.cat_id
		AND f.auth_view <= " . AUTH_REG . "
		ORDER BY c.cat_order, f.forum_order";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain categories/forums information.", "", __LINE__, __FILE__, $sql);
	}

	$jb_rows = array();
	$last_cat_id = false;
	while ( $row = $db->sql_fetchrow($result) )
	{
		if ( $last_cat_id !== $row['cat_id'] )
		{
			$last_cat_id = $row['cat_id'];
			$jb_rows[] = array();
		}
		$jb_rows[count($jb_rows) - 1][] = $row;
	}

	if ( empty($jb_rows) )
	{
		return;
	}

	$template->set_filenames(array(
		'jumpbox' => 'jumpbox.tpl')
	);
	$template->assign_vars(array(
		'L_GO' => $lang['Go'],
		'L_JUMP_TO' => $lang['Jump_to'],
		'L_SELECT_FORUM' => $lang['Select_forum'],
		'S_SELECT_FORUM' => POST_FORUM_URL,

		'S_JUMPBOX_ACTION' => append_sid($action),
	));

	$last_cat_id = false;
	foreach ($jb_rows as $k => $cat)
	{
		if ( empty($cat) )
		{
			continue;
		}
		$template->assign_block_vars('jb_cat', array(
			'CAT_TITLE' => $cat[0]['cat_title'],
		));
		foreach ($cat as $l => $forum)
		{
			$template->assign_block_vars('jb_cat.jb_forum', array(
				'FORUM_ID' => $forum['forum_id'],
				'FORUM_SEL' => $match_forum_id && $match_forum_id == $forum['forum_id'] ? ' selected="selected" ' : '',
				//'FORUM_SEL' => isset($_GET[POST_FORUM_URL]) && $_GET[POST_FORUM_URL] == $forum['forum_id'] ? ' selected="selected" ' : '',
				'FORUM_TITLE' => $forum['forum_name'],
			));
			//
			// Add an array to $nav_links for the Mozilla navigation bar.
			// 'chapter' and 'forum' can create multiple items, therefore we are using a nested array.
			//
			$nav_links['chapter forum'][$forum['forum_id']] = array (
				'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum['forum_id']),
				'title' => $forum['forum_name'],
			);
		}
	}

	$template->assign_var_from_handle('JUMPBOX', 'jumpbox');

	return;
}
// -Smart Jump Box


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


#
#----[ FIND ]----
#
{S_JUMPBOX_SELECT}


#
#----[ REPLACE WITH ]----
#
<select name="{S_SELECT_FORUM}" onchange="if(this.options[this.selectedIndex].value != -1){ forms['jumpbox'].submit() }">
        <option value="-1">{L_SELECT_FORUM}</option>
        <!-- BEGIN jb_cat -->
        <optgroup label="{jb_cat.CAT_TITLE}">
                <!-- BEGIN jb_forum -->
                <option value="{jb_cat.jb_forum.FORUM_ID}" {jb_cat.jb_forum.FORUM_SEL} >{jb_cat.jb_forum.FORUM_TITLE}</option>
                <!-- END jb_forum -->
        </optgroup>
        <!-- END jb_cat -->
</select>


#
#----[ SAVE/CLOSE ALL FILES ]----
#

#
# EoM
#
Последний раз редактировалось quazi 02.02.2006 21:28, всего редактировалось 3 раза.
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

мод еще не "померил"... но ошибочку в твоих словах нашел =)
quazi писал(а):использует один запрос вместо одного
ощибочка в пропущенной частице =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ssmol
phpBB 1.4.4
Сообщения: 140
Стаж: 18 лет 3 месяца
Откуда: г.Брянск

Сообщение ssmol »

а поподробнее о функционале мода можно??? а то поставищь а окажется что он и ненужен :)
...все лишь иллюзия...
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

ssmol
есть такой снизу небольшой Jumpbox... =) это его переделка.... на более удобный.. и менее ресурсоемкий... =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

[R: R@m$e$ :U], спасибо за замечание, пост исправил
ssmol
phpBB 1.4.4
Сообщения: 140
Стаж: 18 лет 3 месяца
Откуда: г.Брянск

Сообщение ssmol »

[R: R@m$e$ :U]
панятна :)) придется самому ставить и смареть... ну или еси кто раньше поставит (я до своего форума не раньше чем завтра к вечеру доберусь) и ссылочкой поделется на просмотр :)
...все лишь иллюзия...
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

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

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

наш форум http://forum.aeroion.ru/cat1.html
raser
phpBB 1.0.0
Сообщения: 2
Стаж: 18 лет 1 месяц

Сообщение raser »

У меня почему то не встает.
Может у меня в jumpbox ошибка?

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

<form method="get" name="jumpbox" action="{S_JUMPBOX_ACTION}" onSubmit="if(document.jumpbox.f.value == -1){return false;}"><table cellspacing="0" cellpadding="0" border="0">
	<tr> 
		<td nowrap="nowrap"><span class="gensmall">{L_JUMP_TO}:&nbsp;<select name="{S_SELECT_FORUM}" onchange="if(this.options[this.selectedIndex].value != -1){ forms['jumpbox'].submit() }"> 
        <option value="-1">{L_SELECT_FORUM}</option> 
        <!-- BEGIN jb_cat --> 
        <optgroup label="{jb_cat.CAT_TITLE}"> 
                <!-- BEGIN jb_forum --> 
                <option value="{jb_cat.jb_forum.FORUM_ID}" {jb_cat.jb_forum.FORUM_SEL} >{jb_cat.jb_forum.FORUM_TITLE}</option> 
                <!-- END jb_forum --> 
        </optgroup> 
        <!-- END jb_cat --> 
</select>&nbsp;<input type="submit" value="{L_GO}" class="liteoption" /></span></td>
	</tr>
</table></form>
Новое - это хорошо забытое старое
Iftin
phpBB 2.0.7
Сообщения: 573
Стаж: 18 лет 11 месяцев
Откуда: Moscow

Сообщение Iftin »

Поручик
при переходе у тебя там ошибка возникает яваскриптовая....

Добавлено спустя 19 секунд:

на твойм сайте
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

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

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

наш форум http://forum.aeroion.ru/cat1.html
raser
phpBB 1.0.0
Сообщения: 2
Стаж: 18 лет 1 месяц

Сообщение raser »

Если это ко мне, то я тож оперу юзаю
Новое - это хорошо забытое старое
Iftin
phpBB 2.0.7
Сообщения: 573
Стаж: 18 лет 11 месяцев
Откуда: Moscow

Сообщение Iftin »

Поручик
ну и юзайте :lol: , а по статистике IE весь интернет использует. Я бы ошибку исправил. 8)
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

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

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

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Dr.Death
phpBB 1.4.4
Сообщения: 113
Стаж: 19 лет 4 месяца

Сообщение Dr.Death »

чет оно на нажатие кнопки не реагирует, не переходит на выбраное 8\
туже страницу перезагружает и все 8\

Добавлено спустя 15 минут 31 секунду:

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

Добавлено спустя 7 минут 30 секунд:

похоже ошибка javascript 8\
сношу.... 8)

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

емае.... стандартынй точ но так же
в чем косяк? 8\

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

гляньте у меня на форуме 8\
Аватара пользователя
Никто
Advanced Lamers Team
Сообщения: 316
Стаж: 18 лет 3 месяца
Откуда: Химки
Забанен: Бессрочно

Сообщение Никто »

[quote=http://stat.yandex.ru/stats.xml?ReportI ... rojectID=0]Internet Explorer 86.99
Opera 8.51
Firefox 4.55
Mozilla 0.53
Мобильники и КПК 0.37
Netscape 0.23
Safari 0.19
Не определен 0.15
Avant Browser 0.09
Konqueror 0.03[/quote]
Думаю они просто не знают про существование других, или как я используют opera и стоит ф-я представляться как IE 6 ;)
Долой edgar'a - самого тупого юзера на форуме!

Вернуться в «Бета-версии модов для phpBB 2.0.x»