130 $this->PrevPps = $prev;
131 $this->NextPps = $next;
132 $this->DirPps = $dir;
133 $this->Time1st = $time_1st;
134 $this->Time2nd = $time_2nd;
135 $this->_data =
$data;
138 $this->Size = strlen(
$data);
152 if (!isset($this->_data)) {
160 return strlen($this->_data);
172 $ret = str_pad($this->Name,64,
"\x00");
174 $ret .= pack(
"v", strlen($this->Name) + 2)
175 . pack(
"c", $this->Type)
177 . pack(
"V", $this->PrevPps)
178 . pack(
"V", $this->NextPps)
179 . pack(
"V", $this->DirPps)
187 . pack(
"V", isset($this->_StartBlock)?
188 $this->_StartBlock:0)
189 . pack(
"V", $this->Size)
205 if ( !is_array($to_save) || (empty($to_save)) ) {
207 } elseif( count($to_save) == 1 ) {
208 $cnt = count($raList);
210 $raList[$cnt] = ( $depth == 0 ) ? $to_save[0] : clone $to_save[0];
211 $raList[$cnt]->No = $cnt;
212 $raList[$cnt]->PrevPps = 0xFFFFFFFF;
213 $raList[$cnt]->NextPps = 0xFFFFFFFF;
214 $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++);
216 $iPos = floor(count($to_save) / 2);
217 $aPrev = array_slice($to_save, 0, $iPos);
218 $aNext = array_slice($to_save, $iPos + 1);
219 $cnt = count($raList);
221 $raList[$cnt] = ( $depth == 0 ) ? $to_save[$iPos] : clone $to_save[$iPos];
222 $raList[$cnt]->No = $cnt;
223 $raList[$cnt]->PrevPps = self::_savePpsSetPnt($raList, $aPrev, $depth++);
224 $raList[$cnt]->NextPps = self::_savePpsSetPnt($raList, $aNext, $depth++);
225 $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++);
_DataLen()
Returns the amount of data saved for this PPS.
__construct($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children)
The constructor.
_getPpsWk()
Returns a string with the PPS's WK (What is a WK?)
Create styles array
The data for the language used.
static LocalDate2OLE($date=null)
Utility function Returns a string for the OLE container with the date given.
static _savePpsSetPnt(&$raList, $to_save, $depth=0)
Updates index and pointers to previous, next and children PPS's for this PPS.