перед правками не забывайте делать бэкапы!!11
Итак, проблема аналогична проблеме вывода количества статей во вложенных категориях: не выводит кол-во фоток во вложенных фотогалереях.
Как решил проблему я:
1. создаём колонку в таблице cms_photo_albums:
в таблицу cms_photo_albums добавить child_ids типа varchar(200)
в двух местах, после строки
$album['parent_id'] = cmsCore::request('parent_id', 'int');
//!---ищем детей //1 уровень $sql1 = "SELECT id FROM cms_photo_albums WHERE parent_id = '".cmsCore::request('item_id', 'int')."'"; $result1 = $inDB->query($sql1); $innercats=""; if ($inDB->num_rows($result1)) { while($innercat1 = $inDB->fetch_assoc($result1)){ $innercats = $innercats.", ".(int)$innercat1['id']; } } $album['child_ids'] = $innercats;
3. вывод. правим файл /core/classes/photo.class.php
находим функцию
public function getAlbums($parent_id=0, $differ='', $recurse=false){
// ============================================================================ // /** * Возвращает кол-во фоток в перечисленных через запятую альбомах ($parents_ids) * @return array $albums */ public function getChildAlbumsPhotocount($parents_ids){ $sql = "SELECT count(*) FROM cms_photo_files WHERE album_id IN (".$parents_ids.")"; $result = $this->inDB->query($sql); }
public function getAlbums($parent_id=0, $differ='', $recurse=false){
while ($album = $this->inDB->fetch_assoc($result)){ $album['file'] = $album['iconurl'] ? $album['iconurl'] : ($album['file'] ? $album['file'] : 'no_image.png'); $album['pubdate'] = cmsCore::dateFormat($album['pubdate']); $albums[] = $album; }
while ($album = $this->inDB->fetch_assoc($result)){ $album['file'] = $album['iconurl'] ? $album['iconurl'] : ($album['file'] ? $album['file'] : 'no_image.png'); $album['pubdate'] = cmsCore::dateFormat($album['pubdate']); if($parent_id>0) { $child=$album['id']; $album['content_count']=$this->getChildAlbumsPhotocount($child); } $albums[] = $album; }
не забывайте делать бэкапы!!11