API:getDocumentChildrenTVars
From MODx Wiki
| File: | manager/includes/document.parser.class.inc.php |
|---|---|
| Line: | 1744 |
function getDocumentChildrenTVars($parentid= 0, $tvidnames= array (), $published= 1, $docsort= "menuindex", $docsortdir= "ASC", $tvfields= "*", $tvsort= "rank", $tvsortdir= "ASC") { $docs= $this->getDocumentChildren($parentid, $published, 0, '*', '', $docsort, $docsortdir); if (!$docs) return false; else { // get user defined template variables $fields= ($tvfields == "") ? "tv.*" : 'tv.' . implode(',tv.', preg_replace("/^\s/i", "", explode(',', $tvfields))); $tvsort= ($tvsort == "") ? "" : 'tv.' . implode(',tv.', preg_replace("/^\s/i", "", explode(',', $tvsort))); if ($tvidnames == "*") $query= "tv.id<>0"; else $query= (is_numeric($tvidnames[0]) ? "tv.id" : "tv.name") . " IN ('" . implode("','", $tvidnames) . "')"; if ($docgrp= $this->getUserDocGroups()) for ($i= 0; $i < $docCount; $i++) { $docRow= $docs[$i]; $docid= $docRow['id']; $sql= "SELECT $fields, IF(tvc.value!='',tvc.value,tv.default_text) as value "; $sql .= "FROM " . $this->getFullTableName('site_tmplvars') . " tv "; $sql .= "INNER JOIN " . $this->getFullTableName('site_tmplvar_templates')." tvtpl ON tvtpl.tmplvarid = tv.id "; $sql .= "LEFT JOIN " . $this->getFullTableName('site_tmplvar_contentvalues')." tvc ON tvc.tmplvarid=tv.id AND tvc.contentid = '" . $docid . "' "; $sql .= "WHERE " . $query . " AND tvtpl.templateid = " . $docRow['template']; if ($tvsort) $sql .= " ORDER BY $tvsort $tvsortdir "; $rs= $this->dbQuery($sql); $limit= @ $this->recordCount($rs); for ($x= 0; $x < $limit; $x++) { } // get default/built-in template variables foreach ($docRow as $key => $value) { "name" => $key, "value" => $value )); } } return $result; } }