Categories > OpenTBS with ODT >

erreur de format content.xml

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Michel
Date: 2010-11-01
Time: 09:21

erreur de format content.xml

bonjour a tous,
problème certainement connu mais je n'ai pas trouvé de réponse (ou probablement mal cherché) dans ce forum :
message "erreur de format dans le fichier du sous document content.xml..." lors de l'export des champs d'une requête dans un document odt d'une page.
problème aléatoire donc difficile à analyser en ce qui me concerne
j'ai cherché à décoder le content xml mais il semble que toutes les variables soient complétées
mon document contient des variables [onshow....] des blocks et des conditions : "Vous avez réglé votre inscription en totalité, soit [onshow. TarifApplicable] euros [onshow.ModeReglement;if [val]=1;then 'par mandat';if [val]=2;then ' par chèque' ;else 'en espèces ' ].Ce courrier tient lieu de facture.[onload_1;block=table:table-row;when [var.blk_id]=3] "
est-ce un pb lié aux données ou au document ?
merci encore par avance de votre aide
By: Skrol29
Date: 2010-11-01
Time: 12:17

Re: erreur de format content.xml

Salut,

As-tu essayé en faisant la fusion avec la mise à jour de OpenTBS version 1.4.1 ?
By: Michel
Date: 2010-11-01
Time: 16:48

Re: erreur de format content.xml

je confirme que c'est cette version que j'ai en localhost. La je suis largué et je me fais vieux...?
voila ce que je fusionne - requete sur bdd sqlite3
...
$result = $db->query($sql);
        while ($row = $result->fetch()) {
            $IdBrocante=$row['IdBrocante'];
        $DateBrocante=$row["DateBrocante"];
         ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $DateBrocante, $param);
        $DateBrocante=$param[3]."/".$param[2]."/".$param[1];
        $j=$param[3];
        $m=$param[2];
        $a=$param[1];
        $DateLimite = strftime("%A %d %B %Y",mktime(0,0,0,$m,$j-5,$a));
        $DateBrocante=strftime("%A %d %B %Y",mktime(0,0,0,$m,$j,$a));
        $NomBrocante=$row["NomBrocante"];
        $Emplacement=$row["Emplacement"];
        $DateSaisie=$row['DateSaisie'];
        ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $DateSaisie, $params);
        $DateSaisie=$params[3]."/".$params[2]."/".$params[1];
            $CategInscrit=$row['CategInscrit'];
            $Reglement=$row['ModeReglement'];
            $Rue=$row['Rue'];
            If($row['RefCheque']!=NULL){
                $Cheque=$row['RefCheque'];
            }else{
            $Cheque=NULL;
        }
            $Matos=$row['MatExp'];
            $NumEmplacement=$row['NumEmplacement'];
       
        If($row['AutreMatExp']!=NULL){
            $AutreMatos=$row['AutreMatExp'];
            }else{
            $AutreMatos=NULL;
        }
            $Reliquat=$row['Reliquat'];
            $TarifApplicable=$row['TarifApplicable'];
            $Longueur=$row['Longueur'];
            $Reservation=$row['Reservation'];
        if($Reservation=="O"){
            $resa="réservation ";
        }else{
            $resa="inscription ";
        }
            $MontantInscription=$row['MontantInscription'];
            $ModeReglement=$row['ModeReglement'];
            if($ModeReglement=="M") {
                $ModeReglement =1;
            }else if($ModeReglement=='C'){
                $ModeReglement = 2;
        }else{
                $ModeReglement = 3;
        }
            $solde=$row['Solde'];
            switch ($solde) {
            case 'G':
                $blk_id = 1;
                break;
        case 'N':
                $blk_id = 2;
            break;
            case 'T':
                $blk_id = 3;
            break;
            case 'P':
                $blk_id = 4;
            break;
            case 'E':
                $blk_id = 5;
            break;
        }
include_once('tbs_class_php5.php'); // TinyButStrong template engine
include_once('tbs_plugin_opentbs.php');

$TBS = new clsTinyButStrong; // new instance of TBS
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); // load OpenTBS plugin
$TBS->LoadTemplate('recepisse.odt', OPENTBS_ALREADY_UTF8);

$TBS->Show(OPENTBS_DOWNLOAD);

$db = NULL;
}  catch(PDOException $e) {
    print 'Exception : '.$e->getMessage();
}
désolé...
By: Skrol29
Date: 2010-11-01
Time: 17:55

Re: erreur de format content.xml

Salut,

As-tu essayé le mode Debug ?

Sinon peux-tu m'envoyer ton modèle + ton fichier fusionné ? Je regarderai ce qui cloche.
By: Skrol29
Date: 2010-11-01
Time: 20:15

Re: erreur de format content.xml

salut,

Ok, j'ai vu le problème.
Tu ouvre ton modèle avec l'option OPENTBS_ALREADY_UTF8, du coup TBS va supposer que les donner à fusionner sont déjà en UTF-8.
Or ta variable $resa="réservation " n'est pas en UTF-8, c'est elle qui corrompt le document final.
À partir de là, tu as plusieurs solutions. Les plus simples c'est :
- convertir ton script PHP en UTF-8
ou
- coder $resa=utf8_encode("réservation ");
ou
- modifer le champ [onshow.resa;htmlconv=utf8]

voilà
By: Michel
Date: 2010-11-02
Time: 07:44

Re: erreur de format content.xml

Je comprend mieux. J'ai eu le même pb par ailleurs, j'aurai du faire le rpprochement
Encore merci et bonne continuation