static function xmlIsValid($sContent) { try { AnwUtils::loadXML('<doc>' . $sContent . '</doc>'); return true; } catch (Exception $e) { } return false; }
function setUntranslated() { $aoContentFields = $this->getContentFieldsContainer()->getContentFields(); foreach ($aoContentFields as $sFieldName => $oContentField) { if ($oContentField->isTranslatable()) { $asValues = array(); if ($oContentField instanceof AnwStructuredContentField_composed) { $aoSubContents = $this->getSubContents($sFieldName); foreach ($aoSubContents as $i => $oSubContent) { $oSubContent->setUntranslated(); //$asValues[] = AnwUtils::xmlDumpNodeChilds($oSubContent->toXml()->documentElement); } } else { $asValues = $this->getContentFieldValues($sFieldName); foreach ($asValues as $i => $sValue) { $oValueXml = AnwUtils::loadXML('<doc>' . $sValue . '</doc>'); $oValueXml = AnwXml::xmlAddTranslateTags($oValueXml); //contentfield already checked $asValues[$i] = AnwUtils::xmlDumpNodeChilds($oValueXml); } $this->setContentFieldValues($sFieldName, $asValues); } } } }
static function runCallbacksOnTranslatableField($oInstance, $oContent, $fOnValue = null, $fBeforeContentField = null, $fAfterContentField = null, $bFirstCall = true) { static $i = 0; if ($bFirstCall) { $i = 0; } //reset $aoContentFields = $oContent->getContentFieldsContainer()->getContentFields(); //each ContentFields foreach ($aoContentFields as $sFieldName => $oContentField) { if ($oContentField instanceof AnwStructuredContentField_atomic) { if ($oContentField->isTranslatable()) { $asCurrentValues = $oContent->getContentFieldValues($sFieldName); if ($fBeforeContentField) { $oInstance->{$fBeforeContentField}($oContentField, $oContent); } //each value of the ContentField foreach ($asCurrentValues as $sValue) { $sInputName = self::runCallbacks_getInputName($oContentField->getName(), $i, '_'); $oXmlValue = AnwUtils::loadXML('<doc>' . $sValue . '</doc>'); //run callback if ($fOnValue) { $oInstance->{$fOnValue}($oContentField, $oXmlValue, $sInputName); } $i++; } if ($fAfterContentField) { $oInstance->{$fAfterContentField}($oContentField, $oContent); } } } else { $aoSubContents = $oContent->getSubContents($sFieldName); if (count($aoSubContents) > 0) { $aoSubContentsNew = array(); foreach ($aoSubContents as $oSubContent) { self::runCallbacksOnTranslatableField($oInstance, $oSubContent, $fOnValue, $fBeforeContentField, $fAfterContentField, false); $aoSubContentsNew[] = $oSubContent; } $oContent->setSubContents($sFieldName, $aoSubContentsNew); } } } }