Master Опубликовано 10 Октября 2006 Жалоба Поделиться Опубликовано 10 Октября 2006 Многие задают вопросы, как сделать отображение названий подфорумов на главной странице форума в строчку. Я опишу самый простой метод.Для этого заходим в админцентр форума, далее в редактирование шаблонов.skin boards ->show_subforum_linkНАЙТИ<a href="{ipb.script_url}showforum={$id}">{$name}</a>Вставить ПЕРЕД тег<br />Вуаля, теперь подфорумы идут в столбик а не в строчку Парочка "штучек" не обязательных для использования =]Некоторые задают вопросы, как убрать запятую? Решение:Открываем файл форума для редактирования (/sources/classes/class_forums.php)Находим следующее:if ( is_array( $forum_data['subforums'] ) and count( $forum_data['subforums'] ) ) { $forum_data['show_subforums'] = $this->class->html->show_subforum_all_links( implode( ', ', $forum_data['subforums'] ) ); }И вот здесь implode( ', ' убираем нашу запятую =) Еще можно перед форумами вставить какие-нибудь какртинки. Вот примерчик: Скриншот Для этого делаем слдующее:Открываем файл ./sources/classes/class_forums.phpНАХОДИМif ( ! $done_pass ) { $forum_data['subforums'][ $data['id'] ] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_link($data['id'],$data['name']);И меняем его на: if (!$done_pass) { //----------------------------------------- // Subforum Indicators //----------------------------------------- $img = $this->forums_new_posts($this->forums_calc_children($data['id'], $data, 1)); if ($img == '<{C_ON}>' || $img == '<{C_ON_CAT}>') { $img = '<{B_NEW}>'; } else if ($img == '<{C_OFF}>' || $img == '<{C_OFF_CAT}>') { $img = '<{B_NORM}>'; } else if ($img == '<{C_LOCKED}>') { $img = '<{B_HOT_NN}>'; } else if ($img == '<{C_ON_RES}>') { $img = '<{B_HOT_DOT}>'; } else if ($img == '<{C_OFF_RES}>') { $img = '<{B_HOT_NN_DOT}>'; } $forum_data['subforums'][$data['id']] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_link($data['id'], $data['name'], $img);Закрываем ./sources/classes/class_forums.php.Далее админцентр -> Внешний вид -> Менеджер стилей: [Название скина]Редактировать фрагменты HTML: skin_boards (Главная страница форума): show_subforum_linkНажимаем справа в верхнем углу на кнопочку и в всплывающей менюшке выбираем "Редактирование входящих переменных...", там находим:$id="",$name=""И после этого дописываем:, $img=""В конце концов у вас должна быть строка вида: $id="",$name="", $img="" Далее в show_subforum_link находим истроку:<a href="{ipb.script_url}showforum={$id}">{$name}</a>И ЗАМЕНЯЕМ НА{$img}<a href="{ipb.script_url}showforum={$id}">{$name}</a>{$img} - то есть теперь перед подфорумами будут отображаться картинки, которые Вы захотите видеть. Далее на вкус и цвет товарищей нет! Merry Christmas отреагировал на это 1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 10 Октября 2006 Жалоба Поделиться Опубликовано 10 Октября 2006 Как-то всё сложно? http://www.sysman.ru/index.php?showtopic=5149 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
more Опубликовано 28 Октября 2006 Жалоба Поделиться Опубликовано 28 Октября 2006 {$img} - то есть теперь перед подфорумами будут отображаться картинки, которые Вы захотите видеть. Далее на вкус и цвет товарищей нет! Еще объясните, плз, как картинки сопоставить подфорумам и куда их складировать?... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 28 Октября 2006 Автор Жалоба Поделиться Опубликовано 28 Октября 2006 Ну вводите вместо этого там коды на свои картинки для отображения перед названием подфорума и все Несложно ведь Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
more Опубликовано 28 Октября 2006 Жалоба Поделиться Опубликовано 28 Октября 2006 Ну вводите вместо этого там коды на свои картинки для отображения перед названием подфорума и все Несложно ведь , $img="" - этож переменная?... как картинку привязать к id подфорума? ... сорри что в танке Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 28 Октября 2006 Жалоба Поделиться Опубликовано 28 Октября 2006 Бойан... Тебе не кажется что лучше заменить запятую на <br>? Это исключит появления лишнего переноса после последнего подфорума. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 28 Октября 2006 Автор Жалоба Поделиться Опубликовано 28 Октября 2006 ну можно и так, в чем проблема?Мне просто своим способом привычнее удобнее. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 28 Октября 2006 Жалоба Поделиться Опубликовано 28 Октября 2006 На изе был мод для вывода картинок перед подфорумом, причем не одной а в зависимости от присутствие новых сообщений. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 28 Октября 2006 Жалоба Поделиться Опубликовано 28 Октября 2006 Garret угу вот они:http://mods.invisionize.com/db/index.php/f/5748 (для 2.1.х)http://mods.invisionize.com/db/index.php/f/4596 (для 2.0.х) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Qaros Опубликовано 28 Октября 2006 Жалоба Поделиться Опубликовано 28 Октября 2006 Как вывести на главную подфорумы второго уровня (надеюсь понятно о чем я) ?? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ctaiz Опубликовано 1 Ноября 2006 Жалоба Поделиться Опубликовано 1 Ноября 2006 Как на sysman.ru ?Подфорумы на главной странице тут писал ГиВ для 1.1* Вот ещё http://mods.invisionize.com/db/index.php/f/4596но надо чтобы глубже рыл..1-2--3---4----5 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 1 Ноября 2006 Жалоба Поделиться Опубликовано 1 Ноября 2006 Дык пишете рекурсивный обход разделов с подразделами да и все. Где-то уже был код, но и самому не проблема накалякать. Кстати подсказка посмотрите как выпадающий списочек для ыбстрого перехода по разделам форума формируется. Сразу станет ясно как действовать надо.Чтобы не дублировать самого себя дам ссылку:Быстрая навигации по форуму на главной странице форума Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Serge Опубликовано 4 Ноября 2006 Жалоба Поделиться Опубликовано 4 Ноября 2006 Master, а можно для особо тупых написать как прописывать картинки для подфорума? )и подфорумы второгоуровня на главной тоже неплохо бы сделать )) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pro-vision Опубликовано 5 Ноября 2006 Жалоба Поделиться Опубликовано 5 Ноября 2006 А как можно сделать, чтоб подфорумы отображались не в один столбик а в два ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 5 Ноября 2006 Автор Жалоба Поделиться Опубликовано 5 Ноября 2006 Открыть: sources\classes\class_forums.php Найти: if ( $this->ipsclass->vars['disable_subforum_show'] == 0 AND $show_subforums == 1 ) { if ( is_array( $forum_data['subforums'] ) and count( $forum_data['subforums'] ) ) { $forum_data['show_subforums'] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_all_links( implode( ', ', $forum_data['subforums'] ) ); } } Замените эти строки (или закомментируйте их и добавьте ниже): $my_z=0; $v_str=$this->ipsclass->vars['sf_in_column']; $sub_f="<td width='".$sf_width."%' valign=top>"; if ( $this->ipsclass->vars['disable_subforum_show'] == 0 AND $show_subforums == 1 ) { if ( is_array( $forum_data['subforums'] ) and count( $forum_data['subforums'] ) ) { IF (count( $forum_data['subforums'] ) < $v_str) $v_str=count( $forum_data['subforums']); $sf_width=ceil(count($forum_data['subforums'])/$v_str); $sf_width=100/$sf_width; while (list($sf_key, $sf_value) = each ($forum_data['subforums'])){ If ($my_z < $v_str){ $sub_f .= $sf_value."<br /> "; $my_z++; }else{ $sub_f .= "<td width='".$sf_width."%' valign=top>"; $sub_f .= $sf_value."<br /> "; $my_z=1; } } $forum_data['show_subforums'] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_all_links( $sub_f ); } } Сохраните. Далее. Шаг 2.Идем в админ панель = Настройки = добавить настройку----Название: Подфорумов в столбеГруппа настройки: Темы, Сообщения и ОпросыТип настройки: Ввод текста (одна строка)Ключ настройки: sf_in_columnТекущее значение настройки: 3 Значение настройки по умолчанию: 3Добавить эту настройку в кеш настроек: Да (не знаю за что этот параметр отвечает, я поставл Да)ДОБАВЛЯЕМ НАСТРОЙКУ. Всё! Теперь можно из Настроек регулировать сколько подфорумов будет в каждом столбе. Конечно Шаг 2 можно пропустить, если вы не собираетесь часто менять количество подфорумов в столбе. Чтобы не добавлять настроек в админку просто меняем строку в Шаге 1: Эту: $v_str=$this->ipsclass->vars['sf_in_column'];На эту: $v_str=3; // число подфорумов в столбце Я так же предусмотрел возможность автоматической подборки длинны, т.е. каждый столб будет одинаков в ширину. Выравнение по верхнему краю. в админке - Менеджер стилей - Изменить HTML фрагменты - skin_boards (Главная страница форума) - ForumRow меняем:<tr> <td align="center" class="row2" width="1%">{$data['img_new_post']}</td> <td class="row2">{$data['_queued_img']}<b><a href="{ipb.script_url}showforum={$data['id']}">{$data['name']}</a></b><br /><span class="forumdesc">{$data['description']}{$data['show_subforums']}<br /><i>{$data['moderator']}</i></span>{$data['_queued_info']}</td> <td align="center" class="row1">{$data['topics']}</td> <td align="center" class="row1">{$data['posts']}</td> <td class="row1" nowrap="nowrap">{$data['last_unread']} <span>{$data['last_post']}<br /><b>{ipb.lang['in']}:</b> {$data['last_topic']}<br /><b>{ipb.lang['by']}:</b> {$data['last_poster']}</span></td> </tr> на <tr> <td align="center" class="row2" width="1%">{$data['img_new_post']}</td> <td class="row2"> <table width=100% border=0 cellpadding=0 cellspacing=0><tr><td style="padding: 1px">{$data['_queued_img']} <b><a href="{ipb.script_url}showforum={$data['id']}" class='f_title'>{$data['name']}</a></b><br /> <span class="forumdesc">{$data['description']} <i>{$data['moderator']}</i> {$data['show_subforums']} </span>{$data['_queued_info']}</table></td> <td align="center" class="row1">{$data['topics']}</td> <td align="center" class="row1">{$data['posts']}</td> <td class="row1" nowrap="nowrap">{$data['last_unread']} <span>{$data['last_post']}<br /><b>{ipb.lang['in']}:</b> {$data['last_topic']}<br /><b>{ipb.lang['by']}:</b> {$data['last_poster']}</span></td> </tr> дальше: show_subforum_all_links меняем:<br /><b>{ipb.lang['sub_forum_title']}:</b> $linksна<tr><td valign=bottom width=100% height=100% style="padding: 1px" valign=top><table width=100% border=0 cellpadding=0 cellspacing=0 style="padding: 1px" class=ipbtable ><tr >$links</table> Всё. Должно работать. Отпишитесь, работает ли это у Вас. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pro-vision Опубликовано 6 Ноября 2006 Жалоба Поделиться Опубликовано 6 Ноября 2006 Непонял, а как(или закомментируйте их и добавьте ниже):[off]глупый вопрос наверно, но мож просто я вас не понял ?[/off]Что занчит закомментировать ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Ноября 2006 Автор Жалоба Поделиться Опубликовано 6 Ноября 2006 Комментарий предназначен для объяснения работы вашего кода (обычно). Даже при написании своих собственных сценариев, за исключением простейших сценариев, комментарии могут оказаться необходимыми во всех случаях. В PHP есть возможность создавать однострочные комментарии. Двойные косые черты или символ # приводят к тому, что любой символ, находящийся полсе них и до конца строки, будет проигнорирован синтаксическим анализатором. Заккоментировать несколько строчек можно следующим образом:/* код код код */Где /* и */ начало и конец комментария. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pro-vision Опубликовано 6 Ноября 2006 Жалоба Поделиться Опубликовано 6 Ноября 2006 Спасибо !З.ы. кстате поставили бы себе эту кнопочку, оч полезно ! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Ноября 2006 Автор Жалоба Поделиться Опубликовано 6 Ноября 2006 (изменено) Про какую кнопочку идет речь? У вас заработало отображение подфорумов в несколько столбиков? Изменено 6 Ноября 2006 пользователем Master Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pro-vision Опубликовано 6 Ноября 2006 Жалоба Поделиться Опубликовано 6 Ноября 2006 Млин фигня какая-то получилась...Вот http://www.provision.tu1.ru/forum/index.php?act=idxА мона сделать, чтоб они были как в 1 посте написанно, только в 2 столбика ? Я имел в виду "спасибо" ( кнопку ) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Ноября 2006 Автор Жалоба Поделиться Опубликовано 6 Ноября 2006 В первом посте написано только как в столбик (один) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pro-vision Опубликовано 6 Ноября 2006 Жалоба Поделиться Опубликовано 6 Ноября 2006 А в два нельзя ??? вот даже скрин сделал , чего получилось после вашего мануала по нескольким столбцам.http://img526.imageshack.us/img526/4743/111111111sa5.png Я хотел чтоб было как в первом посте но только в 2 столбца Вот я знаю, в вБулетин есть хак такой . . . . . . . . . . Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Ноября 2006 Автор Жалоба Поделиться Опубликовано 6 Ноября 2006 Если знаете ссылку на такой хак для воблы, дайте мне, я посмотрю что там, возможно сделаем и для ipb сие. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 6 Ноября 2006 Жалоба Поделиться Опубликовано 6 Ноября 2006 (изменено) Вот, нарисовал на скорую руку - отображение всех подфорумов в древовидном виде, пользуйтесь.. Код для IPB 2.1.x:/sources/classes/class_forums.phpНайти: function forums_calc_children($root_id, $forum_data=array(), $done_pass=0 )Заменить на: function forums_calc_children($root_id, $forum_data=array(), $done_pass=0, $p=0 )Найти далее: if ( ! $done_pass )Добавить выше: if( $p == 0 ){ $p = $forum_data['parent_id']; } $this->_debug = $p; $this->offset = 0; $this->my_getOffset( $root_id );Найти далее: $forum_data['subforums'][ $data['id'] ] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_link($data['id'],$data['name']);Заменить на: $forum_data['subforums'][ $data['id'] ] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_link($data['id'],$data['name'], $this->my_setOffset($this->offset));Найти далее: $forum_data = $this->forums_calc_children( $data['id'], $forum_data, 1 );Заменить на: $forum_data = $this->forums_calc_children( $data['id'], $forum_data, 0, $p );Найти далее: return $forum_data; }Добавить ниже: function my_setOffset( $of ){ $of = $of * 2; $ret = ""; for( $i = 0; $i < $of; $i++ ){ $ret .= "-"; } return $ret; } function my_getOffset( $id ){ $this->offset++; $f = $this->forum_by_id[ $id ]; if( $f['parent_id'] == $this->_debug ){ $this->offset--; return; } $this->my_getOffset( $f['parent_id'] ); }Найти (в функции forums_format_lastinfo): $forum_data['show_subforums'] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_all_links( implode( ', ', $forum_data['subforums'] ) );Заменить на: $forum_data['show_subforums'] = $this->ipsclass->compiled_templates['skin_boards']->show_subforum_all_links( implode( '<br />', $forum_data['subforums'] ) ); АЦ > Внешний Вид > skin_boards > show_subforum_link:Входящие переменные, добавить:, $offset = ""Содержание, заменить на:$offset<a href="{ipb.script_url}showforum={$id}">{$name}</a> АЦ > Внешний Вид > skin_boards > show_subforum_all_links:Содержание, заменить на:<br /><b>{ipb.lang['sub_forum_title']}:</b><br /><div style="margin-left:20px;">$links</div> Изменено 6 Ноября 2006 пользователем Destruction Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pro-vision Опубликовано 7 Ноября 2006 Жалоба Поделиться Опубликовано 7 Ноября 2006 Master, Вот мод для Воблы.Он в настройках настройку создает по редактированию отображения подфорумов.http://slil.ru/23366250 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.