Вывод количества фотографий и фотоальбомов — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «== Задача == Необходимо в описании раздела вывести общее количество фотографий во всех его …»)
 
Строка 12: Строка 12:
  
 
// Получаем id типа данных "Фотография"
 
// Получаем id типа данных "Фотография"
$objectTypes = umiHierarchyTypesCollection::getInstance();
+
$hierarchyTypes = umiHierarchyTypesCollection::getInstance();
$objectTypeId = $objectTypes->getTypeByName('photoalbum', 'photo')->getId();
+
$hierarchyTypeId = $objectTypes->getTypeByName('photoalbum', 'photo')->getId();
  
 
// Считаем количество дочерних объектов типа "Фотография"
 
// Считаем количество дочерних объектов типа "Фотография"
 
// Скрытые и неактивные не считаем
 
// Скрытые и неактивные не считаем
 
$hierarchy = umiHierarchy::getInstance();
 
$hierarchy = umiHierarchy::getInstance();
$childsCount = $hierarchy->getChildsCount($pid, false, false, 0, $objectTypeId);
+
$childsCount = $hierarchy->getChildsCount($pid, false, false, 0, $hierarchyTypeId);
  
 
if($childsCount){
 
if($childsCount){

Версия 11:39, 17 мая 2010

Задача

Необходимо в описании раздела вывести общее количество фотографий во всех его подразделах.

Решение

Воспользуемся кастомным макросом:

		public function phtShowPhotoCountTotal($pid = 0) {
			if(!$pid) {
				return false;
			}

			// Получаем id типа данных "Фотография"
			$hierarchyTypes = umiHierarchyTypesCollection::getInstance();
			$hierarchyTypeId = $objectTypes->getTypeByName('photoalbum', 'photo')->getId();

			// Считаем количество дочерних объектов типа "Фотография"
			// Скрытые и неактивные не считаем
			$hierarchy = umiHierarchy::getInstance();
			$childsCount = $hierarchy->getChildsCount($pid, false, false, 0, $hierarchyTypeId);

			if($childsCount){
				return $childsCount;
			} else {
				return false;
			}
		}

Далее, в шаблон Фотогалереи добавим в нужное место строчку:

%custom phtShowPhotoCountTotal(%pid%)%