Добавление иконки в категорию статей для 1.10.3 - 1.10.4

+26
2.76K
Не так давно появилась задача добавления иконки в КАТЕГОРИЮ статей.
При внесении минимальных изменениях системы, получилось вывести для каждой категории свою иконку

Правилось 2 файла
1й это /admin/applets/cats.php
2й com_content_view.tpl
ну и соответственно стили, так как при стандартных стилях вывод картинки если честно ну не очень
Вот что получилось:
Иллюстрация
В лучшем качестве
и в админке при настройке или добавлении категории
Иллюстрация
В лучшем качестве
Единственное, что картинка не обрезается, какой размер закачаете тот и будет
Стили лучше править под конкретный проект так как дизайн у всех свой.
P.S Большая благодарность в реализации этого хака DeltaS в помощи нахождения ошибки.

Перво наперво открываем файл
Расположенный по адресу
/admin/applets/cats.php
После
  1. $category['cost'] = cmsCore::request('cost', 'str', '');
  2. if (!is_numeric($category['cost'])) { $category['cost'] = ''; }
примерное 118 строча
добавляем
  1.  
  2. ////////////////////////////////////// /
  3. $category['delicon'] = $inCore->request('delicon', 'int');
  4. if ($category['delicon']) {$category['icon']='';}
  5.  
  6. if (isset($_FILES["imgfile"]["name"]) && @$_FILES["imgfile"]["name"]!=''){
  7.  
  8. $tmp_name = $_FILES["imgfile"]["tmp_name"];
  9. $file = $_FILES["imgfile"]["name"];
  10. $path_parts = pathinfo($file);
  11. $ext = $path_parts['extension'];
  12. if(mb_strstr($ext, 'php')) { die(); }
  13. $file = md5($file.time()).'.'.$ext;
  14.  
  15. if (@move_uploaded_file($tmp_name, PATH."/images/photos/icons/$file")){
  16.  
  17. $category['icon'] = $file;
  18.  
  19. } else { $msg = 'Ошибка загрузки изображения!'; }
  20. }
  21.  
  22.  
  23.  
  24. ////////////////////////////////////// /
  25.  
и после
  1. $category['cost'] = cmsCore::request('cost', 'str', 0);
  2. if (!is_numeric($category['cost'])) { $category['cost'] = ''; }
примерное 248 строчка
добавляем
  1.  
  2. ////////////////////////////////////// /
  3.  
  4. $category['delicon'] = $inCore->request('delicon', 'int');
  5. if ($category['delicon']) {$category['icon']='';}
  6.  
  7. if (isset($_FILES["imgfile"]["name"]) && @$_FILES["imgfile"]["name"]!=''){
  8.  
  9. $tmp_name = $_FILES["imgfile"]["tmp_name"];
  10. $file = $_FILES["imgfile"]["name"];
  11. $path_parts = pathinfo($file);
  12. $ext = $path_parts['extension'];
  13. if(mb_strstr($ext, 'php')) { die(); }
  14. $file = md5($file.time()).'.'.$ext;
  15.  
  16. if (@move_uploaded_file($tmp_name, PATH."/images/photos/icons/$file")){
  17.  
  18. $category['icon'] = $file;
  19.  
  20. } else { $msg = 'Ошибка загрузки изображения!'; }
  21. }
  22.  
  23. ////////////////////////////////////// /
  24.  
меняем
  1. <form id="addform" name="addform" method="post" action="index.php">
на
  1. <form enctype="multipart/form-data" id="addform" name="addform" method="post" action="index.php">
Далее добавляем после
  1. {tab=<?php echo $_LANG['AD_TAB_PUBLISH']; ?>}
вот это
  1.  
  2. <table width="100%" cellpadding="0" cellspacing="0" class="checklist">
  3. <tr>
  4. <td>
  5. <div style="margin-top:15px"><strong>Иконка категории</strong></div>
  6. <div style="margin-bottom:10px">
  7. <?php
  8.  
  9. if ($mod['icon'] && file_exists(PATH.'/images/photos/icons/'.$mod['icon'])){
  10. ?>
  11. <div style="margin-top:3px;margin-bottom:3px;padding:10px;border:solid 1px gray;text-align:center">
  12. <img src="/images/photos/icons/<?php echo $mod['icon']; ?>" />
  13. </div> <div style="text-align: right;">
  14. <input type="checkbox" id="delicon" name="delicon" value="1"> <label for="delicon">Удалить иконку</label>
  15. </div> <?php
  16.  
  17. }
  18. ?>
  19. <input type="file" name="imgfile" style="width:100%" />
  20. </div>
  21.  
  22. </td>
  23. </tr>
  24. </table>
  25.  
