Diff for /db/prgsrc/drupal/modules/chgk_db/classes/DbField.class.php between versions 1.5 and 1.6

version 1.5, 2010/03/20 17:23:42 version 1.6, 2010/03/21 18:06:04
Line 23  class DbField { Line 23  class DbField {
     $this->formatHtml();      $this->formatHtml();
     return $this->html;      return $this->html;
   }    }
     
     protected function updateFirstParagraph() {
       $this->paragraphs[0] =
               '<strong>'.$this->getName().
               ':</strong> '. $this->paragraphs[0];
     }
     public function getFb2() {
       if ($this->fb2) {
         return $this->fb2;
       }    
       $this->fb2 = $this->value;
       $this->fb2 = html_entity_decode($this->fb2, ENT_COMPAT, 'UTF-8');
       $this->fb2 = htmlspecialchars($this->fb2, ENT_NOQUOTES, 'UTF-8');
       $this->split();
       $this->updateFirstParagraph();
       $poemStarts = $poemEnds = array();
       $codeStarts = $codeEnds = array();
   
       foreach ($this->poems as $p) {
           list($b, $e) = $p;
           $poemStarts[] = $b;
           $poemEnds[] = $e;
       }
   
       foreach ($this->codes as $p) {
           list($b, $e) = $p;
           $codeStarts[] = $b;
           $codeEnds[] = $e;
       }
   
       $inpoem = FALSE;
       $incode = FALSE;
       $result = '';
       foreach ($this->paragraphs as $k=>$p) {
           if (in_array($k, $poemStarts)) {
               $inpoem = TRUE;
               $result .= "<poem><stranza>\n";
           }
           if (in_array($k, $codeStarts)) {
               $incode = TRUE;
               $result .= "<poem><stranza>\n";
           }
   
           if ($incode) {
               $result .= "<v>$p</v>\n";
           }    elseif ($inpoem) {
               $result.="<v>$p</v>\n";
           } else {
               $result.="<p>$p</p>\n";
           }
           if (in_array($k, $poemEnds)) {
               $result .= "</stranza></poem>";
   
               $inpoem = FALSE;
           }
   
           if (in_array($k, $codeEnds)) {
               $incode = FALSE;
               $result .= "</stranza></poem>\n";
           }
   
       }
       $this->fb2 = $result;
       $this->fb2 = preg_replace('/ -+(\s+)/','&nbsp;&mdash;$1', $this->fb2);
       $this->fb2 = preg_replace('/\(pic: ([^\)]*)\)/','<image l:href="#$1" />', $this->fb2);
       return $this->fb2;
     }
   
     protected function split() {
         $lines = split ("\n", $this->fb2);
         $this->paragraphs = array();
         $current = '';
         foreach ($lines as $l) {
             if (preg_match('/^[\s\|]/', $l)) {
                 $this->paragraphs[] = $current;
                 $current = $l;
             }  else {
                $current .= $l."\n" ;
             }
         }
        $this->paragraphs[] = $current;
        $sp = '';
        $begin = $end = 0;
        $incode = FALSE;
        $this->poems = array();
        $this->codes = array();
        foreach ($this->paragraphs as $k=>$p) {
            if (preg_match('/^\|/', $p )) {
               $this->paragraphs[$k] = preg_replace('/^\|/', '',
                       $this->paragraphs[$k]);
               if (!$incode) {
                   $cbegin = $k;
                   $incode = TRUE;
               }
            } else {
                if ($incode) {
                   $this->codes[] = array($cbegin, $k);
                }
                $incode = FALSE;
            }
           $csp = preg_replace('/\S.*/', '', $p);
           if ($csp == $sp) {
               $end = $k;
           }
           else {
               if ($begin!=$end && $csp) {
                   $this->poems[] = array($begin, $end);
               }
               $begin = $end = $k;
               $sp = $csp;
           }
        }
        if ($incode) {
             $this->codes[] = array($cbegin, $k);
        }
   
        if ($begin!=$end && $csp) {
           $this->poems[] = array($begin, $end);
        }
     }
   
   public function formatHtml() {    public function formatHtml() {
     $this->html = preg_replace('/(\s+)-+(\s+)/','\1&mdash;$2', $this->html);      $this->html = preg_replace('/(\s+)-+(\s+)/','\1&mdash;$2', $this->html);
       
Line 58  class DbField { Line 178  class DbField {
   public function getValue() {    public function getValue() {
     return $this->value;      return $this->value;
   }    }
   
     public function getImages() {
         $m = preg_match_all('/\(pic:\s*(.*?)\)/', $this->value,
                 $matches, PREG_PATTERN_ORDER);
        $this->images =  $matches[1];
         return $this->images;
     }
 }  }

Removed from v.1.5  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>