Вывод количества подкатегорий в категории Фотогалереи

#1 22 апреля 2013 в 22:22
Собственно есть раздел фотогалерея с довольно разветвленной структурой.

Т.е.:

Категория 1
Подкатегория 1
Фото1
Фото2
и т.д.
Подкатегория 2
Фото1
Фото2

Так вот, в подкатегория выводится верное количество фотографий рядом с названием. А вот в главной категории рядом с названием указан 0, это происходит как я понял из-за того, что именно в этой категории нет фотографий.

Как сделать так, чтобы в ней выводилось: либо общее количество фотографий во всех подкатегориях этой категории, либо количество подкатегорий. Предпочтительнее первый вариант. Но буду признателен за любую помощь.
#3 23 апреля 2013 в 14:28

instantcms.ru/blogs/delai-chto-dolzhno-i-budet-chto-budet/pokazat-v-roditelskoi-galere-kol-vo-fotok-vlozhenyh-galerei.html#comment_54411

Fichter
Все проделал как указано, но ничего не поменялось. Хотел уточнить, это будет действовать только для вновь создаваемых каталогов или все же количество фоток должно обновиться и на уже созданных?
#4 23 апреля 2013 в 14:44
В общем я сейчас проверил — создал новую категорию, в ней подкатегорию и туда загрузил фотку. Но увы, все по прежнему: в главной категории (0), в подкатегории (1).
Подскажите, что сделал не так...
P.S. файлы прилагаю.
P.S.S. поле в таблице создавал след. образом: через phpmyadmin Открыл вкладку таблицы cms_photo_albums "структура" и после перечисления уже имеющихся полей, будет возможность добавить поле.
Выбрал:
1 поле, в конец таблицы и нажал ок. Появилось окно, где ввел название поля (child_ids), выбрал тип VARCHAR и в ячейке длина\значение указал 200.
#6 24 апреля 2013 в 18:57
Вопрос все еще в силе…
#7 27 апреля 2013 в 12:43
Народ, ну подскажите, пожалуйста, что не так сделал то?
#8 29 апреля 2013 в 04:21
Лично я сам не знаю почему не работает. Я тоже проделал все, как указано, даже связывался с Cruzka и он мне во многом помог, подсказал, что да как. Но, ничего не вышло. Так что, если вдруг появится решение вопроса, буду рад.
#9 7 мая 2013 в 12:42
Вопрос все еще в силе, подскажите как его решить.
#10 14 мая 2013 в 12:25
Вопрос актуален и как видно, не мне одному нужно решение. Готов заплатить немного, если кто поможет решить эту небольшую, но очень досадную недоделку.
#11 30 октября 2013 в 22:49
согласен… сам сижу и мучаюсь
#12 30 октября 2013 в 23:38
Решение для версии, 1.10.3(мб. и для других подойдет но пока нет под рукой)

1) открываем www\core\classes\photo.class.php строка примерно 259
  1. SELECT a.id, a.title, a.description, a.pubdate, a.iconurl, a.thumb1, f.file, IFNULL(COUNT(f.id), 0) as content_count
заменяем на
  1. SELECT a.id, a.title, a.description, a.pubdate, a.iconurl, a.thumb1, f.file, IFNULL(COUNT(f.id), 0) as content_count, a.NSLeft, a.NSRight
2) чуть ниже после
  1. $album['pubdate'] = cmsCore::dateFormat($album['pubdate']);
вставляем
  1. $album['countphoto'] = $this->getCountPhoto($album['NSLeft'], $album['NSRight']);
3) и еще чуть ниже сразу над
  1. // ============================================================================ //
вставляем
  1. public function getCountPhoto($ns1, $ns2){
  2.  
  3. $sql = "SELECT f.id
  4. FROM cms_photo_albums a
  5. LEFT JOIN cms_photo_files f ON f.album_id = a.id AND f.published = 1
  6. WHERE a.NSLeft >= {$ns1} AND a.NSRight <= {$ns2} AND f.id > 0 AND a.published = 1
  7. ";
  8.  
  9. $result = $this->inDB->query($sql);
  10. $result = $this->inDB->num_rows($result);
  11.  
  12. return $result;
  13. }
4) остается только вывести, в вашем файле шаблона www\templates\_шаблон_\components\com_photos_view.tpl строка примерно 54

  1. {$cat.content_count}
меняем на
  1. {$cat.countphoto}
После этого должно подсчитывать количество фото в из самой категории + подкатегории.
#13 31 октября 2013 в 02:41


Решение для версии, 1.10.3(мб. и для других подойдет но пока нет под рукой)

1) открываем www\core\classes\photo.class.php строка примерно 259

  1. SELECT a.id, a.title, a.description, a.pubdate, a.iconurl, a.thumb1, f.file, IFNULL(COUNT(f.id), 0) as content_count
заменяем на
  1. SELECT a.id, a.title, a.description, a.pubdate, a.iconurl, a.thumb1, f.file, IFNULL(COUNT(f.id), 0) as content_count, a.NSLeft, a.NSRight
2) чуть ниже после
  1. $album['pubdate'] = cmsCore::dateFormat($album['pubdate']);
вставляем
  1. $album['countphoto'] = $this->getCountPhoto($album['NSLeft'], $album['NSRight']);
3) и еще чуть ниже сразу над
  1. // ============================================================================ //
вставляем
  1. public function getCountPhoto($ns1, $ns2){
  2.  
  3. $sql = "SELECT f.id
  4. FROM cms_photo_albums a
  5. LEFT JOIN cms_photo_files f ON f.album_id = a.id AND f.published = 1
  6. WHERE a.NSLeft >= {$ns1} AND a.NSRight 0 AND a.published = 1
  7. ";
  8.  
  9. $result = $this->inDB->query($sql);
  10. $result = $this->inDB->num_rows($result);
  11.  
  12. return $result;
  13. }
4) остается только вывести, в вашем файле шаблона www\templates\_шаблон_\components\com_photos_view.tpl строка примерно 54

  1. {$cat.content_count}
меняем на
  1. {$cat.countphoto}
После этого должно подсчитывать количество фото в из самой категории + подкатегории.

AtlantisWeb

на 1.10.1 все работает! Плюс в репу тебе! БЛАГОДАРЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ!
#14 11 ноября 2013 в 08:58
Спасибо, AtlantisWeb, все здорово получилось! А мы можем также выводить количество подальбомов в альбоме?
#15 20 ноября 2016 в 20:32
Попробовал на 1.10.6. Не работает, остаются одни кавычки. Подскажите вариант для 1.10.6
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.