/** * Returns available classes as Js array. * Checks for ini settings. * * @param array|bool $parameters * @return string */ static function availableClassListJsArray($parameters = false) { $iniMenu = eZINI::instance('contentstructuremenu.ini'); $falseValue = "''"; if ($iniMenu->hasVariable('TreeMenu', 'CreateHereMenu')) { $createHereMenu = $iniMenu->variable('TreeMenu', 'CreateHereMenu'); } else { $createHereMenu = 'simplified'; } if ($createHereMenu != 'simplified' and $createHereMenu != 'full') { return $falseValue; } $ini = eZINI::instance('content.ini'); list($usersClassGroupID, $setupClassGroupID) = $ini->variableMulti('ClassGroupIDs', array('Users', 'Setup')); $userRootNode = $ini->variable('NodeSettings', 'UserRootNode'); $groupIDs = false; $filterType = 'include'; if (!is_array($parameters)) { return $falseValue; } $node = isset($parameters['node']) ? $parameters['node'] : false; if (is_object($node)) { if ($createHereMenu == 'full' and !$node->canCreate()) { return $falseValue; } $obj = $node->object(); $contentClass = $obj->attribute('content_class'); if (!$contentClass->attribute('is_container')) { return $falseValue; } $pathArray = $node->pathArray(); } else { // If current object is not container we should not return class list, should not display "create here" menu. if (isset($parameters['is_container']) and !$parameters['is_container']) { return $falseValue; } // Check if current user can create under this node if ($createHereMenu == 'full' and isset($parameters['node_id'])) { $node = eZContentObjectTreeNode::fetch($parameters['node_id']); if (is_object($node) and !$node->canCreate()) { return $falseValue; } } $pathString = isset($parameters['path_string']) ? $parameters['path_string'] : false; if (!$pathString) { return $falseValue; } $pathItems = explode('/', $pathString); $pathArray = array(); foreach ($pathItems as $pathItem) { if ($pathItem != '') { $pathArray[] = (int) $pathItem; } } } if (in_array($userRootNode, $pathArray)) { $groupIDs = array($usersClassGroupID); } else { $groupIDs = array($usersClassGroupID, $setupClassGroupID); $filterType = 'exclude'; } if ($createHereMenu == 'simplified') { $classes = eZContentClass::fetchAllClasses(false, $filterType == 'include', $groupIDs); return eZContentObjectTreeNode::getClassesJsArray(false, $filterType == 'include', $groupIDs, false, $classes); } return eZContentObjectTreeNode::getClassesJsArray($node, $filterType == 'include', $groupIDs); }
private function listAllAttributes() { $attributeList = @eZContentClassAttribute::fetchList(); $contentClassList = eZContentClass::fetchAllClasses(true, false, false); $classDictionary = array(); foreach ($contentClassList as $classInfo) { $classId = $classInfo->ID; $classDictionary[$classInfo->ID] = $classInfo->Identifier; } $results = array(); $results[] = array("ID", "Identifier", "Data Type", "Content Class ID", "Content class identifier"); foreach ($attributeList as $attributeInfo) { $attributeId = $attributeInfo->ID; $ContentClassID = $attributeInfo->ContentClassID; $results[] = array($attributeId, $attributeInfo->Identifier, $attributeInfo->DataTypeString, $attributeInfo->ContentClassID, isset($classDictionary[$attributeInfo->ContentClassID]) ? $classDictionary[$attributeInfo->ContentClassID] : "Doesn't exist"); } eep::printTable($results, "list all attributes"); }
if (isset($options['admin-user'])) { $adminUser = $options['admin-user']; } else { $adminUser = '******'; } $user = eZUser::fetchByName($adminUser); if ($user) { eZUser::setCurrentlyLoggedInUser($user, $user->attribute('id')); } else { $cli->error('Could not fetch admin user object'); $script->shutdown(1); return; } // Take care of script monitoring $scheduledScript = false; if (isset($options['scriptid']) and in_array('ezscriptmonitor', eZExtension::activeExtensions()) and class_exists('eZScheduledScript')) { $scriptID = $options['scriptid']; $scheduledScript = eZScheduledScript::fetch($scriptID); } // Do the update if (isset($options['classid'])) { updateClass($options['classid']); } else { $cli->notice('The classid parameter was not given, will check all classes.'); $classes = eZContentClass::fetchAllClasses(false); foreach ($classes as $class) { $cli->notice('Checking class ' . $class['id'] . ': ' . $class['name']); updateClass($class['id']); } } $script->shutdown();
foreach ($sourceClassesInfo as $identifier => $classInfo) { if (isset($compareOptions['class_ids']) && in_array(-1, $compareOptions['class_ids']) === false) { $class = eZContentClass::fetchByIdentifier($identifier, false); if (in_array($class['id'], $compareOptions['class_ids'], false) === false) { continue; } } if (isset($currentClassesInfo[$identifier]) === false) { $diff[$identifier] = $classInfo; } elseif (serialize($classInfo['attributes']) != serialize($currentClassesInfo[$identifier]['attributes'])) { $diff[$identifier] = $classInfo; } } } else { $error = ezpI18n::tr('extension/nxc_content_class_diff', 'Could not fetch compare source or it does not contain any class definitions. Please update compare source.'); } } $tpl = eZTemplate::factory(); $tpl->setVariable('classes', eZContentClass::fetchAllClasses(false)); $tpl->setVariable('compare', $compare); $tpl->setVariable('compare_options', $compareOptions); $tpl->setVariable('error', $error); $tpl->setVariable('is_source_updated', $isSourceUpdated); if ($compare) { $tpl->setVariable('current_classes_info', $currentClassesInfo); $tpl->setVariable('source_classes_info', $sourceClassesInfo); $tpl->setVariable('diff', $diff); } $Result = array(); $Result['content'] = $tpl->fetch('design:compare_classes.tpl'); $Result['path'] = array(array('text' => ezpI18n::tr('extension/nxc_content_class_diff', 'Compare content classes'), 'url' => false));