/** * Override the method to set the document source filename to be like symfony templates filename * * Available options: * - dirname: The dirname of the document source file (symfony module templates directory by default) * - basename: The basename of the document source file (symfony action name by default) * - extension: The extension of the document source file (odt by default) * * @param mixed $options The sourcePathname or an array of options */ public function setSourcePathname($options = array()) { if (is_array($options)) { $context = sfContext::getInstance(); if (!isset($options['dirname'])) { $options['dirname'] = $context->getModuleDirectory() . DIRECTORY_SEPARATOR . 'templates'; } if (!isset($options['basename'])) { $options['basename'] = $context->getActionName(); } if (!isset($options['extension'])) { $options['extension'] = $this->getDefaultExtension(); } $sourcePathname = $options['dirname'] . DIRECTORY_SEPARATOR . $options['basename'] . 'Success' . '.' . $options['extension']; } else { $sourcePathname = $options; } parent::setSourcePathname($sourcePathname); }
$tempdir=get_user_temp_directory(); $fb_dezip_ooo=getSettingValue("fb_dezip_ooo"); if($fb_dezip_ooo==2) { $msg="Mode \$fb_dezip_ooo=$fb_dezip_ooo non traité pour le moment... désolé.<br />"; } else { $tempdirOOo="../temp/".$tempdir; $nom_dossier_temporaire = $tempdirOOo; //par defaut content.xml $nom_fichier_xml_a_traiter ='content.xml'; // Création d'une classe tinyDoc $OOo = new tinyDoc(); // Choix du module de dézippage $dezippeur=getSettingValue("fb_dezip_ooo"); if ($dezippeur==1){ $OOo->setZipMethod('shell'); $OOo->setZipBinary('zip'); $OOo->setUnzipBinary('unzip'); } else{ $OOo->setZipMethod('ziparchive'); } $prefixe_generation_hors_dossier_mod_ooo="../mod_ooo/"; $nom_fichier_modele_ooo="avertissement_fin_periode.odt";
$nom_fichier_xml_a_traiter = 'content.xml'; //les chemins contenant les données $fb_gab_perso = getSettingValue("fb_gab_perso"); if ($fb_gab_perso == "1") { // Gestion du multisite if ($_SESSION['rne'] != '') { $rne = $_SESSION['rne'] . "/"; } else { $rne = ''; } $nom_dossier_modele_a_utiliser = "../../mod_ooo/mes_modeles/" . $rne; } else { $nom_dossier_modele_a_utiliser = "../../mod_ooo/modeles_gepi/"; } // Création d'une classe tinyDoc $OOo = new tinyDoc(); // Choix du module de dézippage $dezippeur = getSettingValue("fb_dezip_ooo"); if ($dezippeur == 1) { $OOo->setZipMethod('shell'); $OOo->setZipBinary('zip'); $OOo->setUnzipBinary('unzip'); } else { $OOo->setZipMethod('ziparchive'); } // setting the object $OOo->SetProcessDir($nom_dossier_temporaire); //dossier où se fait le traitement (décompression / traitement / compression) // create a new openDocument document from the template with an unique id $OOo->createFrom($nom_dossier_modele_a_utiliser . $nom_fichier_modele_ooo); // le chemin du fichier est indiqué à partir de l'emplacement de ce fichier
/** * Render the invoice. * * @return mixed */ public function render() { // libs TinyButStrong include_once 'TinyButStrong/tinyButStrong.class.php'; include_once 'TinyButStrong/tinyDoc.class.php'; $doc = new tinyDoc(); // use zip extension if available if (class_exists('ZipArchive')) { $doc->setZipMethod('ziparchive'); } else { $doc->setZipMethod('shell'); try { $doc->setZipBinary('zip'); $doc->setUnzipBinary('unzip'); } catch (tinyDocException $e) { $doc->setZipMethod('pclzip'); } } $doc->setProcessDir($this->getTemporaryDirectory()); //This is where the template is selected $templateform = $this->getTemplateDir() . $this->getTemplateFile(); $doc->createFrom($templateform); $doc->loadXml('content.xml'); // fetch variables from model to get values $customer = $this->getModel()->getCustomer(); $projects = $this->getModel()->getProjects(); $entries = $this->getModel()->getEntries(); // assign all available variables (which are not arrays as they do not work in tinyButStrong) foreach ($this->getModel()->toArray() as $k => $v) { if (is_array($v)) { continue; } $GLOBALS[$k] = $v; } // ugly but neccessary for tinyButStrong // set globals variables, so they can be used in invoice templates $allCustomer = $this->prepareCustomerArray($customer); foreach ($allCustomer as $k => $v) { $GLOBALS[$k] = $v; } $GLOBALS['projects'] = $projects; $GLOBALS['project'] = implode(', ', array_map(function ($project) { return $project['name']; }, $projects)); $doc->mergeXmlBlock('row', $entries); $doc->saveXml(); $doc->close(); // send and remove the document $doc->sendResponse(); $doc->remove(); }
$tempdir=get_user_temp_directory(); $fb_dezip_ooo=getSettingValue("fb_dezip_ooo"); if($fb_dezip_ooo==2) { $msg="Mode \$fb_dezip_ooo=$fb_dezip_ooo non géré pour le moment... désolé.<br />"; } else { $tempdirOOo="../temp/".$tempdir; $nom_dossier_temporaire = $tempdirOOo; //par defaut content.xml $nom_fichier_xml_a_traiter ='content.xml'; // Creation d'une classe tinyDoc $OOo = new tinyDoc(); // Choix du module de dezippage $dezippeur=getSettingValue("fb_dezip_ooo"); if ($dezippeur==1){ $OOo->setZipMethod('shell'); $OOo->setZipBinary('zip'); $OOo->setUnzipBinary('unzip'); } else{ $OOo->setZipMethod('ziparchive'); } // setting the object $OOo->SetProcessDir($nom_dossier_temporaire ); //dossier ou se fait le traitement (decompression / traitement / compression)
} } // calculate invoice sums $ttltime = 0; $gtotal = 0; while (list($id, $fd) = each($invoiceArray)) { $gtotal += $invoiceArray[$id]['amount']; $ttltime += $invoiceArray[$id]['hour']; } $vat_rate = $kndArray['knd_vat']; if (!is_numeric($vat_rate)) { $vat_rate = $kga['conf']['defaultVat']; } $vat = $vat_rate * $gtotal / 100; $total = $gtotal - $vat; $doc = new tinyDoc(); // use zip extension if available if (class_exists('ZipArchive')) { $doc->setZipMethod('ziparchive'); } else { $doc->setZipMethod('shell'); try { $doc->setZipBinary('zip'); $doc->setUnzipBinary('unzip'); } catch (tinyDocException $e) { $doc->setZipMethod('pclzip'); } } $doc->setProcessDir('../../temporary'); //This is where the template is selected $templateform = "templates/" . $_REQUEST['ivform_file'];