Example #1
0
 function updateVariableValue($old, $new, $val)
 {
     // check fills
     $fills = getReferences($val, INDICATOR_FILL);
     $fills2 = getReferences($val, INDICATOR_FILL_NOVALUE);
     $fills3 = getReferences($val, INDICATOR_INLINEFIELD_ANSWER);
     $fills4 = getReferences($val, INDICATOR_INLINEFIELD_TEXT);
     usort($fills, "reversenat");
     foreach ($fills as $fill) {
         $newfill = preg_replace("/\\b" . $old . "\\b/i", $new, $fill);
         if ($newfill != $fill) {
             $pattern = "/\\" . INDICATOR_FILL . preparePattern($fill) . "/i";
             $val = preg_replace($pattern, INDICATOR_FILL . $newfill, $val);
         }
     }
     // check fills no values
     usort($fills2, "reversenat");
     foreach ($fills2 as $fill) {
         $newfill = preg_replace("/\\b" . $old . "\\b/i", $new, $fill);
         if ($newfill != $fill) {
             $pattern = "/\\" . INDICATOR_FILL_NOVALUE . preparePattern($fill) . "/i";
             $val = preg_replace($pattern, INDICATOR_FILL_NOVALUE . $newfill, $val);
         }
     }
     // check inline fields
     usort($fills3, "reversenat");
     foreach ($fills3 as $fill) {
         $newfill = preg_replace("/\\b" . $old . "\\b/i", $new, $fill);
         if ($newfill != $fill) {
             $pattern = "/\\" . INDICATOR_INLINEFIELD_ANSWER . preparePattern($fill) . "/i";
             $val = preg_replace($pattern, INDICATOR_INLINEFIELD_ANSWER . $newfill, $val);
         }
     }
     // check inline field texts
     usort($fills4, "reversenat");
     foreach ($fills4 as $fill) {
         $newfill = preg_replace("/\\b" . $old . "\\b/i", $new, $fill);
         if ($newfill != $fill) {
             $pattern = "/\\" . INDICATOR_INLINEFIELD_TEXT . preparePattern($fill) . "/i";
             $val = preg_replace($pattern, INDICATOR_INLINEFIELD_TEXT . $newfill, $val);
         }
     }
     // return result
     return $val;
 }
Example #2
0
 function replaceFills($text, $updateinlinefields = false)
 {
     $cnt = 0;
     if (trim($text) == "") {
         return $text;
     }
     while (strpos($text, INDICATOR_FILL_NOVALUE) !== false) {
         $fills = getReferences($text, INDICATOR_FILL_NOVALUE);
         // sort fills by longest keys
         //uksort($fills, "compareLength");
         usort($fills, "reversenat");
         foreach ($fills as $fill) {
             $fillref = $fill;
             //str_replace("[", "\[", str_replace("]", "\]", $fill));
             $filltext = strtr($this->getFillValue(INDICATOR_FILL_NOVALUE . $fill), array('\\' => '\\\\', '$' => '\\$'));
             $pattern = "/\\" . INDICATOR_FILL_NOVALUE . preparePattern($fillref) . "/i";
             $text = preg_replace($pattern, $filltext, $text);
             //echo 'NOW: ' . $text . "<br/>";
         }
         $cnt++;
         /* stop after 999 times */
         if ($cnt > 999) {
             break;
         }
     }
     $cnt = 0;
     while (strpos($text, INDICATOR_FILL) !== false) {
         $fills = getReferences($text, INDICATOR_FILL);
         // sort fills by longest keys
         //uksort($fills, "compareLength");
         usort($fills, "reversenat");
         foreach ($fills as $fill) {
             $fillref = $fill;
             // str_replace("[", "\[", str_replace("]", "\]", $fill));
             $filltext = strtr($this->getDisplayValue($fill, $this->getFillValue($fill)), array('\\' => '\\\\', '$' => '\\$'));
             $pattern = "/\\" . INDICATOR_FILL . preparePattern($fillref) . "/i";
             $text = preg_replace($pattern, $filltext, $text);
             //echo 'NOW: ' . $text . "<br/>";
         }
         $cnt++;
         /* stop after 999 times */
         if ($cnt > 999) {
             break;
         }
     }
     if ($updateinlinefields) {
         $text = $this->updateInlineFields($text);
     }
     return $text;
 }
Example #3
0
 function handleFills($text)
 {
     $cnt = 0;
     while (strpos($text, INDICATOR_FILL) !== false) {
         $fills = getReferences($text, INDICATOR_FILL);
         // sort fills by longest keys
         usort($fills, "reversenat");
         foreach ($fills as $fill) {
             $fillref = $fill;
             // str_replace("[", "\[", str_replace("]", "\]", $fill));
             $filltext = strtr(FILL_MARKER . $this->handleFill($fill) . FILL_MARKER, array('\\' => '\\\\', '$' => '\\$'));
             $pattern = "/\\" . INDICATOR_FILL . preparePattern($fillref) . "/i";
             $text = preg_replace($pattern, $filltext, $text);
             //echo 'NOW: ' . $text . "<br/>";
         }
         $cnt++;
         /* stop after 999 times */
         if ($cnt > 999) {
             break;
         }
     }
     $text = str_replace("'", "\\'", $text);
     return str_replace(FILL_MARKER, "^", $text);
 }