static function &creatorList($checkRoles = false) { $allowedCreators = false; $currentUser = eZUser::currentUser(); $accessResult = $currentUser->hasAccessTo('package', 'create'); $limitationList = array(); $canCreate = false; if ($accessResult['accessWord'] == 'no') { $creators = array(); return $creators; } if ($accessResult['accessWord'] == 'limited') { $limitationList = $accessResult['policies']; foreach ($limitationList as $limitationArray) { foreach ($limitationArray as $key => $limitation) { if ($key == 'CreatorType') { if (!is_array($allowedCreators)) { $allowedCreators = array(); } $list = $limitation; $allowedCreators = array_merge($allowedCreators, $list); } } } } $creators =& $GLOBALS['eZPackageCreatorList']; if (!isset($creators)) { $creators = array(); $ini = eZINI::instance('package.ini'); $list = $ini->variable('CreationSettings', 'HandlerList'); foreach ($list as $name) { if (is_array($allowedCreators) and !in_array($name, $allowedCreators)) { continue; } $handler = eZPackageCreationHandler::instance($name); $creators[] = $handler; } } return $creators; }
if ($creatorID) { $creator = eZPackageCreationHandler::instance($creatorID); $persistentData = array(); $http->setSessionVariable('eZPackageCreatorData' . $creatorID, $persistentData); $initializeStep = true; $package = false; if (isset($persistentData['package_name'])) { $package = eZPackage::fetch($persistentData['package_name']); } $creator->generateStepMap($package, $persistentData); } } else { if ($module->isCurrentAction('PackageStep')) { if ($module->hasActionParameter('CreatorItemID')) { $creatorID = $module->actionParameter('CreatorItemID'); $creator = eZPackageCreationHandler::instance($creatorID); if ($http->hasSessionVariable('eZPackageCreatorData' . $creatorID)) { $persistentData = $http->sessionVariable('eZPackageCreatorData' . $creatorID); } else { $persistentData = array(); } $package = false; if (isset($persistentData['package_name'])) { $package = eZPackage::fetch($persistentData['package_name']); } $creator->generateStepMap($package, $persistentData); } } } $tpl = eZTemplate::factory(); $templateName = 'design:package/create.tpl';