/**
  * 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);
 }
Ejemplo n.º 2
0
Archivo: index.php Proyecto: truffo/eep
 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();
Ejemplo n.º 4
0
        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));