/** * Returns available classes as a JSON string * * @param eZContentObjectTreeNodeNoLanguage|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 eZContentObjectTreeNodeNoLanguage ? $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; }