Odtphp - update pour php 5.2.7 et +

Soyez le premier à donner votre avis sur cette source.

Vue 6 488 fois - Téléchargée 499 fois

Description

La source odtPHP développée par Julien PAULI et Cyril PIERRE de GEYER est très intéressante. Elle permet d'utiliser un document .odt comme "modèle" et de nourrir des variables à l'intérieur comme le ferait un moteur de templates.

Le problème est qu'à partir de PHP5.2.7 et supérieur la méthode de Zip a changé et ne fonctionne plus.
Les auteurs n'ayant pas proposé de solution dans leur source pour le moment, je propose donc cette modification de leur code afin de ne plus avoir de souci.

J'avais également eu des problèmes pour afficher des images, mais la aussi c'est résolu.

Source / Exemple :


<?php
require_once 'lib/Odf.php';
require_once 'lib/Segment.php';
require_once 'lib/SegmentIterator.php';
require_once 'lib/Createzip.php';

$odf = new Odf('./tutoriel1.odt');

$odf->setVars('titre', 'Bonjour tout le monde');
$odf->setVars('message', 'Soyez les bienvenus');

$j=1;
$module = $odf->setSegment('modules');
while ($j < 15) {
    $i = 1;

    if ($j == 1)
        $module->setImage('TitreModule','./mysql.jpg');
    else
        $module->setVar('TitreModule', 'Titre de module' . $j);
        
    while ($i < 20) {

        $module->details->detail('Anaska is the best Open Source training center. It rocks ! ' . $i);

        $dates = $module->details->dates;
        $dates->setVar('infodate', date('d/m/Y h:i:s').' bcl:'.$i);
        $dates->setImage('date', './contacts.png');
        
        $i ++;
        $module->details->merge();
    }
    $j ++;
    $module->merge();
}
$odf->mergeSegment($module);

$odf->setImage('image','./mysql.jpg');

$odf->setImage('image2','./Excel20073D.png');

$odf->saveToDisk('generate.odt');

$odf->getZip()->forceDownload('generate.odt');
?>

Conclusion :


Requis :
- PHP 5.2.X
- L'extension php_zip (installée dans Wamp par exemple, mais pas activée par défaut)
- OpenOffice 3.X

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Comme je l'ai dit sur ta source, la solution la plus simple est d'utiliser comme je l'ai fait, une classe qui gère le zip de façon indépendante.
Quelque que soit la plateforme le code reste le même.
Messages postés
10
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
5 juin 2009

Bonjour,

Personnellement j'ai eu le même problème avec la méthode Zip de PECL, et j'ai du faire un petit hack dans le code sans avoir à changer de la librairie

$zip->addFile($sourcePathname, $archivePathname);

par

$zip->addFromString( $archivePathname, file_get_contents( $sourcePathname, false ) );

D'ailleurs pour info j'ai développé une nouvelle classe PHP qui permet de générer des documents OpenOffice et Word 2007 qui s'appelle tinyDoc.

A voir sur :
http://tinydoc.unesolution.fr

Et les exemples :
http://tinydoc.unesolution.fr/examples

Olivier

ce qui évite que l'archive soit corrompue
Messages postés
427
Date d'inscription
dimanche 6 juillet 2008
Statut
Membre
Dernière intervention
4 mai 2009

je viens d'installer php5, une fois que j'ai installer et redémarrer le pc comme ils disent, je fais comment pour le configurer et m'en servir ?

merci de me répondre ;)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
y'a pas de .X

Stailer t'indiquait php 5.2

le X est là pour dire "n'importe quelle version"

prend la dernière, ca ira
Messages postés
427
Date d'inscription
dimanche 6 juillet 2008
Statut
Membre
Dernière intervention
4 mai 2009

je viens d'installer wampserver à la place de wamp pour avoir plus d'options ;)

j'ai vu sur google que pour le php 5.2.x Que c'était ce site : http://php.net/downloads.php et que sa c'est le tutorial : http://foundationphp.com/tutorials/php_installer.php

afin je suis pas sur que c'est le bon lien pour télécharger PHP 5.2.X

si ce n'est pas le bon lien web, peut tu me donne le lien pour télécharger PHP 5.2.X stp ?

ma version de wampserver : WampServer Version 2.0
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.