Ejemplo n.º 1
0
 static function runCallbacksOnTranslatableValue($oInstance, $oRootNode, $sFieldInput, $fOnTextValue, $fBeforeChilds = null, $fAfterChilds = null, $fOnUntranslatableNode = null, $bFirstCall = true)
 {
     static $j = 0;
     if ($bFirstCall) {
         $j = 0;
     }
     //reset
     if (AnwXml::xmlIsTranslatableParent($oRootNode)) {
         if (AnwXml::xmlIsTextNode($oRootNode)) {
             if (!AnwXml::xmlIsEmptyNode($oRootNode)) {
                 if ($fOnTextValue) {
                     $oInstance->{$fOnTextValue}($oRootNode, $sFieldInput);
                 }
             }
         } else {
             if (AnwXml::xmlIsCommentNode($oRootNode)) {
             } else {
                 if (AnwXml::xmlIsPhpNode($oRootNode)) {
                     //do nothing
                 } else {
                     if ($fBeforeChilds && !AnwXml::xmlIsRootNode($oRootNode)) {
                         $oInstance->{$fBeforeChilds}($oRootNode);
                     }
                     $oChildNodes = $oRootNode->childNodes;
                     if ($oChildNodes) {
                         //WARNING - don't use foreach here ! bug on some servers, as childs are getting modified...
                         for ($i = 0; $i < $oChildNodes->length; $i++) {
                             $oChild = $oChildNodes->item($i);
                             $sFieldInputNew = self::runCallbacks_getInputName($sFieldInput, $j, '-');
                             self::runCallbacksOnTranslatableValue($oInstance, $oChild, $sFieldInputNew, $fOnTextValue, $fBeforeChilds, $fAfterChilds, $fOnUntranslatableNode, false);
                             //recursive
                             $j++;
                         }
                     }
                     if ($fAfterChilds && !AnwXml::xmlIsRootNode($oRootNode)) {
                         $oInstance->{$fAfterChilds}($oRootNode);
                     }
                 }
             }
         }
     } else {
         if ($fOnUntranslatableNode) {
             $oInstance->{$fOnUntranslatableNode}($oRootNode);
         }
     }
 }