mirror of
https://github.com/wallabag/wallabag.git
synced 2025-09-15 18:57:05 +00:00
use directly MOBIClass
This commit is contained in:
parent
c70bfefc68
commit
fb9df0c269
47 changed files with 309 additions and 1551 deletions
97
inc/3rdparty/libraries/MOBIClass/Prc.php
vendored
Normal file
97
inc/3rdparty/libraries/MOBIClass/Prc.php
vendored
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Description of Prc
|
||||
*
|
||||
* @author Sander
|
||||
*/
|
||||
class Prc extends FileElement {
|
||||
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 getByteLength(){
|
||||
throw new Exception("Test");
|
||||
}
|
||||
|
||||
public function updateOffsets($records){
|
||||
$base = $this->offsetToEntry("records");
|
||||
|
||||
$i = 0;
|
||||
|
||||
foreach($records as $record){
|
||||
$el = $this->elements["recordList"]->get("Rec".$i);
|
||||
|
||||
$local = $this->elements["records"]->offsetToEntry("Rec".$i);
|
||||
|
||||
$el->get("offset")->set($base+$local);
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
public function save($file){
|
||||
$handle = fopen($file, "w");
|
||||
fwrite($handle, $this->serialize());
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
public function output(){
|
||||
echo $this->serialize();
|
||||
}
|
||||
|
||||
public function __toString(){
|
||||
$output = "Prc (".$this->getByteLength()." bytes): {\n";
|
||||
foreach($this->elements as $key=>$value){
|
||||
$output .= "\t".$key.": ".$value."\n";
|
||||
}
|
||||
$output .= "}";
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue