Exemplo n.º 1
0
 static function create($userID = false, $optionalValues = array(), $languageLocale = false)
 {
     $dateTime = time();
     if (!$userID) {
         $userID = eZUser::currentUserID();
     }
     $nameList = new eZContentClassNameList();
     if (isset($optionalValues['serialized_name_list'])) {
         $nameList->initFromSerializedList($optionalValues['serialized_name_list']);
     } else {
         if (isset($optionalValues['name'])) {
             $nameList->initFromString($optionalValues['name'], $languageLocale);
         } else {
             $nameList->initFromString('', $languageLocale);
         }
     }
     $descriptionList = new eZSerializedObjectNameList();
     if (isset($optionalValues['serialized_description_list'])) {
         $descriptionList->initFromSerializedList($optionalValues['serialized_description_list']);
     } else {
         if (isset($optionalValues['description'])) {
             $descriptionList->initFromString($optionalValues['description'], $languageLocale);
         } else {
             $descriptionList->initFromString('', $languageLocale);
         }
     }
     $languageMask = $nameList->languageMask();
     $initialLanguageID = $nameList->alwaysAvailableLanguageID();
     $contentClassDefinition = eZContentClass::definition();
     $row = array("id" => null, "version" => 1, "serialized_name_list" => $nameList->serializeNames(), 'serialized_description_list' => $descriptionList->serializeNames(), "identifier" => "", "contentobject_name" => "", "creator_id" => $userID, "modifier_id" => $userID, "created" => $dateTime, 'remote_id' => eZRemoteIdUtility::generate('class'), "modified" => $dateTime, "is_container" => $contentClassDefinition['fields']['is_container']['default'], "always_available" => $contentClassDefinition['fields']['always_available']['default'], 'language_mask' => $languageMask, 'initial_language_id' => $initialLanguageID, "sort_field" => $contentClassDefinition['fields']['sort_field']['default'], "sort_order" => $contentClassDefinition['fields']['sort_order']['default']);
     $row = array_merge($row, $optionalValues);
     $contentClass = new eZContentClass($row);
     // setting 'dirtyData' to make sure the 'NameList' will be stored into db.
     $contentClass->NameList->setHasDirtyData(true);
     return $contentClass;
 }