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

Список подфорумов в столбик

Есть любые вопросы, связанные со стилями/темами для phpBB 3.0.x? Задайте их здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16353
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 535 раз
Поблагодарили: 2134 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение rxu »

Наверное, надо еще в шаблоне соответствующие изменения прописать, как думаете?
Откуда там картинкам-то взяться? :)
Изображение
monk70
phpBB 1.2.1
Сообщения: 23
Стаж: 14 лет 11 месяцев
Благодарил (а): 4 раза

Re: Список подфорумов в столбик

Сообщение monk70 »

Наверное, надо еще в шаблоне соответствующие изменения прописать, как думаете?
Зачем если они должны быть динамичными? Если нет непрочитанных сообщений - одна картинка, есть - другая.
К тому же в шаблоне просильвера нет картинок:

просильвер

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

<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS --><br /><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}<!-- ENDIF -->
субсильвер

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

<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
<p class="forumdesc"><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}</p>
<!-- ENDIF -->
Отсюда можно сделать вывод, что функционал прописан ещё в пхп коде. Соответственно должно работать и в просильвере, и в субсильвере, и в любом другом стиле. Но почему-то не работает.

Я даже в редакторе набора рисунков в админке поставил в "Легенда подфорума" и "Легенда подфорума с новыми сообщениями" картинки - не помогает! :?
Аватара пользователя
Izya
Former team member
Сообщения: 408
Стаж: 15 лет 7 месяцев
Откуда: Абакан, Сибирь
Благодарил (а): 1 раз
Поблагодарили: 28 раз
Контактная информация:

Re: Список подфорумов в столбик

Сообщение Izya »

monk70 писал(а):функционал прописан ещё в пхп коде
Верно.
monk70 писал(а):должно работать и в просильвере, и в субсильвере, и в любом другом стиле
Неверно.

Кроме скриптов и шаблонов есть еще CSS.
В php прописано следующее:

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

        foreach ($subforums_list as $subforum)
        {
            $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>';
        } 
То есть для ссылок подфорумов определяется класс в зависимости от наличия непрочитанных сообщений.
В просильвере в colours.css для этих классов описываются картинки в качестве background-image:

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

ul.topiclist li.row dt a.subforum.read {
	background-image: url("{IMG_SUBFORUM_READ_SRC}");
}

ul.topiclist li.row dt a.subforum.unread {
	background-image: url("{IMG_SUBFORUM_UNREAD_SRC}");
}
В субсильвере эти классы никак не описаны.
Изображение
monk70
phpBB 1.2.1
Сообщения: 23
Стаж: 14 лет 11 месяцев
Благодарил (а): 4 раза

Re: Список подфорумов в столбик

Сообщение monk70 »

Izya
Большое спасибо, что объяснили!
Не подскажите как сделать это на субсильвере, если возможно?
Аватара пользователя
Izya
Former team member
Сообщения: 408
Стаж: 15 лет 7 месяцев
Откуда: Абакан, Сибирь
Благодарил (а): 1 раз
Поблагодарили: 28 раз
Контактная информация:

Re: Список подфорумов в столбик

Сообщение Izya »

По аналогии.
Родительские тэги в css субсильвера можете в принципе не указывать, так как класс subforum не используется. Ну и паддинг левый там еще, видимо, потребуется указать.
Изображение
monk70
phpBB 1.2.1
Сообщения: 23
Стаж: 14 лет 11 месяцев
Благодарил (а): 4 раза

Re: Список подфорумов в столбик

Сообщение monk70 »

Izya
То есть надо прописать в stylesheet.css субсильвера следующее:

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

ul.topiclist li.row dt a.subforum.read {
   background-image: url("{IMG_SUBFORUM_READ_SRC}");
	padding: 2px;
}

ul.topiclist li.row dt a.subforum.unread {
   background-image: url("{IMG_SUBFORUM_UNREAD_SRC}");
	padding: 2px;
}
Так?
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 15 лет
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Список подфорумов в столбик

Сообщение Vitaliy21 »

monk70

в stylesheet.css для subsilver2

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

a.subforum {
   background-image: none;
   background-position: 0 50%;
   background-repeat: no-repeat;
   position: relative;
   white-space: nowrap;
   padding: 0 0 0 12px;
}

