本文整理汇总了PHP中eZXMLTextType::rawXMLText方法的典型用法代码示例。如果您正苦于以下问题:PHP eZXMLTextType::rawXMLText方法的具体用法?PHP eZXMLTextType::rawXMLText怎么用?PHP eZXMLTextType::rawXMLText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZXMLTextType
的用法示例。
在下文中一共展示了eZXMLTextType::rawXMLText方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: restoreXmlRelations
/**
* Parses the XML for the attributes in $classAttributeIdentifiers, and fixes the relations for $object
* @param eZContentObject $object
* @param array $classAttributeIdentifiers
* @return int The number of created relations
*/
function restoreXmlRelations(eZContentObject $object, array $classAttributeIdentifiers)
{
$currentVersion = $object->currentVersion();
$langMask = $currentVersion->attribute('language_mask');
$languageList = eZContentLanguage::decodeLanguageMask($langMask, true);
$languageList = $languageList['language_list'];
// nothing to do if the object isn't translated
if (count($languageList) < 2) {
return 0;
}
$attributeArray = $object->fetchAttributesByIdentifier($classAttributeIdentifiers, $currentVersion->attribute('version'), $languageList);
$embedRelationsCount = $object->relatedContentObjectCount(false, 0, array('AllRelations' => eZContentObject::RELATION_EMBED));
$linkRelationsCount = $object->relatedContentObjectCount(false, 0, array('AllRelations' => eZContentObject::RELATION_LINK));
$embeddedObjectIdArray = $linkedObjectIdArray = array();
foreach ($attributeArray as $attribute) {
$xmlText = eZXMLTextType::rawXMLText($attribute);
$dom = new DOMDocument('1.0', 'utf-8');
if (!$dom->loadXML($xmlText)) {
continue;
}
// linked objects
$linkedObjectIdArray = array_merge($linkedObjectIdArray, getRelatedObjectList($dom->getElementsByTagName('link')));
// embedded objects
$embeddedObjectIdArray = array_merge($embeddedObjectIdArray, getRelatedObjectList($dom->getElementsByTagName('embed')), getRelatedObjectList($dom->getElementsByTagName('embed-inline')));
}
$doCommit = false;
$restoredRelations = 0;
if (!empty($embeddedObjectIdArray)) {
$object->appendInputRelationList($embeddedObjectIdArray, eZContentObject::RELATION_EMBED);
$restoredRelations += count($embeddedObjectIdArray) - $embedRelationsCount;
$doCommit = true;
}
if (!empty($linkedObjectIdArray)) {
$object->appendInputRelationList($linkedObjectIdArray, eZContentObject::RELATION_LINK);
$restoredRelations += count($linkedObjectIdArray) - $linkRelationsCount;
$doCommit = true;
}
if ($doCommit) {
$object->commitInputRelations($currentVersion->attribute('version'));
}
return $restoredRelations;
}
示例2: 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);
}
}
示例3: title
function title($contentObjectAttribute, $value = null)
{
$text = eZXMLTextType::rawXMLText($contentObjectAttribute);
$dom = new DOMDocument('1.0', 'utf-8');
$success = $dom->loadXML($text);
// Get first text element of xml
if (!$success) {
return $text;
}
$root = $dom->documentElement;
$section = $root->firstChild;
$textDom = false;
if ($section) {
$textDom = $section->firstChild;
}
if ($textDom and $textDom->hasChildNodes) {
$text = $textDom->firstChild->textContent;
} elseif ($textDom) {
$text = $textDom->textContent;
}
return $text;
}