Магазин
Правила Ответы на вопросы Конфиденциальность
Магазин
Правила Ответы на вопросы Конфиденциальность
  • Быстрые действия Ярлыки
    Общие действия
    Связаться с администрацией
    • Бот

       

Минимоды и хаки для phpBB3

  • Список форумов
  • Форумы по phpBB 3.0
  • Другие моды для phpBB 3.0
  • Минимоды и хаки для phpBB3

Мод сворачивания категорий для форума phpBB3

Expand categories

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.

22 сообщения
  • 1
  • 2
  • 3
  • След.
Просмотры: 5120 • 
  • Аватара пользователя
    PPK Сообщение 10.11.2011
    Существует мод под названием Expand categories (https://www.phpbb.com/customise/db/mod/ ... ategories/) для форума phpBB3 который позволяет сворачивать категории форума, с возможностью сохранения состояния в куках пользователя, а так-же в опции каждой из категорий указывать начальное состояние категории (свёрнута/развёрнута), текущая версия мода 1.4.1, под phpBB версии 3.0.5 и только для стиля prosilver, доработанный вариант этого мода под последнюю версию phpBB3 (3.0.9) + инструкция для стиля subsliver2:

    В phpmyadmin выполнить

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

    ALTER TABLE phpbb_forums ADD default_display tinyint(1) NOT NULL DEFAULT 1;
    adm/style/acp_forums.html после

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

    				<label><input type="radio" class="radio" name="display_active" value="0"<!-- IF not S_ENABLE_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
    		</dl>
    добавить

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

    		<dl>
    			<dt><label for="forum_style">{L_DEFAULT_DISPLAY}:</label><br /><span>{L_DEFAULT_DISPLAY_EXPLAIN}</span></dt>
    			<dd><label><input type="radio" class="radio" name="default_display" value="1"<!-- IF S_DEFAULT_DISPLAY --> id="default_display" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
    				<label><input type="radio" class="radio" name="default_display" value="0"<!-- IF not S_DEFAULT_DISPLAY --> id="default_display" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
    		</dl>
    includes/acp/acp_forums.php после

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

    						'forum_password_confirm'=> request_var('forum_password_confirm', '', true),
    						'forum_password_unset'	=> request_var('forum_password_unset', false),
    добавить

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

    						'default_display'		=> request_var('default_display', true),
    после

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

    							'forum_password'		=> '',
    							'forum_password_confirm'=> '',
    добавить

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

    							'default_display'		=> true,
    после

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

    					'S_ENABLE_QUICK_REPLY'		=> ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,
    					'S_CAN_COPY_PERMISSIONS'	=> ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,
    добавить

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

    					'S_DEFAULT_DISPLAY'			=> ($forum_data['default_display']) ? true : false,
    includes/functions_display.php после

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

    		// Empty category
    		if ($row['parent_id'] == $root_data['forum_id'] && $row['forum_type'] == FORUM_CAT)
    		{
    добавить

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

    			$cat_aff_stat = request_var($config['cookie_name'].'_cat_'.$row['forum_id'].'_aff_stat', intval($row['default_display']),false,true);
    после

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

    			$template->assign_block_vars('forumrow', array(
    				'S_IS_CAT'				=> true,
    добавить

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

    				'DISPLAY_CAT'			=> ($cat_aff_stat) ? '' : 'none',
    				'DISPLAY_CAT_LINK'		=> ($cat_aff_stat) ? '<a href="javascriptshow_details(\'cat_'.$row['forum_id'].'\');" title="'.$user->lang['EXPAND_CAT_HIDE'].'">-</a>' : '<a href="javascriptshow_details(\'cat_'.$row['forum_id'].'\');" title="'.$user->lang['EXPAND_CAT_DISPLAY'].'">+</a>',
    index.php после

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

    // Assign index specific vars
    $template->assign_vars(array(
    добавить

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

    	'COOKIE_NAME'		=> $config['cookie_name'],
    language/ru/acp/forums.php перед

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

    ));
    
    ?>
    добавить

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

    	'DEFAULT_DISPLAY'			=> 'Показывать форумы развёрнутыми',
    	'DEFAULT_DISPLAY_EXPLAIN'	=> 'Настройки показа/скрытия форумов',
    language/ru/common.php перед

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

    ?>
    
    добавить

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

    $lang = array_merge($lang, array(
    	'EXPAND_CAT_DISPLAY'	=> 'Показать форумы',
    	'EXPAND_CAT_HIDE'		=> 'Скрыть форумы',
    ));
    styles/prosilver/template/forumlist_body.html перед

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

    <!-- BEGIN forumrow -->
    	<!-- IF (forumrow.S_IS_CAT and not forumrow.S_FIRST_ROW) or forumrow.S_NO_CAT  -->
    добавить

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

    <script type="text/javascript">
    function show_details(id)
    {
    	if(document.getElementById(id).style.display == 'none')
    	{
    		//Display
    		document.getElementById(id).style.display = 'block';
    		//Change link
    		document.getElementById('phpbb_'+id).innerHTML = '<a href="javascriptshow_details(\''+id+'\');" title="{L_EXPAND_CAT_HIDE}">-</a>';
    		//Delete cookie
    		createCookie('{COOKIE_NAME}_'+id+'_aff_stat', 1, 365);
    	}
    	else
    	{
    		//Don't display
    		document.getElementById(id).style.display = 'none';
    		//Change link
    		document.getElementById('phpbb_'+id).innerHTML = '<a href="javascriptshow_details(\''+id+'\');" title="{L_EXPAND_CAT_DISPLAY}">+</a>';
    		//Create cookie
    		createCookie('{COOKIE_NAME}_'+id+'_aff_stat', 0, 365);
    	}
    }
    </script>
    после

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

    <!-- BEGIN forumrow -->
    	<!-- IF (forumrow.S_IS_CAT and not forumrow.S_FIRST_ROW) or forumrow.S_NO_CAT  -->
    			</ul>
    добавить

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

    			</div>
    
    заменить

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

    						<dt><!-- IF forumrow.S_IS_CAT --><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --></dt>
    на

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

    						<dt><!-- IF forumrow.S_IS_CAT --><span id="phpbb_cat_{forumrow.FORUM_ID}" style="font-size:18px;margin-right:8px;">{forumrow.DISPLAY_CAT_LINK}</span><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --></dt>
    перед

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

    			<ul class="topiclist forums">
    	<!-- ENDIF -->
    добавить

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

    				<div id="cat_{forumrow.FORUM_ID}" style="display:{forumrow.DISPLAY_CAT};">
    после

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

    	<!-- IF forumrow.S_LAST_ROW -->
    			</ul>
    добавить

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

    			</div>
    styles/subsilver2/template/forumlist_body.html перед

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

    <table class="tablebg" cellspacing="1" width="100%">
    добавить

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

    <script type="text/javascript">
    function show_details(id)
    {
    	if(document.getElementById(id).style.display == 'none')
    	{
    		//Display
    		document.getElementById(id).style.display = '';
    		//Change link
    		document.getElementById('phpbb_'+id).innerHTML = '<a class="wo_title" href="javascriptshow_details(\''+id+'\');" title="{L_EXPAND_CAT_HIDE}">-</a>';
    		//Delete cookie
    		document.cookie = '{COOKIE_NAME}_'+id+'_aff_stat=1;';
    	}
    	else
    	{
    		//Don't display
    		document.getElementById(id).style.display = 'none';
    		//Change link
    		document.getElementById('phpbb_'+id).innerHTML = '<a class="wo_title" href="javascriptshow_details(\''+id+'\');" title="{L_EXPAND_CAT_DISPLAY}">+</a>';
    		//Create cookie
    		document.cookie = '{COOKIE_NAME}_'+id+'_aff_stat=0;';
    	}
    }
    </script>
    
    
    <!-- BEGIN forumrow -->
    
    	<!-- IF (forumrow.S_IS_CAT and not forumrow.S_FIRST_ROW) or forumrow.S_NO_CAT  -->
    		</tbody>
    
    </table>
    	<!-- ENDIF -->
    
    	<!-- IF forumrow.S_IS_CAT or forumrow.S_FIRST_ROW  or forumrow.S_NO_CAT  -->
    после

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

    <table class="tablebg" cellspacing="1" width="100%">
    добавить

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

    <!-- IF forumrow.S_FIRST_ROW -->
    перед

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

    <tr>
    	<th colspan="2">&nbsp;{L_FORUM}&nbsp;</th>
    добавить

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

    	<!-- ENDIF -->
    удалить

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

    <!-- BEGIN forumrow -->
    	<!-- IF forumrow.S_IS_CAT -->
    заменить

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

    			<td class="cat" colspan="2"><h4><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></h4></td>
    на

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

    				<td class="cat" colspan="2"><h4><span id="phpbb_cat_{forumrow.FORUM_ID}" style="font-size:18px;margin-right:8px;">{forumrow.DISPLAY_CAT_LINK}</span><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></h4></td>
    заменить

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

    	<!-- ELSEIF forumrow.S_IS_LINK -->
    		<tr>
    			<td class="row1" width="50" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
    			<td class="row1">
    				<!-- IF forumrow.FORUM_IMAGE -->
    					<div style="float: {S_CONTENT_FLOW_BEGIN}; margin-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</div>
    на

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

    	<tbody id="cat_{forumrow.FORUM_ID}" style="display:{forumrow.DISPLAY_CAT};">
    заменить

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

    				<a class="forumlink" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
    				<p class="forumdesc">{forumrow.FORUM_DESC}</p>
    			</td>
    			<!-- IF forumrow.CLICKS -->
    				<td class="row2" colspan="3" align="center"><span class="genmed">{L_REDIRECTS}: {forumrow.CLICKS}</span></td>
    			<!-- ELSE -->
    				<td class="row2" colspan="3" align="center">&nbsp;</td>
    			<!-- ENDIF -->
    		</tr>
    	<!-- ELSE -->
    		<!-- IF forumrow.S_NO_CAT -->
    			<tr>
    				<td class="cat" colspan="2"><h4>{L_FORUM}</h4></td>
    				<td class="catdiv" colspan="3">&nbsp;</td>
    			</tr>
    		<!-- ENDIF -->
    на

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

    	<!-- IF not forumrow.S_IS_CAT -->
    перед

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

    <!-- BEGINELSE -->
    	<tr>
    добавить

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

    	<!-- IF forumrow.S_LAST_ROW -->
    		</tbody>
    	<!-- ENDIF -->
    Очистить кеш, обновить переделанные стили.

    Результат, скриншоты, опция в адм. разделе:


    Свёрнутые/развёрнутые категории форумов:




PPK
  • Аватара пользователя
    9CaraTT Сообщение 10.11.2011
    Класс, я мод сам использовать не буду, но выдерну мануальчик как разделить категории = D
9CaraTT
  • Аватара пользователя
    i926 Сообщение 19.01.2012
    Попробовал под 44 версию (prosilver - подобный стиль). Сворачивание категорий работает хорошо, :) но....... Две ошибки выдаёт :(
    В "Списке форумов" выдаёт ошибку и жалуется на 338 строку в /includes/functions_display.php

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

    [phpBB Debug] PHP Notice: in file /includes/functions_display.php on line 338: Undefined index: default_display

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

    $cat_aff_stat = request_var($config['cookie_name'].'_cat_'.$row['forum_id'].'_aff_stat', intval($row['default_display']),false,true);
    Редактирование форумов выдаёт эту ошибку, со ссылкой на 713 строку в /includes/acp/acp_forums.php

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

    [phpBB Debug] PHP Notice: in file /includes/acp/acp_forums.php on line 713: Undefined index: default_display

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

    'S_DEFAULT_DISPLAY'         => ($forum_data['default_display']) ? true : false,
    Стало быть поклоны Многомудрому РРК.... Имеются ли изменения в коде под 44 обнову для этого творения ?
    Настройка серверной части трекера - ppkbb3cker
i926
  • Аватара пользователя
    PPK Сообщение 23.01.2012
    нет, должно работать.
PPK
  • Аватара пользователя
    i926 Сообщение 24.01.2012
    Таки работает, но включенный Дебаг выдаёт нотисы, а они висят и не особо глаз радуют. :(
    Пока мод только на тестовом, а хотелось бы на основной натянуть.....
    Настройка серверной части трекера - ppkbb3cker
i926
  • Аватара пользователя
    PPK Сообщение 24.01.2012
    я имею ввиду должен "работать без ошибок", дебаг у меня всегда включён, можно прислать изменённые файлы - проверю.
PPK
  • Аватара пользователя
    i926 Сообщение 24.01.2012
    Окейно, выслал
    Настройка серверной части трекера - ppkbb3cker
i926
  • Аватара пользователя
    PPK Сообщение 25.01.2012
    /language/ru/acp/forums.php нет кода

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

    	'DEFAULT_DISPLAY'			=> 'Показывать форумы развёрнутыми',
    	'DEFAULT_DISPLAY_EXPLAIN'	=> 'Настройки показа/скрытия форумов',
    это выполнялось?

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

    ALTER TABLE phpbb_forums ADD default_display tinyint(1) NOT NULL DEFAULT 1;
    если префикс у таблиц не phpbb_ - заменить на свой.
PPK
  • Аватара пользователя
    i926 Сообщение 26.01.2012
    Увы.... Всё как всегда..... Сам ошибся, невнимательность..... :(
    На Тестовом, куча сайтов на прогоне, вот Перфикс и недосмотрел...... А ведь всё рядом было

    Спасибо РРК, всё в норме стало
    Настройка серверной части трекера - ppkbb3cker
i926
  • fail Сообщение 30.07.2012
    будем пробовать ставить :D
fail
22 сообщения
  • 1
  • 2
  • 3
  • След.

Вернуться в «Минимоды и хаки для phpBB3»

Time: 0.000s | Queries: 0 | Peak Memory Usage: 0.00 МБ | GZIP: Unknown | SQL Explain
  • Список форумов
2018, made with by ThemeKita Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB (C) 2009-2026 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum Форумы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Бета-версии и расширения в разработке ↳   База расширений ↳   Поиск и запросы расширений ↳   Расширения для phpBB 3.1-3.3 для донаторов ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Запросы расширений, функционала и переводов для подписчиков ↳   Переводы расширений для phpBB3.1-3.3 ↳   Стили для phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 Форумы по phpBB 3.0 ↳   Мод трекера ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   Часто задаваемые вопросы ↳   Ваши трекеры ↳   Мод трекера xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение ↳   Другие моды для phpBB 3.0 ↳   Минимоды и хаки для phpBB3 ↳   phpBB 3.0 ppkBB3cker Edition ↳   Платные услуги, моды, стили для phpBB 3.0 ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo ↳   Вопросы по phpBB 3.0 ↳   Вне тематики форума