a.subforum.read {
   background-image: url("{IMG_SUBFORUM_READ_SRC}");
}

a.subforum.unread {
   background-image: url("{IMG_SUBFORUM_READ_SRC}");
}
monk70
phpBB 1.2.1
Сообщения: 23
Стаж: 14 лет 11 месяцев
Благодарил (а): 4 раза

Re: Список подфорумов в столбик

Сообщение monk70 »

Vitaliy21
Большое спасибо! Заработало.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 17 лет 10 месяцев
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение Палыч »

Oleg NT писал(а):Будет время, выложу решение (которое невалидное)
Пока у Олега времени не нашлось, решение подфорумам в 5 столбиков (не валидное) 8-)
Если установленное количество подфорумов в одном столбике ($i) х 5 будет меньше общего количества подфорумов в форуме, то лишние не будут отображаться в списках
includes/functions_display.php

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

== FIND ==
        $s_subforums_list = array();
== REPLACE ==
        $s_subforums_list = $s_subforums_list_m = array();
        $s_subforums_list_0 = $s_subforums_list_1 = $s_subforums_list_2 = $s_subforums_list_3 = $s_subforums_list_4 ='';
== FIND ==
        $s_subforums_list = (string) implode(', ', $s_subforums_list);
== REPLACE ==
        $i=5; //количество подфорумов в столбике, всего 5 столбиков
        $s_subforums_list_m = $s_subforums_list;
        $s_subforums_list_m = array_chunk($s_subforums_list_m,$i);
        if (count($s_subforums_list) > 1)
        {
            $s_subforums_list_0 = (string) implode(',<br />', $s_subforums_list_m[0]);
            if (count($s_subforums_list) > $i)
            {
                $s_subforums_list_1 = (string) implode(',<br />', $s_subforums_list_m[1]);
                if (count($s_subforums_list) > ($i + $i))
                {
                    $s_subforums_list_2 = (string) implode(',<br />', $s_subforums_list_m[2]);                
                    if (count($s_subforums_list) > ($i + $i +$i))
                    {
                        $s_subforums_list_3 = (string) implode(',<br />', $s_subforums_list_m[3]);    
                        if (count($s_subforums_list) > ($i + $i + $i + $i))
                        {
                            $s_subforums_list_4 = (string) implode(',<br />', $s_subforums_list_m[4]);
                        }
                    }
                }    
            }
        }
=== FIND ===
            'SUBFORUMS'                => $s_subforums_list,
=== REPLACE ===
            'SUBFORUMS'            => $s_subforums_list_0,
            'SUBFORUMS1'            => $s_subforums_list_1,
            'SUBFORUMS2'            => $s_subforums_list_2,            
            'SUBFORUMS3'            => $s_subforums_list_3,
            'SUBFORUMS4'            => $s_subforums_list_4,     
styles/prosilver/template/forumlist_body.html

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

=== FIND ===
					<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS --><br /><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}<!-- ENDIF -->
=== REPLACE ===
					<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS --><br /><strong>{forumrow.L_SUBFORUM_STR}<br /></strong><ul  class="subforums_tub"><li>{forumrow.SUBFORUMS}</li></ul><ul class="subforums_tub"><li>{forumrow.SUBFORUMS1}</li></ul><ul class="subforums_tub"><li>{forumrow.SUBFORUMS2}</li></ul><ul class="subforums_tub"><li>{forumrow.SUBFORUMS3}</li></ul><ul class="subforums_tub"><li>{forumrow.SUBFORUMS4}</li></ul><!-- ENDIF -->
styles/prosilver/theme/content.css

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

=== add ===
.subforums_tub {
	float: left;
	padding-left: 10px;
}
Не забыть обновить тему и шаблоны на вкладке Стили в админке
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 18 лет 3 месяца
Откуда: Нижний Тагил
Поблагодарили: 11 раз
Контактная информация:

Re: Список подфорумов в столбик

Сообщение Oleg NT »

Так, доберусь тогда и я все-таки до решения. С утра пораньше.

Мой вариант:

styles/prosilver/template/forumlist_body.html

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

====НАЙТИ====
					<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS --><br /><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}<!-- ENDIF -->
