126 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * BookExport class
 | |
|  *
 | |
|  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
 | |
|  * @author     Didier Corbière <didier.corbiere@opale-concept.com>
 | |
|  */
 | |
| 
 | |
| require_once(realpath(dirname(__FILE__)) . '/CsvExport.class.php');
 | |
| 
 | |
| class BookExport
 | |
| {
 | |
| 	private $mExport = null;
 | |
| 	private $mNbBook = 0;
 | |
| 
 | |
| 	const eExportTypeCsv = 1;
 | |
| 	const CsvSeparator = "\t";
 | |
| 
 | |
| 	/**
 | |
| 	 * Open an export file (or create if file does not exist)
 | |
| 	 *
 | |
| 	 * @param string Export file name
 | |
| 	 * @param enum Export type
 | |
| 	 * @param boolean Force file creation
 | |
| 	 * @throws Exception if error
 | |
| 	 */
 | |
| 	public function __construct($inFileName, $inExportType, $inCreate = false)
 | |
| 	{
 | |
| 		switch ($inExportType) {
 | |
| 		case self::eExportTypeCsv:
 | |
| 			$this->mExport = new CsvExport($inFileName);
 | |
| 			break;
 | |
| 		default:
 | |
| 			$error = sprintf('Incorrect export type: %d', $inExportType);
 | |
| 			throw new Exception($error);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Add an epub to the export
 | |
| 	 *
 | |
| 	 * @param string Epub file name
 | |
| 	 * @throws Exception if error
 | |
| 	 *
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function AddEpub($inFileName)
 | |
| 	{
 | |
| 		// Load the book infos
 | |
| 		$bookInfos = new BookInfos();
 | |
| 		$bookInfos->LoadFromEpub($inFileName);
 | |
| 		// Add the book
 | |
| 		$this->AddBook($bookInfos);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Add a new book to the export
 | |
| 	 *
 | |
| 	 * @param object BookInfo object
 | |
| 	 * @throws Exception if error
 | |
| 	 *
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	private function AddBook($inBookInfo)
 | |
| 	{
 | |
| 		// Add export header
 | |
| 		if ($this->mNbBook++ == 0) {
 | |
| 			$i = 1;
 | |
| 			$this->mExport->SetProperty($i++, 'Format');
 | |
| 			$this->mExport->SetProperty($i++, 'Path');
 | |
| 			$this->mExport->SetProperty($i++, 'Name');
 | |
| 			$this->mExport->SetProperty($i++, 'Uuid');
 | |
| 			$this->mExport->SetProperty($i++, 'Uri');
 | |
| 			$this->mExport->SetProperty($i++, 'Title');
 | |
| 			$this->mExport->SetProperty($i++, 'Authors');
 | |
| 			$this->mExport->SetProperty($i++, 'AuthorsSort');
 | |
| 			$this->mExport->SetProperty($i++, 'Language');
 | |
| 			$this->mExport->SetProperty($i++, 'Description');
 | |
| 			$this->mExport->SetProperty($i++, 'Subjects');
 | |
| 			$this->mExport->SetProperty($i++, 'Cover');
 | |
| 			$this->mExport->SetProperty($i++, 'Isbn');
 | |
| 			$this->mExport->SetProperty($i++, 'Rights');
 | |
| 			$this->mExport->SetProperty($i++, 'Publisher');
 | |
| 			$this->mExport->AddContent();
 | |
| 		}
 | |
| 
 | |
| 		// Add book infos to the export
 | |
| 		$i = 1;
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mFormat);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mPath);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mName);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mUuid);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mUri);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mTitle);
 | |
| 		$this->mExport->SetProperty($i++, implode(' - ', $inBookInfo->mAuthors));
 | |
| 		$this->mExport->SetProperty($i++, implode(' - ', array_keys($inBookInfo->mAuthors)));
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mLanguage);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mDescription);
 | |
| 		$this->mExport->SetProperty($i++, implode(' - ', $inBookInfo->mSubjects));
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mCover);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mIsbn);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mRights);
 | |
| 		$this->mExport->SetProperty($i++, $inBookInfo->mPublisher);
 | |
| 
 | |
| 		$this->mExport->AddContent();
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Download export and stop further script execution
 | |
| 	 */
 | |
| 	public function Download()
 | |
| 	{
 | |
| 		$this->mExport->Download();
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Save export to file
 | |
| 	 */
 | |
| 	public function SaveToFile()
 | |
| 	{
 | |
| 		$this->mExport->SaveToFile();
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| ?>
 |