public function __construct($settings, $records) { parent::__construct(array('title' => new FileString(32), 'attributes' => new FileShort(), 'version' => new FileShort(), 'creationTime' => new FileDate(), 'modificationTime' => new FileDate(), 'backupTime' => new FileDate(), 'modificationNumber' => new FileInt(), 'appInfoID' => new FileInt(), 'sortInfoID' => new FileInt(), 'prcType' => new FileString(4), 'creator' => new FileString(4), 'uniqueIDSeed' => new FileInt(), 'nextRecordListID' => new FileInt(), 'numberRecords' => new FileShort(), 'recordList' => new FileElement(), 'filler' => new FileShort(), 'records' => new FileElement())); //Set values from the info block foreach ($this->elements as $name => $val) { if ($settings->exists($name)) { $this->get($name)->set($settings->get($name)); } } $this->get('numberRecords')->set(sizeof($records)); $i = 0; foreach ($records as $record) { $offset = new FileInt(); $attr = new FileByte(); $uniqueID = new FileTri($i); $this->elements['recordList']->add('Rec' . $i, new FileElement(array('offset' => $offset, 'attribute' => $attr, 'uniqueID' => $uniqueID))); $this->elements['records']->add('Rec' . $i, $record); ++$i; } $this->updateOffsets($records); }
public function __construct($settings, $records) { parent::__construct(array("title" => new FileString(32), "attributes" => new FileShort(), "version" => new FileShort(), "creationTime" => new FileDate(), "modificationTime" => new FileDate(), "backupTime" => new FileDate(), "modificationNumber" => new FileInt(), "appInfoID" => new FileInt(), "sortInfoID" => new FileInt(), "prcType" => new FileString(4), "creator" => new FileString(4), "uniqueIDSeed" => new FileInt(), "nextRecordListID" => new FileInt(), "numberRecords" => new FileShort(), "recordList" => new FileElement(), "filler" => new FileShort(), "records" => new FileElement())); //Set values from the info block foreach ($this->elements as $name => $val) { if ($settings->exists($name)) { $this->get($name)->set($settings->get($name)); } } $this->get("numberRecords")->set(sizeof($records)); $i = 0; foreach ($records as $record) { $offset = new FileInt(); $attr = new FileByte(); $uniqueID = new FileTri($i); $this->elements["recordList"]->add("Rec" . $i, new FileElement(array("offset" => $offset, "attribute" => $attr, "uniqueID" => $uniqueID))); $this->elements["records"]->add("Rec" . $i, $record); $i++; } $this->updateOffsets($records); }