====НАЙТИ В СТРОКЕ====
{forumrow.L_SUBFORUM_STR}</strong>
====ДОБАВИТЬ В СТРОКЕ, ПОСЛЕ====
<br style="clear:both" />
styles/prosilver/theme/content.css

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

====НАЙТИ====
ul.topiclist li.row dt a.subforum {
====ЗАМЕНИТЬ НА====
ul.topiclist li.row dt ul.subforums li a {
====ДОБАВИТЬ ПЕРЕД====
ul.topiclist li.row dt ul.subforums
{
	list-style: none;
	float: left;
	display: block;
	padding: 0 40px 0 0;
}

ul.topiclist li.row dt ul.subforums li
{
	display: list-item;
}
includes/functions_display.php

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

====НАЙТИ====
			$s_subforums_list[] = '<a href="' . $subforum['link']
====НАЙТИ В СТРОКЕ====
<a href="
====ДОБАВИТЬ В СТРОКЕ ПЕРЕД====
<li>
====НАЙТИ В СТРОКЕ====
</a>
====ДОБАВИТЬ В СТРОКЕ ПОСЛЕ====
</li>
====НАЙТИ====
$s_subforums_list = (string) implode(', ', $s_subforums_list);
====ЗАМЕНИТЬ НА====
		$max_subforums_column_length = 2;
		$i = 0;
		$s_subforums_list_str = '';
		foreach ($s_subforums_list as $k => $v)
		{
			if ($i == 0)
			{
				$s_subforums_list_str .= '<ul class="subforums">';
			}
			$s_subforums_list_str .= $v;
			if ($i == $max_subforums_column_length - 1)
			{
				$s_subforums_list_str .= '</ul>';
				$i = 0;
			}
			else
			{
				++$i;
			}
		}
		if ($i != 0)
		{
			$s_subforums_list_str .= '</ul>';
		}
		$s_subforums_list = $s_subforums_list_str;

Переменная $max_subforums_column_length в последней правке определяет, сколько элементов будет находиться в каждом столбике.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет 1 месяц
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение MIT »

Внесу и свой вклад в топик. В моей модификации (тема "Иконки read,unread") есть система формирования валидной таблицы с указанным количеством столбцов.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 17 лет 10 месяцев
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение Палыч »

MIT писал(а):есть система формирования валидной таблицы
Ну, я бы так не сказал... :?
document type does not allow element "table" here; assuming missing "dd" start-tag
<table style="margin:0 20px;">
character data is not allowed here
<tbody>{forumrow.SUBFORUMS}</tbody>

You have used character data somewhere it is not permitted to appear. Mistakes that can cause this error include:
putting text directly in the body of the document without wrapping it in a container element (such as a <p>aragraph</p>), or
forgetting to quote an attribute value (where characters such as "%" and "/" are common, but cannot appear without surrounding quotes)
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет 1 месяц
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение MIT »

Я конечно боюсь это спрашивать, но ты все правильно сделал? Просто на 2х форумах (которые я знаю) стоит мод и на обоих валидатор не цепляется к таблице в целом и к ее местоположению в частности...
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 17 лет 10 месяцев
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение Палыч »

MIT
Ну. там у вас сложно ошибиться.

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

find
					</dd>
				<!-- ENDIF -->
			</dl>
add after
			<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
				<table style="margin:0 20px;">
					<thead><tr><td colspan="2"><strong>{forumrow.L_SUBFORUM_STR}</strong></td></tr></thead>
					<tbody>{forumrow.SUBFORUMS}</tbody>
				</table>
			<!-- ENDIF -->
Ругается XHTML 1.0 Strict
Да и вообще, таблица в prosilver... :?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет 1 месяц
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

Re: Список подфорумов в столбик

Сообщение MIT »

Ну ошибиться там, конечно, сложно, но все-таки, смотри: вот форум, на котором стоит эта штука, валидатор (тот же XHTML 1.0 Strict) на положение таблиц не ругается (хотя ошибок на главной хватает, но это уже не ко мне).

А по поводу использования таблицы... Как там гласит правило верстки слоями? "Таблицам таблицные данные"? Ну вот чем список (упорядоченный, в несколько столбцов) подфорумов - не табличные данные?
Закрыто

Вернуться в «Стили для phpBB 3.0.x»