本文整理汇总了PHP中eZContentObjectAttribute::definition方法的典型用法代码示例。如果您正苦于以下问题:PHP eZContentObjectAttribute::definition方法的具体用法?PHP eZContentObjectAttribute::definition怎么用?PHP eZContentObjectAttribute::definition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZContentObjectAttribute
的用法示例。
在下文中一共展示了eZContentObjectAttribute::definition方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: fetchImageAttributesByFilepath
/**
* Looks up ezcontentobjectattribute entries matching an image filepath and
* a contentobjectattribute ID
*
* @param string $filePath file path to look up as URL in the XML string
* @param int $contentObjectAttributeID
*
* @return array An array with a series of ezcontentobject_attribute's id, version and language_code
*/
static function fetchImageAttributesByFilepath($filepath, $contentObjectAttributeID)
{
$db = eZDB::instance();
$contentObjectAttributeID = (int) $contentObjectAttributeID;
$cond = array('id' => $contentObjectAttributeID);
$fields = array('contentobject_id', 'contentclassattribute_id');
$limit = array('offset' => 0, 'length' => 1);
$rows = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), $fields, $cond, null, $limit, false);
if (count($rows) != 1) {
return array();
}
$contentObjectID = (int) $rows[0]['contentobject_id'];
$contentClassAttributeID = (int) $rows[0]['contentclassattribute_id'];
// Transform ", &, < and > to entities since they are being transformed in entities by DOM
// See eZImageAliasHandler::initialize()
// Ref https://jira.ez.no/browse/EZP-20090
$filepath = $db->escapeString(htmlspecialchars($filepath, version_compare(PHP_VERSION, '5.4.0', '>=') ? ENT_COMPAT | ENT_HTML401 : ENT_COMPAT, 'UTF-8'));
// Escape _ in like to avoid it to act as a wildcard !
$filepath = addcslashes($filepath, "_");
$query = "SELECT id, version, language_code\n FROM ezcontentobject_attribute\n WHERE contentobject_id = {$contentObjectID} AND\n contentclassattribute_id = {$contentClassAttributeID} AND\n data_text LIKE '%url=\"{$filepath}\"%'";
if ($db->databaseName() == 'oracle') {
$query .= " ESCAPE '\\'";
}
$rows = $db->arrayQuery($query);
return $rows;
}
示例2: definition
/**
* Makes the 'contentclass_attribute' attribute a 'field' instead
* of a function attribute, for testing purposes.
*
* @return the overridden definition array
*/
public static function definition()
{
$definitionOverride = array('fields' => array('contentclass_attribute' => array('name' => "ContentClassAttribute", 'datatype' => 'mixed')));
$definition = array_merge_recursive(parent::definition(), $definitionOverride);
$definition['class_name'] = __CLASS__;
unset($definition['function_attributes']['contentclass_attribute']);
return $definition;
}
示例3: fetchByContentObjectID
/**
* Fetch media objects by content object id
* @param int $contentObjectID contentobject id
* @param string $languageCode language code
* @param boolean $asObject if return object
* @return array
*/
static function fetchByContentObjectID($contentObjectID, $languageCode = null, $asObject = true)
{
$condition = array();
$condition['contentobject_id'] = $contentObjectID;
$condition['data_type_string'] = 'ezmedia';
if ($languageCode != null) {
$condition['language_code'] = $languageCode;
}
$custom = array(array('operation' => 'DISTINCT id', 'name' => 'id'));
$ids = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), array(), $condition, null, null, false, false, $custom);
$mediaFiles = array();
foreach ($ids as $id) {
$mediaFileObjectAttribute = eZMedia::fetch($id['id'], null, $asObject);
$mediaFiles = array_merge($mediaFiles, $mediaFileObjectAttribute);
}
return $mediaFiles;
}
示例4: fetchImageAttributesByFilepath
/**
* Looks up ezcontentobjectattribute entries matching an image filepath and
* a contentobjectattribute ID
*
* @param string $filePath file path to look up as URL in the XML string
* @param int $contentObjectAttributeID
*
* @return array An array of content object attribute ids and versions of
* image files where the url is referenced
*
* @todo Rewrite ! A where data_text LIKE '%xxx%' is a resource hog !
*/
static function fetchImageAttributesByFilepath($filepath, $contentObjectAttributeID)
{
$db = eZDB::instance();
$contentObjectAttributeID = (int) $contentObjectAttributeID;
$cond = array('id' => $contentObjectAttributeID);
$fields = array('contentobject_id', 'contentclassattribute_id');
$limit = array('offset' => 0, 'length' => 1);
$rows = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), $fields, $cond, null, $limit, false);
if (count($rows) != 1) {
return array();
}
$contentObjectID = (int) $rows[0]['contentobject_id'];
$contentClassAttributeID = (int) $rows[0]['contentclassattribute_id'];
$filepath = $db->escapeString($filepath);
// Escape _ in like to avoid it to act as a wildcard !
$filepath = addcslashes($filepath, "_");
$query = "SELECT id, version\n FROM ezcontentobject_attribute\n WHERE contentobject_id = {$contentObjectID} and\n contentclassattribute_id = {$contentClassAttributeID} and\n data_text like '%url=\"{$filepath}\"%'";
$rows = $db->arrayQuery($query);
return $rows;
}
示例5: updateContentFromClassAttribute
function updateContentFromClassAttribute($classAttributeID)
{
$asObject = true;
$i = 0;
$offset = 0;
$countList = 0;
$limit = 100;
$conditions = array("contentclassattribute_id" => $classAttributeID);
$limitArray = array('offset' => $offset, 'limit' => $limit);
$sortArray = array('id' => 'asc');
// Only fetch some objects each time to avoid memory problems.
while (true) {
$contentObjectAttributeList = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, $conditions, $sortArray, $limitArray, $asObject);
if (count($contentObjectAttributeList) == 0) {
break;
}
foreach ($contentObjectAttributeList as $contentObjectAttribute) {
$this->updateContentObjectAttribute($contentObjectAttribute);
}
$this->Cli->output(".", false);
$i++;
if ($i % 70 == 0) {
$this->Cli->output(' ' . $this->Cli->stylize('strong', $i * $limit));
}
$countList = count($contentObjectAttributeList);
unset($contentObjectList);
$offset += $limit;
$limitArray = array('offset' => $offset, 'limit' => $limit);
}
$repeatLength = 70 - $i % 70;
$count = ($i - 1) * $limit + $countList;
$this->Cli->output(str_repeat(' ', $repeatLength) . ' ' . $this->Cli->stylize('strong', $count), false);
}
示例6: array
}
}
}
// while END
if ($isTextModified) {
$xmlAttribute->setAttribute('data_text', $xmlText);
$xmlAttribute->store();
}
}
// foreach END
}
// 6. fixing datatype ezobjectrelationlist
$conditions = array('contentobject_id' => '', 'data_type_string' => 'ezobjectrelationlist');
foreach ($syncObjectIDListNew as $contentObjectID) {
$conditions['contentobject_id'] = $contentObjectID;
$attributeList = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, $conditions);
if (count($attributeList) == 0) {
continue;
}
foreach ($attributeList as $relationListAttribute) {
$relationsXmlText = $relationListAttribute->attribute('data_text');
$relationsDom = eZObjectRelationListType::parseXML($relationsXmlText);
$relationItems = $relationsDom->getElementsByTagName('relation-item');
$isRelationModified = false;
foreach ($relationItems as $relationItem) {
$originalObjectID = $relationItem->getAttribute('contentobject-id');
$key = array_search($originalObjectID, $syncObjectIDListSrc);
if ($key !== false) {
$newObjectID = $syncObjectIDListNew[$key];
$relationItem->setAttribute('contentobject-id', $newObjectID);
$isRelationModified = true;
示例7: fetchImageAttributesByFilepath
/**
* Looks up ezcontentobjectattribute entries matching an image filepath and
* a contentobjectattribute ID
*
* @param string $filePath file path to look up as URL in the XML string
* @param int $contentObjectAttributeID
*
* @return array An array of content object attribute ids and versions of
* image files where the url is referenced
*
* @todo Rewrite ! A where data_text LIKE '%xxx%' is a resource hog !
*/
static function fetchImageAttributesByFilepath( $filepath, $contentObjectAttributeID )
{
$db = eZDB::instance();
$contentObjectAttributeID = (int) $contentObjectAttributeID;
$cond = array( 'id' => $contentObjectAttributeID );
$fields = array( 'contentobject_id', 'contentclassattribute_id' );
$limit = array( 'offset' => 0, 'length' => 1 );
$rows = eZPersistentObject::fetchObjectList( eZContentObjectAttribute::definition(),
$fields,
$cond,
null,
$limit,
false );
if ( count( $rows ) != 1 )
return array();
$contentObjectID = (int)( $rows[0]['contentobject_id'] );
$contentClassAttributeID = (int)( $rows[0]['contentclassattribute_id'] );
$filepath = $db->escapeString( $filepath );
$query = "SELECT id, version
FROM ezcontentobject_attribute
WHERE contentobject_id = $contentObjectID and
contentclassattribute_id = $contentClassAttributeID and
data_text like '%url=\"$filepath\"%'";
$rows = $db->arrayQuery( $query );
return $rows;
}
示例8: allContentObjectAttributes
/**
* Fetches all attributes from any versions of the content object
*
* @param int $contentObjectID
* @param bool $asObject
* @param array|null $limit the limit array passed to {@see eZPersistentObject::fetchObjectList}
* @return eZContentObjectAttribute[]|array|null
*/
function allContentObjectAttributes( $contentObjectID, $asObject = true, $limit = null )
{
return eZPersistentObject::fetchObjectList( eZContentObjectAttribute::definition(),
null,
array("contentobject_id" => $contentObjectID ),
null,
$limit,
$asObject );
}
示例9: getPaEx
/**
* Get actual values for PaEx data for the given contentobject id.
* If not defined for the given coID, use defaults.
*
* @param int $ezcoid Contentobject id (user id) to get PaEx for
* @param bool $checkIfUserHasDatatype See if user has paex datatype, default false
* @return eZPaEx|null Actual PaEx applicable data, null if $checkIfUserHasDatatype = true
* and object does not have ezpaex datatype
*/
static function getPaEx($ezcoid, $checkIfUserHasDatatype = false)
{
$currentPaex = eZPaEx::fetch($ezcoid);
// If we don't have paex object for the current object id, create a default one
if (!$currentPaex instanceof eZPaEx) {
// unless user does not have paex datatype
if ($checkIfUserHasDatatype) {
//eZContentObject::fetch( $ezcoid );
$paexDataTypeCount = eZPersistentObject::count(eZContentObjectAttribute::definition(), array('contentobject_id' => $ezcoid, 'data_type_string' => ezpaextype::DATA_TYPE_STRING), 'id');
if (!$paexDataTypeCount) {
eZDebug::writeDebug("User id {$ezcoid} does not have paex datatype", __METHOD__);
return null;
}
}
return eZPaEx::create($ezcoid);
}
// Get default paex values from ini to use in case there is anyone missing in the object
$ini = eZINI::instance('mbpaex.ini');
$iniPasswordValidationRegexp = $ini->variable('mbpaexSettings', 'PasswordValidationRegexp');
$iniDefaultPasswordLifeTime = $ini->variable('mbpaexSettings', 'DefaultPasswordLifeTime');
$iniExpirationNotification = $ini->variable('mbpaexSettings', 'ExpirationNotification');
// If still any empty values in the paex object, set defaults from ini
if (!$currentPaex->hasRegexp()) {
$currentPaex->setAttribute('passwordvalidationregexp', $iniPasswordValidationRegexp);
eZDebug::writeDebug('Regexp empty, used default: "' . $iniPasswordValidationRegexp . '"', 'eZPaEx::getPaEx');
}
if (!$currentPaex->hasLifeTime()) {
$currentPaex->setAttribute('passwordlifetime', $iniDefaultPasswordLifeTime);
eZDebug::writeDebug('PasswordLifeTime empty, used default: "' . $iniDefaultPasswordLifeTime . '"', 'eZPaEx::getPaEx');
}
if (!$currentPaex->hasNotification()) {
$currentPaex->setAttribute('expirationnotification', $iniExpirationNotification);
eZDebug::writeDebug('ExpirationNotification empty, used default: "' . $iniPasswordValidationRegexp . '"', 'eZPaEx::getPaEx');
}
eZDebug::writeDebug('PasswordLastUpdated value: "' . $currentPaex->attribute('password_last_updated') . '"', 'eZPaEx::getPaEx');
return $currentPaex;
}
示例10: array
continue;
}
} else {
$cli->output(" Moving file to {$newPath}");
}
if (!$optDryRun && $moveFile) {
$clusterHandler->fileMove($filePath, $newPath);
$db->query("UPDATE ezimagefile SET filepath = '{$newPath}' WHERE contentobject_attribute_id = {$imageAttributeId}");
}
if (!isset($renamedFiles[$imageAttributeId])) {
$renamedFiles[$imageAttributeId] = array();
}
$renamedFiles[$imageAttributeId][$filePath] = $newPath;
}
foreach ($renamedFiles as $attributeId => $files) {
$attributeObjects = eZContentObjectAttribute::fetchObjectList(eZContentObjectAttribute::definition(), null, array('id' => $attributeId));
/** @var eZContentObjectAttribute $attributeObject */
foreach ($attributeObjects as $attributeObject) {
$dom = new DOMDocument('1.0', 'utf-8');
if (!$dom->loadXML($attributeObject->attribute('data_text'))) {
continue;
}
foreach ($dom->getElementsByTagName('ezimage') as $ezimageNode) {
// Update main image
$oldPath = $ezimageNode->getAttribute('url');
if (isset($files[$oldPath])) {
$ezimageNode->setAttribute('url', $files[$oldPath]);
$ezimageNode->setAttribute('dirpath', dirname($files[$oldPath]));
}
// Update aliases
foreach ($ezimageNode->getElementsByTagName('alias') as $ezimageAlias) {
示例11: array
<?php
$db = eZDB::instance();
$offset = 0;
$length = 100;
$cond = array('data_type_string' => xrowMetaDataType::DATA_TYPE_STRING);
$count = eZPersistentObject::count(eZContentObjectAttribute::definition(), $cond);
echo "There are {$count} priorities to reset.\n";
$output = new ezcConsoleOutput();
$bar = new ezcConsoleProgressbar($output, $count / $length);
$limit = array('offset' => $offset, 'length' => $length);
$list = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, $cond, null, $limit);
while (!empty($list)) {
$db->begin();
/* var eZContentObjectAttribute */
foreach ($list as $attribute) {
/* var xrowMetaData */
$data = $attribute->content();
$data->priority = null;
$attribute->setContent($data);
$attribute->store();
}
$db->commit();
$bar->advance();
$offset = $offset + $length;
$limit = array('offset' => $offset, 'length' => $length);
$list = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, $cond, null, $limit);
}
示例12: sleep
$script = eZScript::instance(array('description' => "Migrates sckenhancedselection datatype to version which stores content object data to database table.", 'use-session' => true, 'use-modules' => false, 'use-extensions' => true));
$script->startup();
$script->getOptions();
$script->initialize();
$cli->warning("This script will NOT republish objects, but rather update ALL versions");
$cli->warning("of content objects. If you do not wish to do that, you have");
$cli->warning("15 seconds to cancel the script! (press Ctrl-C)\n");
sleep(15);
$db = eZDB::instance();
$offset = 0;
$limit = 50;
$attributeCount = (int) eZPersistentObject::count(eZContentObjectAttribute::definition(), array('data_type_string' => 'sckenhancedselection'));
while ($offset < $attributeCount) {
eZContentObject::clearCache();
/** @var eZContentObjectAttribute[] $attributes */
$attributes = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, array('data_type_string' => 'sckenhancedselection'), null, array('offset' => $offset, 'length' => $limit));
foreach ($attributes as $attribute) {
SckEnhancedSelection::removeByAttribute($attribute->attribute('id'), $attribute->attribute('version'));
$identifiers = unserialize((string) $attribute->attribute('data_text'));
if (is_array($identifiers) && !empty($identifiers)) {
foreach ($identifiers as $identifier) {
$sckEnhancedSelection = new SckEnhancedSelection(array('contentobject_attribute_id' => $attribute->attribute('id'), 'contentobject_attribute_version' => $attribute->attribute('version'), 'identifier' => $identifier));
$sckEnhancedSelection->store();
}
}
$attribute->setAttribute('data_text', null);
$attribute->store();
$cli->output("Converted attribute #{$attribute->attribute('id')} in version {$attribute->attribute('version')}");
}
unset($attributes);
$offset += $limit;
示例13: removeRelationObject
static function removeRelationObject($contentObjectAttribute, $deletionItem)
{
if (self::isItemPublished($deletionItem)) {
return;
}
$hostObject = $contentObjectAttribute->attribute('object');
$hostObjectID = $hostObject->attribute('id');
// Do not try removing the object if present in trash
// Only objects being really orphaned (not even being in trash) should be removed by this method.
// See issue #019457
if ((int) eZPersistentObject::count(eZContentObjectTrashNode::definition(), array("contentobject_id" => $hostObjectID)) > 0) {
return;
}
$hostObjectVersions = $hostObject->versions();
$isDeletionAllowed = true;
// check if the relation item to be deleted is unique in the domain of all host-object versions
foreach ($hostObjectVersions as $version) {
if ($isDeletionAllowed and $version->attribute('version') != $contentObjectAttribute->attribute('version')) {
$relationAttribute = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, array('version' => $version->attribute('version'), 'contentobject_id' => $hostObjectID, 'contentclassattribute_id' => $contentObjectAttribute->attribute('contentclassattribute_id')));
if (count($relationAttribute) > 0) {
$relationContent = $relationAttribute[0]->content();
if (is_array($relationContent) and is_array($relationContent['relation_list'])) {
foreach ($relationContent['relation_list'] as $relationItem) {
if ($deletionItem['contentobject_id'] == $relationItem['contentobject_id'] && $deletionItem['contentobject_version'] == $relationItem['contentobject_version']) {
$isDeletionAllowed = false;
break 2;
}
}
}
}
}
}
if ($isDeletionAllowed) {
$subObjectVersion = eZContentObjectVersion::fetchVersion($deletionItem['contentobject_version'], $deletionItem['contentobject_id']);
if ($subObjectVersion instanceof eZContentObjectVersion) {
$subObjectVersion->removeThis();
} else {
eZDebug::writeError('Cleanup of subobject-version failed. Could not fetch object from relation list.\\n' . 'Requested subobject id: ' . $deletionItem['contentobject_id'] . '\\n' . 'Requested Subobject version: ' . $deletionItem['contentobject_version'], __METHOD__);
}
}
}
示例14: array
/**
* File containing the ${NAME} class.
*
* @copyright Copyright (C) eZ Systems AS. All rights reserved.
* @license For full copyright and license information view LICENSE file distributed with this source code.
* @version 2014.11.1
*/
require_once 'autoload.php';
$cli = eZCLI::instance();
$script = eZScript::instance(array('description' => "Re-creates missing references to image files in ezimagefile. See issue EZP-21324\n", 'use-session' => true, 'use-modules' => false, 'use-extensions' => true));
$script->startup();
$options = $script->getOptions("[dry-run]", "", array('n' => 'Dry run'));
$optDryRun = (bool) $options['dry-run'];
$script->initialize();
$imageAttributes = eZPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), array('id', 'contentobject_id', 'version', 'data_text'), array('data_type_string' => 'ezimage'), null, null, false);
$cli->output("Re-creating missing ezcontentobject_attribute / ezimagefile references");
if ($optDryRun) {
$cli->warning("dry-run mode");
}
foreach ($imageAttributes as $imageAttribute) {
if (($doc = simplexml_load_string($imageAttribute["data_text"])) === false) {
continue;
}
// Creates ezimagefile entries
foreach ($doc->xpath("//*/@url") as $url) {
$url = (string) $url;
echo "Processing {$imageAttribute['contentobject_id']}#{$imageAttribute['version']} ({$url})\n";
if ($url === "") {
continue;
}
示例15: contentObject
/**
* Return the contentObject.
*
* @return void
*/
public function contentObject()
{
$singleAttributeList = ezPersistentObject::fetchObjectList(eZContentObjectAttribute::definition(), null, array('id' => $this->attribute('contentobjectattribute_id')), null, 1, true);
$singleAttribute = $singleAttributeList[0];
return $singleAttribute->attribute('object');
}