Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
    • Теги
    • API
    • DBAPI
    • System Variables
    • MMrules
  • Дополнения
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • API

getAllChildren API MODX Evo ✈ Evolution CMS

  • Разработчикам
  • API
  • getAllChildren
Menu
  • addEventListener
  • changeWebUserPassword
  • clearCache
  • getActiveChildren
  • getAllChildren
  • getCachePath
  • getChildIds
  • getChunk
  • getConfig
  • getDocument
  • getDocumentChildren
  • getDocumentChildrenTVarOutput
  • getDocumentChildrenTVars
  • getDocumentObject
  • getDocuments
  • getFullTableName
  • getKeywords
  • getLoginUserID
  • getLoginUserName
  • getLoginUserType
  • getManagerPath
  • getMETATags
  • getPageInfo
  • getParent
  • getParentIds
  • getPlaceholder
  • getSnippetId
  • getSnippetName
  • getTemplateVar
  • getTemplateVarOutput
  • getTemplateVars
  • getUserData
  • getUserDocGroups
  • getUserInfo
  • getVersionData
  • getWebUserInfo
  • hasPermission
  • insideManager
  • invokeEvent
  • isBackend
  • isFrontend
  • isMemberOfWebGroup
  • logEvent
  • makeList
  • makeUrl
  • mapPath
  • parseChunk
  • parseText
  • parseProperties
  • putChunk
  • regClientCSS
  • regClientHTMLBlock
  • regClientScript
  • regClientStartupHTMLBlock
  • regClientStartupScript
  • removeAllEventListener
  • removeEventListener
  • runSnippet
  • sendAlert
  • setPlaceholder
  • stripTags
  • toPlaceholder
  • toPlaceholders
  • userLoggedIn
  • webAlert
  • sendmail
2695

getAllChildren API MODX Evo ✈ Evolution CMS

Возвращает информацию обо всех дочерних документах, включая неопубликованные и удаленные

Замечание: getAllChildren() возвращает информацию о дочерних документах только первого уровня.

array getAllChildren(mixed $id[, string $sort[, string $dir[, string $fields]]]);

$id - идентификатор родительского документа

$sort - поле, по которому будет производиться сортировка
- по умолчанию: menuindex

$dir - вариант сортировки:
- ASC - по возрастанию, DESC - по убыванию
- по умолчанию: ASC

$fields - список необходимых полей
по умолчанию: id, pagetitle, description, parent, alias, menutitle


Формат данных результата:

Array (
	[0] => Array (
		[id] => 50
		[pagetitle] => Документ 1
		[description] =>
		[parent] => 16
		[alias] =>
		[menutitle] =>
	)
	[1] => Array (
		[id] => 48
		[pagetitle] => Документ 2
		[description] =>
		[parent] => 16
		[alias] =>
		[menutitle] =>
	)
)

Пример

/**Структура документов:
-Статьи (1)
--Недвижимость (11)
---Эконом(111)
---Элитная(112)
--Авто (12)
**/
$modx->getActiveChildren(1); //вернет информацию о документах 11 и 12

Смотрите также: getActiveChildren


Источник Функции

Файл: manager/includes/document.parser.inc.php

Строка: 1312

function getAllChildren($id= 0, $sort= 'menuindex', $dir= 'ASC', $fields= 'id, pagetitle, description, parent, alias, menutitle') {
	$tblsc= $this->getFullTableName("site_content");
	$tbldg= $this->getFullTableName("document_groups");
	// modify field names to use sc. table reference
	$fields= 'sc.' . implode(',sc.', preg_replace("/^\s/i", "", explode(',', $fields)));
	$sort= 'sc.' . implode(',sc.', preg_replace("/^\s/i", "", explode(',', $sort)));
	// get document groups for current user
	if ($docgrp= $this->getUserDocGroups())
	$docgrp= implode(",", $docgrp);
	// build query
	$access= ($this->isFrontend() ? "sc.privateweb=0" : "1='" . $_SESSION['mgrRole'] . "' OR sc.privatemgr=0") .
	(!$docgrp ? "" : " OR dg.document_group IN ($docgrp)");
	$sql= "SELECT DISTINCT $fields FROM $tblsc sc
			LEFT JOIN $tbldg dg on dg.document = sc.id
			WHERE sc.parent = '$id'
			AND ($access)
			GROUP BY sc.id
			ORDER BY $sort $dir;";
	$result= $this->dbQuery($sql);
	$resourceArray= array ();
	for ($i= 0; $i < @ $this->recordCount($result); $i++) {
		array_push($resourceArray, @ $this->fetchRow($result));
	}
	return $resourceArray;
}