Свои иконки форума (часть 3 - изменение иконок подфорумов)

731
и так - в первой части я рассказал как сделать форумам свои иконки, с ручным заливанием иконки на сервер через ftp. как мне показали что это не ново для пользователей нашей цмс (отличие моей версии от той, что тут уже была в том, что если мы меняем иконку, то есть мы её положили в определённую папку и она есть на сервере, то мы подставляем в качестве иконки именно её, а если её нет на сервере, то подставляем стандартную иконку форума).
во второй части я поделился тем, как сделать так, чтобы возможность добавить иконку была при создании или редактировании форума через админку. всё работает как часы.
но тут выяснилось, что, если при создании форума, точнее подфорума (форум внутри какого-либо уже имеющегося форума) сколько бы не старался - иконка подфорума поумолчанию, хотя в админке при редактировании показывается та иконка, которую ему присвоил. перелопатив код - выяснилось, что за внешний вид страницы подфорумы отвечает фаил шаблона. а он зараза разработан на смарти (я php то не сильно знаю, а тут ещё и смарти zst ) - но я всё-таки поборол и это.
и так вашему вниманию представляется мод для своих иконок подфорумов
цена мода, как и предидущих его частей - free , но от материального поощрения не откажусь (данные на моей стене в профиле и в подписи на форуме)
и так заходим в папку с вашим шаблоном и переходим к файлу /components/com_forum_view.tpl и открываем его для редактирования.
находим следующий код (приведу его кусок и покажу какую именно строчку из него нужно исправить и на что)
Код PHP:
            <tr>
                <td width="32" class="{php}echo $class{/php}" align="center" valign="middle">
                    <img src="/templates/папка_шаблона/images/icons/forum/forum.png" border="0" />
                </td>
                <td width="" class="{php}echo $class{/php}" align="left" valign="middle">
                    <div class="forum_link"><a href="/forum/{$subf.id}">{$subf.title}</a></div>
                    <div class="forum_desc">{$subf.description}</div>
                    {if $subf.subforums}
                        <div class="forum_subs"><span class="forum_subs_title">{$LANG.SUBFORUMS}:</span> {$subf.subforums}</div>
                    {/if}
                </td>
                <td width="120" class="{php}echo $class{/php}" style="font-size:10px" valign="top">{$subf.messages}</td>
                <td width="250" style="font-size:10px" class="{php}echo $class{/php}" valign="top">{$subf.last_message}</td>
            </tr>
из этого всего кода нам нужна только строчка (обратите внимание на то, что "папка_шаблона" у вас бедет своя в зависимости от того, какой шаблон вы используете, ну и сам фаил forum.png может быть либо по другому адресу, либо с другим разрешением)
Код PHP:
                    <img src="/templates/папка_шаблона/images/icons/forum/forum.png" border="0" />
и меняем на следующий код (опять обращаю внимание на то, что у вас "папка_шаблона" будет своя)
Код PHP:
<!-- мод добавления иконки к подфоруму -->
<!-- начало мода -->
            {php}
$id=$this->_tpl_vars['subf']['id'];
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/images/forum/'.$id.'.gif')) {
                    echo "<img src='/images/forum/$id.gif' border='0' />";
} else {
                    echo "<img src='/templates/папка_шаблона/images/icons/forum/forum.png' border='0' />";
}
            {/php}
<!-- конец мода --> 

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

небольшое дополнение к части 2 для тех кто решил поставить мод из части 3 (всё должно же быть красиво )
в коде который я уже подправил (со второй части ) находим строку                      
Код PHP:
 echo '<td width="32" class="'.$class.'" align="center" valign="top"><img src="/components/forum/images/forum.gif" border="0" /></td>';
и заменяем на (опять таки не забываем сменить в коде "папка_шаблона" на свою)
Код PHP:
 echo '<td width="32" class="'.$class.'" align="center" valign="top">Для форума - <img src="/components/forum/images/forum.gif" border="0" />
Для подфорума - <img src="/templates/папка_шаблона/images/icons/forum/forum.png" border="0" /></td>';
чтобы маленькие иконки были на главной странице списка форумов в списке подфорумов форума сделайте следующее
открываем /components/forum/frontend.php
находим
Код PHP:
$subforums .= '<a href="/forum/'.$sf['id'].'">'.$sf['title'].'</a>';
заменяем на
Код PHP:
// мод добавления иконки к подфорумуфоруму //
// начало мода - добавление//
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/images/forum/'.$sf['id'].'.gif')) {
$subforums .= '<img height="14" src="/images/forum/'.$sf['id'].'.gif" border="0" /> <a href="/forum/'.$sf['id'].'">'.$sf['title'].'</a>';
} else {
$subforums .= '<img height="14" src="/templates/папка_шаблона/images/icons/forum/forum.png" border="0" /> <a href="/forum/'.$sf['id'].'">'.$sf['title'].'</a>';
}
// конец мода //
всё
Свои иконки форума(часть 1) (дополнено добавление из админки(часть 2)) | Сортировка в модуле последние материалы с выбором через админ-панель
Комментарии (4)
AndroS 27 августа 2011 в 05:11 0
Демо посмотреть где-то можно?
Sergey Platonov 27 августа 2011 в 05:54 0
прям сейчас нет - сайт которым щас занимаюсь в стадии заполнения и донастройки, и именно форум пока не заполнен. хотя... щас у себя подниму демо - чуть позже отпишусь ...
Sergey Platonov 28 августа 2011 в 18:03 +1
http://demoinstant.ugleg.com/forum - демо тут
логин vasya / пароль demo
nrg 12 сентября 2011 в 11:57 0
+ Вот мой пример реализации http://beersfan.ru/forum
стало намного симпатичнее и нагляднее