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

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

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

Еще от автора

Модуль для бесплатной версии компонента "Попутчики" автора Олег
и так представляю вашему вниманию модуль для бесплатной версии компонента "Попутчики" написанной Олегом.
список всех Event-ов системы
решил отдохнуть минут пять от подготовки к госам - полез сюда на сайт, прочитал такую строку в комментах в одном из последних блогов пришла идея разыс
[Хак] Выйти/войти и остаться на той же странице
где то видел на форуме тему про редирект при логине \ разлогине - как остаться на той же самой странице, если у вас стоит форма входа на всех страница
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.