1<?php 2class PreTreeFilterHTML2PSFields extends PreTreeFilter { 3 var $filename; 4 var $filesize; 5 var $_timestamp; 6 7 function PreTreeFilterHTML2PSFields($filename=null, $filesize=null, $timestamp=null) { 8 $this->filename = $filename; 9 $this->filesize = $filesize; 10 11 if (is_null($timestamp)) { 12 $this->_timestamp = date("Y-m-d H:s"); 13 } else { 14 $this->_timestamp = $timestamp; 15 }; 16 } 17 18 function process(&$tree, $data, &$pipeline) { 19 if (is_a($tree, 'TextBox')) { 20 // Ignore completely empty text boxes 21 if (count($tree->words) == 0) { return; }; 22 23 switch ($tree->words[0]) { 24 case '##PAGE##': 25 $parent =& $tree->parent; 26 $field = BoxTextFieldPageNo::from_box($tree); 27 28 $parent->insert_before($field, $tree); 29 30 $parent->remove($tree); 31 break; 32 case '##PAGES##': 33 $parent =& $tree->parent; 34 $field = BoxTextFieldPages::from_box($tree); 35 $parent->insert_before($field, $tree); 36 $parent->remove($tree); 37 break; 38 case '##FILENAME##': 39 if (is_null($this->filename)) { 40 $tree->words[0] = $data->get_uri(); 41 } else { 42 $tree->words[0] = $this->filename; 43 }; 44 break; 45 case '##FILESIZE##': 46 if (is_null($this->filesize)) { 47 $tree->words[0] = strlen($data->get_content()); 48 } else { 49 $tree->words[0] = $this->filesize; 50 }; 51 break; 52 case '##TIMESTAMP##': 53 $tree->words[0] = $this->_timestamp; 54 break; 55 }; 56 } elseif (is_a($tree, 'GenericContainerBox')) { 57 for ($i=0; $i<count($tree->content); $i++) { 58 $this->process($tree->content[$i], $data, $pipeline); 59 }; 60 }; 61 } 62} 63?>