ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
PPS.php
Go to the documentation of this file.
1<?php
2/* vim: set expandtab tabstop=4 shiftwidth=4: */
3// +----------------------------------------------------------------------+
4// | PHP Version 4 |
5// +----------------------------------------------------------------------+
6// | Copyright (c) 1997-2002 The PHP Group |
7// +----------------------------------------------------------------------+
8// | This source file is subject to version 2.02 of the PHP license, |
9// | that is bundled with this package in the file LICENSE, and is |
10// | available at through the world-wide-web at |
11// | http://www.php.net/license/2_02.txt. |
12// | If you did not receive a copy of the PHP license and are unable to |
13// | obtain it through the world-wide-web, please send a note to |
14// | license@php.net so we can mail you a copy immediately. |
15// +----------------------------------------------------------------------+
16// | Author: Xavier Noguer <xnoguer@php.net> |
17// | Based on OLE::Storage_Lite by Kawai, Takanori |
18// +----------------------------------------------------------------------+
19//
20// $Id: PPS.php,v 1.7 2007/02/13 21:00:42 schmidt Exp $
21
22
23require_once 'PEAR.php';
24require_once 'OLE.php';
25
33class OLE_PPS extends PEAR
34{
39 var $No;
40
45 var $Name;
46
51 var $Type;
52
58
64
70
76
82
88
93 var $Size;
94
99 var $_data;
100
105 var $children = array();
106
111 var $ole;
112
128 function OLE_PPS($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children)
129 {
130 $this->No = $No;
131 $this->Name = $name;
132 $this->Type = $type;
133 $this->PrevPps = $prev;
134 $this->NextPps = $next;
135 $this->DirPps = $dir;
136 $this->Time1st = $time_1st;
137 $this->Time2nd = $time_2nd;
138 $this->_data = $data;
139 $this->children = $children;
140 if ($data != '') {
141 $this->Size = strlen($data);
142 } else {
143 $this->Size = 0;
144 }
145 }
146
153 function _DataLen()
154 {
155 if (!isset($this->_data)) {
156 return 0;
157 }
158 if (isset($this->_PPS_FILE)) {
159 fseek($this->_PPS_FILE, 0);
160 $stats = fstat($this->_PPS_FILE);
161 return $stats[7];
162 } else {
163 return strlen($this->_data);
164 }
165 }
166
173 function _getPpsWk()
174 {
176 for ($i = 0; $i < (64 - strlen($this->Name)); $i++) {
177 $ret .= "\x00";
178 }
179 $ret .= pack("v", strlen($this->Name) + 2) // 66
180 . pack("c", $this->Type) // 67
181 . pack("c", 0x00) //UK // 68
182 . pack("V", $this->PrevPps) //Prev // 72
183 . pack("V", $this->NextPps) //Next // 76
184 . pack("V", $this->DirPps) //Dir // 80
185 . "\x00\x09\x02\x00" // 84
186 . "\x00\x00\x00\x00" // 88
187 . "\xc0\x00\x00\x00" // 92
188 . "\x00\x00\x00\x46" // 96 // Seems to be ok only for Root
189 . "\x00\x00\x00\x00" // 100
190 . OLE::LocalDate2OLE($this->Time1st) // 108
191 . OLE::LocalDate2OLE($this->Time2nd) // 116
192 . pack("V", isset($this->_StartBlock)?
193 $this->_StartBlock:0) // 120
194 . pack("V", $this->Size) // 124
195 . pack("V", 0); // 128
196 return $ret;
197 }
198
208 function _savePpsSetPnt(&$pps_array)
209 {
210 $pps_array[count($pps_array)] = &$this;
211 $this->No = count($pps_array) - 1;
212 $this->PrevPps = 0xFFFFFFFF;
213 $this->NextPps = 0xFFFFFFFF;
214 if (count($this->children) > 0) {
215 $this->DirPps = $this->children[0]->_savePpsSetPnt($pps_array);
216 } else {
217 $this->DirPps = 0xFFFFFFFF;
218 }
219 return $this->No;
220 }
221}
222?>
Definition: PPS.php:34
$Size
Definition: PPS.php:93
_savePpsSetPnt(&$pps_array)
Updates index and pointers to previous, next and children PPS's for this PPS.
Definition: PPS.php:208
$PrevPps
Definition: PPS.php:57
$_data
Definition: PPS.php:99
$_StartBlock
Definition: PPS.php:87
$ole
Definition: PPS.php:111
$Time2nd
Definition: PPS.php:81
$Name
Definition: PPS.php:45
$Time1st
Definition: PPS.php:75
$NextPps
Definition: PPS.php:63
OLE_PPS($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children)
The constructor.
Definition: PPS.php:128
$Type
Definition: PPS.php:51
$No
Definition: PPS.php:39
$children
Definition: PPS.php:105
$DirPps
Definition: PPS.php:69
_DataLen()
Returns the amount of data saved for this PPS.
Definition: PPS.php:153
_getPpsWk()
Returns a string with the PPS's WK (What is a WK?)
Definition: PPS.php:173
LocalDate2OLE($date=null)
Utility function Returns a string for the OLE container with the date given.
Definition: OLE.php:491
$data