本文整理汇总了PHP中eZContentObjectAttribute::fetchListByClassID方法的典型用法代码示例。如果您正苦于以下问题:PHP eZContentObjectAttribute::fetchListByClassID方法的具体用法?PHP eZContentObjectAttribute::fetchListByClassID怎么用?PHP eZContentObjectAttribute::fetchListByClassID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZContentObjectAttribute
的用法示例。
在下文中一共展示了eZContentObjectAttribute::fetchListByClassID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processData
/**
* Search through valid ezxmltext occurrences, and fix missing url object links if
* specified.
*
* @return void
*/
public function processData()
{
while ($this->processedCount < $this->xmlTextContentObjectAttributeCount()) {
$limit = array('offset' => $this->offset, 'length' => $this->fetchLimit);
$xmlAttributeChunk = eZContentObjectAttribute::fetchListByClassID($this->xmlClassAttributeIds(), false, $limit, true, false);
foreach ($xmlAttributeChunk as $xmlAttr) {
$result = true;
// If the current entry has been logged, we don't increment the running number
// so that the entries can be displayed together on output.
$currentEntryLogged = false;
$currentId = $xmlAttr->attribute('id');
$objectId = $xmlAttr->attribute('contentobject_id');
$version = $xmlAttr->attribute('version');
$languageCode = $xmlAttr->attribute('language_code');
$label = "Attribute [id:{$currentId}] - [Object-id:{$objectId}] - [Version:{$version}] - [Language:{$languageCode}]";
$xmlText = eZXMLTextType::rawXMLText($xmlAttr);
if (empty($xmlText)) {
if ($this->verboseLevel > 0) {
$this->outputString("Empty XML-data", $label, $currentEntryLogged);
$currentEntryLogged = true;
}
$result = false;
continue;
}
$dom = new DOMDocument('1.0', 'utf-8');
$success = $dom->loadXML($xmlText);
if (!$success) {
if ($this->verboseLevel > 0) {
$this->outputString("XML not loaded correctly for attribute", $label, $currentEntryLogged);
$currentEntryLogged = true;
}
$result = false;
continue;
}
$linkNodes = $dom->getElementsByTagName('link');
$urlIdArray = array();
foreach ($linkNodes as $link) {
// We are looking for external 'http://'-style links, not the internal
// object or node links.
if ($link->hasAttribute('url_id')) {
$urlIdArray[] = $link->getAttribute('url_id');
}
}
if (count($urlIdArray) > 0) {
if ($this->verboseLevel > 0) {
$this->outputString("Found http-link elements in xml-block", $label, $currentEntryLogged);
$currentEntryLogged = true;
}
$urlIdArray = array_unique($urlIdArray);
foreach ($urlIdArray as $url) {
$linkObjectLink = eZURLObjectLink::fetch($url, $currentId, $version);
if ($linkObjectLink === null) {
$result = false;
$this->outputString("Missing url object link: [id:{$currentId}] - [version:{$version}] - [url:{$url}]", $label, $currentEntryLogged);
$currentEntryLogged = true;
}
$storedUrl = eZURL::url($url);
if ($storedUrl === false) {
$result = false;
$this->outputString("Missing URL, the referenced url does not exist, [url_id:{$url}]", $label, $currentEntryLogged);
$currentEntryLogged = true;
}
}
if ($this->doFix and $linkObjectLink === null and $storedUrl !== false) {
$this->outputString("Reconstructing ezurl-object-link", $label, $currentEntryLogged);
$currentEntryLogged = true;
eZSimplifiedXMLInput::updateUrlObjectLinks($xmlAttr, $urlIdArray);
}
}
$this->script->iterate($this->cli, $result);
$label = null;
}
$this->processedCount += count($xmlAttributeChunk);
$this->offset += $this->fetchLimit;
unset($xmlAttributeChunk);
}
}