В Базе данных в таблице cms_category добавляем
строчку
icon тип varchar длина 250

Для вывода в категории фото правим com_content_view.tpl
после
  1. <div class="subcat">
Вставляем
  1.  
  2. {if $subcat.icon}<img src="/images/photos/icons/{$subcat.icon}">{else}<img src="/images/photos/icons/noicon.png">{/if}
  3.  
Идём в /images/photos/ и добавляем папку icons
Картинку noicon.png придумываем сами
Я делал размер картинки 150pxx125px
Всё это можно обыграть стилями для более коректного вывода

В Архиве находятся изменённые файлы и инструкция
Если будут вопросы
scuter@i.ua
Skype uu4juw

Но если вдруг кто то захочет сказать спасибо, то милости просим
ЯД 410011698827691
R146369458828
U165887339500
0
VopisUVD VopisUVD 10 лет назад #
Достойно внедрения в релиз 1.10.5 !?
0
Доротея Доротея 10 лет назад #
У меня не получается. В админке не много криво отображается всё теперь. Вкладки "Публикация" "Фото" "Доступ" исчезли, и вместо них код появился)
Может что не правильно скопировала?
0
Dim@sik Dim@sik 10 лет назад #
Отписался в личтном сообщении
+1
usa-dba43.ru usa-dba43.ru 10 лет назад #
Спасибо огромное за это дополнение. Дмитрий все отлично выполнил, теперь на моём сайте каталог выглядит красивей!!! dance
0
Dim@sik Dim@sik 10 лет назад #
Юра, спасибо за теплые слова.
+2
Владимир Савенко ✝️ Владимир Савенко ✝️ 10 лет назад #
Ай молодец Дима, и нужные вещи разрабатывает и поможет , если проблемы возникают smile Теперь и разделы статей будут красиво смотреться! жаль, что часто кармить нельзя, я бы накармил)))
0
NIKITA NIKITA 10 лет назад #
В Базе данных в таблице cms_category добавляем
строчку
icon тип varchar длина 250
Подробнее, как?
0
Helg Helg 10 лет назад #
Для УК на 10.4 подойдет?
+1
Dim@sik Dim@sik 10 лет назад #
а при чём сдесь ук ? если это под статьи
0
NIKITA NIKITA 10 лет назад #
В Базе данных в таблице cms_category добавляем
строчку
icon тип varchar длина 250
Подробнее, как?
Открыл таблицу, а далее как?
Все позабыл
+1
Dim@sik Dim@sik 10 лет назад #
Открываеш таблицу cms_category , в верхнем горизонтальном меню нажимаешь на вкладку структура. в самом низу этой вкладки структура есть строчка добавить 1 поле ставим маркер на вконец таблици и нажимаем ОК.
В открывшемся окне заполняем имя - icon, тип - varchar, длина - 250, и нажимаешь сохранить.
0
NIKITA NIKITA 10 лет назад #
Спасибо!
+2
maxisoft maxisoft 10 лет назад #
Все вроде хорошо, НО есть один момент, зачем хранить иконку в базе ? если при нормальном подходе нужно все равно проверить наличие файла на диске, и при формировании запроса категории можно просто проверить наличие файла category_ID.jpg (или png) в зависимости во что писали исходник. Хранение данных о фото , иконках в БД в данном случае излишество.
0
Dim@sik Dim@sik 10 лет назад #
мне было так проще сделать, на оригинальность я не претендовал .
+1
maxisoft maxisoft 10 лет назад #
Да это не упрек, это просто совет :)
+1
NIKITA NIKITA 10 лет назад #
Спасибо!
0
GNabi GNabi 10 лет назад #
все сделал как надо. не работает че то
0
Dim@sik Dim@sik 10 лет назад #
какая версия системы ?
0
KoRn KoRn 6 лет назад #
Привет,на 1.10.6 работает?

Еще от автора

Обновление Изображение категории и описание категории + Включение/Отключение категории
Обновил Вот это до версии 2.7.1 И добавил включение отключение категории
Изображение категории и описание категории
Дополнительное изображение категории и описание категории
Мульти фото в статьи + иконка категории для версии 1.10.6
В продолжение Зтого и этого обьединил эти 2 разработки в одно целое .
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.