/** * Returns available classes as a JSON string * * @param eZContentObjectTreeNode|bool $node * @param array|bool $includeFilter * @param array|bool $groupList * @param int|bool $fetchID * @param array|bool $classes * @return string */ static function getClassesJsArray($node = false, $includeFilter = true, $groupList = false, $fetchID = false, $classes = false) { $falseValue = "''"; // If $classes is false we should check $node and fetch class list if ($classes === false) { // If $node is object we should fetch available classes from node, from ezcontentclass otherwise $classes = $node instanceof eZContentObjectTreeNode ? $node->canCreateClassList(false, $includeFilter, $groupList, $fetchID) : eZContentClass::canInstantiateClassList(false, $includeFilter, $groupList, $fetchID); } if (!is_array($classes)) { return $falseValue; } // Create javascript array $classList = array(); foreach ($classes as $class) { if ($class instanceof eZContentClass) { $classID = $class->attribute('id'); $className = $class->attribute('name'); } elseif (is_array($class)) { $classID = $class['id']; $className = $class['name']; } $classList[] = array('classID' => (int) $classID, 'name' => $className); } if ($classList) { return json_encode($classList); } return $falseValue; }
public static function canInstantiateClassList($groupID, $parentNode, $filterType = 'include', $fetchID, $asObject, $groupByClassGroup = false) { $ClassGroupIDs = false; if (is_numeric($groupID) && $groupID > 0) { $ClassGroupIDs = array($groupID); } else { if (is_array($groupID)) { $ClassGroupIDs = $groupID; } } if (is_numeric($parentNode)) { $parentNode = eZContentObjectTreeNode::fetch($parentNode); } if (is_object($parentNode)) { $classList = $parentNode->canCreateClassList($asObject, $filterType == 'include', $ClassGroupIDs, $fetchID); } else { $classList = eZContentClass::canInstantiateClassList($asObject, $filterType == 'include', $ClassGroupIDs, $fetchID); } if ($groupByClassGroup && $asObject) { $tmpClassList = array(); $ini = eZINI::instance('content.ini'); foreach ($classList as $class) { foreach ($class->fetchGroupList() as $group) { $groupID = $group->attribute('group_id'); if (!in_array($class->attribute('identifier'), $ini->variable('FetchFunctionSettings', 'InstClassListFilter'))) { if (isset($tmpClassList[$groupID])) { $tmpClassList[$groupID]['items'][] = $class; } else { $tmpClassList[$groupID]['items'] = array($class); $tmpClassList[$groupID]['group_name'] = $group->attribute('group_name'); } } } } $classList = $tmpClassList; } return array('result' => $classList); }
static function getClassesJsArray($node = false, $includeFilter = true, $groupList = false, $fetchID = false, $classes = false) { $falseValue = "''"; // If $classes is false we should check $node and fetch class list if ($classes === false) { // If $node is object we should fetch available classes from node, from ezcontentclass otherwise $classes = (is_object($node) and strtolower(get_class($node)) == 'ezcontentobjecttreenode') ? $node->canCreateClassList(false, $includeFilter, $groupList, $fetchID) : eZContentClass::canInstantiateClassList(false, $includeFilter, $groupList, $fetchID); } if (!is_array($classes)) { return $falseValue; } // Create javascript array $jsArray = array(); $db = eZDB::instance(); foreach ($classes as $class) { if (is_object($class)) { $classID = $class->attribute('id'); $className = $class->attribute('name'); } elseif (is_array($class)) { $classID = $class['id']; $className = $class['name']; } $jsArray[] = "{ classID: '" . $db->escapeString($classID) . "', name: '" . $db->escapeString($className) . "' }"; } if ($jsArray) { return '[ ' . implode(', ', $jsArray) . ' ]'; } return $falseValue; }