Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
require_once(HTML2PS_DIR.'inline.content.builder.php');
4
 
5
class InlineContentBuilderPreLine extends InlineContentBuilder {
6
  function InlineContentBuilderPreLine() {
7
    $this->InlineContentBuilder();
8
  }
9
 
10
  /**
11
   * CSS 2.1 p.16.6
12
   * white-space: normal
13
   * This value directs user agents to collapse sequences of whitespace, and break lines as necessary to fill line boxes.
14
   */
15
  function build(&$box, $text, &$pipeline) {
16
    $text = $this->remove_leading_linefeeds($text);
17
    $text = $this->remove_trailing_linefeeds($text);
18
    $lines = $this->break_into_lines($text);
19
    $parent =& $box->get_parent_node();
20
 
21
    for ($i=0, $size = count($lines); $i<$size; $i++) {
22
      $line = $lines[$i];
23
 
24
      $words = $this->break_into_words($this->collapse_whitespace($line));
25
      foreach ($words as $word) {
26
        $box->process_word($word, $pipeline);
27
 
28
        $whitespace =& WhitespaceBox::create($pipeline);
29
        $box->add_child($whitespace);
30
      };
31
 
32
      if ((!$parent || $parent->isBlockLevel()) && $i < $size - 1) {
33
        $this->add_line_break($box, $pipeline);
34
      };
35
    };
36
  }
37
}
38
 
39
?>