Как вывести названия категорий в статье?

В виде гиперссылок

#1 14 июля 2016 в 03:23
Как сделать так, чтобы ссылки на все категории, куда входит статья, показывались в ней? (2.5.1). Как вывести основную категорию нашел. Но у меня статья находится в нескольких категориях.
#2 14 июля 2016 в 20:41
Кстати оч хороший вопрос. Меня это тоже интересует.
В названием статьи чтобы выводилось название раздела, ну и в виджете на главной тоже самое сделать
#3 15 июля 2016 в 08:10


Кстати оч хороший вопрос. Меня это тоже интересует.
В названием статьи чтобы выводилось название раздела, ну и в виджете на главной тоже самое сделать

Capitan

Я такое решение нашел — instantcms.ru/forum/thread23289-1.html. Но так можно вывести только основную категорию.
#4 15 июля 2016 в 10:08
  1. if (!empty($ctype['options']['is_cats_multi'])){
  2.  
  3. $content_model = cmsCore::getModel('content');
  4.  
  5. $cats_ids = $content_model->getContentItemCategories($ctype['name'], $item['id']);
  6.  
  7. if(is_array($cats_ids) &&
  8. ($index = array_search($item['category_id'], $cats_ids)) !== false) {
  9. unset($cats_ids[$index]);
  10. }
  11.  
  12. // if(is_array($cats_ids)) {
  13. // $cats_ids = array_diff( $cats_ids, array($item['category_id']) );
  14. // }
  15.  
  16. if ($cats_ids) {
  17.  
  18. $table_name = $content_model->table_prefix . $ctype['name'] . "_cats";
  19.  
  20. $cats = $content_model->
  21. filterIn('id', $cats_ids)->
  22. get($table_name, function($item, $model){
  23. return $item['title'];
  24. });
  25.  
  26. echo ( implode(', ', $cats) );
  27.  
  28. }
  29.  
  30. }
#5 15 июля 2016 в 11:03


  1. if (!empty($ctype['options']['is_cats_multi'])){
  2.  
  3. $content_model = cmsCore::getModel('content');
  4.  
  5. $cats_ids = $content_model->getContentItemCategories($ctype['name'], $item['id']);
  6.  
  7. if(is_array($cats_ids) &&
  8. ($index = array_search($item['category_id'], $cats_ids)) !== false) {
  9. unset($cats_ids[$index]);
  10. }
  11.  
  12. // if(is_array($cats_ids)) {
  13. // $cats_ids = array_diff( $cats_ids, array($item['category_id']) );
  14. // }
  15.  
  16. if ($cats_ids) {
  17.  
  18. $table_name = $content_model->table_prefix . $ctype['name'] . "_cats";
  19.  
  20. $cats = $content_model->
  21. filterIn('id', $cats_ids)->
  22. get($table_name, function($item, $model){
  23. return $item['title'];
  24. });
  25.  
  26. echo ( implode(', ', $cats) );
  27.  
  28. }
  29.  
  30. }

Val

Спасибо! А как сделать так, что бы названия категорий были активными ссылками?
#6 15 июля 2016 в 11:50

Как вывести названия категорий в статье?

batot

Спасибо! А как сделать так, что бы названия категорий были активными ссылками?

batot
Запросы растут? laugh

Получаете методом get() значения из БД без обработки callback-функцией. Затем конструируете ссылку из полученных данных используя имя типа контента и slug категории.
#7 15 июля 2016 в 12:17
Изначально ссылки были нужны ) К сожалению, я не обладаю достаточными навыками, чтобы вашим советом воспользоваться.
#8 21 июля 2016 в 06:16
Вроде в Instantmaps категории в записи в виде ссылок выводятся. Может кто покажет пример кода оттуда?
#9 9 февраля 2021 в 22:22


Вроде в Instantmaps категории в записи в виде ссылок выводятся. Может кто покажет пример кода оттуда?

batot

В примере выше в return напишите ссылками
  1.  
  2. $cats = $content_model->
  3. filterIn('id', $cats_ids)->
  4. get($table_name, function($item, $model){
  5. return '<a class="bar_incat" href="/ваш контент/'.$item['slug'].'">'.$item['title'].'</a>';
  6. });
  7.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.