Пример #1
0
 static function xmlIsValid($sContent)
 {
     try {
         AnwUtils::loadXML('<doc>' . $sContent . '</doc>');
         return true;
     } catch (Exception $e) {
     }
     return false;
 }
Пример #2
0
 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);
             }
         }
     }
 }
Пример #3
0
 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);
             }
         }
     }
 }