Categories > [old] TbsOoo & TinyDoc >

mailing avec tbsOOO

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Eric
Date: 2007-02-16
Time: 04:48

mailing avec tbsOOO

bonjour Olivier
j'ai lu le post #4322 et j'ai essayé de l'appliquer à mon cas (dans un premier temps générer un document avec tbsooo sur 5 enregistrements) mais je n'obtiens au final qu'un seul document odt (avec les infos du dernier enregistrement)
Voici le principe général de mon script :
<boucle sur mes 5 enregistrements>
  $OOo->NewDocFromTpl('mondoc');
  $OOo->LoadXmlFromDoc('content.xml');
// valorisation de mes données avec les $OOo->SaveXmlToDoc();
  $OOo->LoadXmlFromDoc('meta.xml');
  $OOo->SaveXmlToDoc();
<fin de ma boucle>
// Display


J'ai essayé en sortant $OOo->NewDocFromTpl('mondoc'); de ma boucle mais rien n'y fait...

Une petite aide de ta part sera vraiment la bienvenue

merci
Eric
By: Olivier
Date: 2007-02-16
Time: 11:11

Re: mailing avec tbsOOO

Bonjour,

A priori tu es en train de fusionner un bloc de 5 éléments, mais tu as oublié de mettre l'instruction, par exemple :
$OOo->MergeBlock('nom_bloc', 'array', $data) ;
voir la documentation de TBS.

De plus tu fusionnes le fichier meta.xml. As tu des variables à fusionner dans ce fichier ?

Je t'ai fais des commentaires dans ton code pour que tu comprennes les différentes étapes  :

// --- ETAPE 1 ---

//Creation d'un document de travail à partir du fichier 'mondoc'
$OOo->NewDocFromTpl('mondoc');

// --- ETAPE 2 ---

// extraction et chargement en mémoire du fichier content.xml à partir du document de travail
$OOo->LoadXmlFromDoc('content.xml');

//mettre du code ici si fusion des données en mode bloc
// .... ici .....
// $OOo->MergeBlock('nom_bloc', 'array', $data) ;

// fusionner les données et sauvegarde dans le document de travail
$OOo->SaveXmlToDoc();


// --- ETAPE 3 ---

// extraction et chargement en mémoire du fichier meta.xml à partir du document de travail
$OOo->LoadXmlFromDoc('meta.xml');

// fusionner les données et sauvegarde dans le document de travail
$OOo->SaveXmlToDoc();


// --- ETAPE 4 ---

// Display
// ....
.....
By: Olivier
Date: 2007-02-16
Time: 11:11

Re: mailing avec tbsOOO

Bonjour,

A priori tu es en train de fusionner un bloc de 5 éléments, mais tu as oublié de mettre l'instruction, par exemple :
$OOo->MergeBlock('nom_bloc', 'array', $data) ;
voir la documentation de TBS.

De plus tu fusionnes le fichier meta.xml. As tu des variables à fusionner dans ce fichier ?

Je t'ai fais des commentaires dans ton code pour que tu comprennes les différentes étapes  :

// --- ETAPE 1 ---

//Creation d'un document de travail à partir du fichier 'mondoc'
$OOo->NewDocFromTpl('mondoc');

// --- ETAPE 2 ---

// extraction et chargement en mémoire du fichier content.xml à partir du document de travail
$OOo->LoadXmlFromDoc('content.xml');

//mettre du code ici si fusion des données en mode bloc
// .... ici .....
// $OOo->MergeBlock('nom_bloc', 'array', $data) ;

// fusionner les données et sauvegarde dans le document de travail
$OOo->SaveXmlToDoc();


// --- ETAPE 3 ---

// extraction et chargement en mémoire du fichier meta.xml à partir du document de travail
$OOo->LoadXmlFromDoc('meta.xml');

// fusionner les données et sauvegarde dans le document de travail
$OOo->SaveXmlToDoc();


// --- ETAPE 4 ---

// Display
// ....
.....
By: Eric
Date: 2007-02-16
Time: 14:33

Re: mailing avec tbsOOO

merci de ta réponse Olivier
grâce à toi je suis passé à l'étape suivante...
A savoir je retrouve le message d'erreur
Format error discovered in the file in sub-document content.xml at 2,17550(row,col)
dont parle sam dans son post 4322
mais je n'ai pas trouvé les demo.swx et demo.php que tu lui avais envoyé...
Merci encore pour ton aide
Eric



By: Eric
Date: 2007-02-20
Time: 06:37

Re: mailing avec tbsOOO

je n'arrive pas à me dépatouiller de ce pblm

je commence mon template par
[subject;block=begin]
en haut de page
et le termine par
[subject;block=end]

Entre ces 2 balises j'affiche mes variables blk_adr

// ============================================================================
// M A I N
// ============================================================================

$OOo->NewDocFromTpl('mailing.odt');
// ===== xml content ==========================================================
$OOo->LoadXmlFromDoc('content.xml');

// ============================================================================
// D A T A S
// ============================================================================

// Entete
    $qry = "select lib, libelle, current_date as date from param_edi where lib in ('RUE','VIL')";
    $getParam = parse_query($qry);
    while ($rec=pg_fetch_array($getParam)){
        $today = $rec["date"];
        switch ($rec["lib"]){
            case "RUE"; $rue = $rec["libelle"]; break;
            case "VIL"; $vilsfc = $rec["libelle"]; break;
        }
    }
// Destinataires du mailing   
    $qry="select distinct(i_individu) as i_individu from mailing where typmail=1";
    $qry .= " and i_individu in (2525,900868,18,900958) order by i_individu desc";
    $getInfo = parse_query($qry);
    $subjects = pg_fetch_all($getInfo);

    $db_conn = pg_connect(CONNECTION_STRING) or die("connexion pg");
    $OOo->MergeBlock('subject', 'array', 'subjects');
    $OOo->SaveXmlToDoc();
    $OOo->MergeBlock('blk_adr', $db_conn,"select adresse1,adresse2,adresse3,adresse4,adresse5,cpost,ville,case pays when 'FR' then NULL end as pays,email,adramc from v_adresse where i_individu=" . $i_individu);
    $OOo->SaveXmlToDoc();
   
// ===== xml meta =============================================================
    $OOo->LoadXmlFromDoc('meta.xml');
    $OOo->SaveXmlToDoc();

// ============================================================================
// D I S P L A Y
// ============================================================================

Je pense que mon erreur vient des imbrications de block

Peux tu me le confirmer ?

merci
Eric
By: Sophie
Date: 2007-02-26
Time: 15:51

Re: mailing avec tbsOOO

bonjour Eric
As tu la réponse à ton problème ?
Je suis dans le même cas de figure que toi où j'essaie de modifier l'exemple en ligne invoice.php de manière à pouvoir en faire un mailing mais je rencontre le même problème que toi.
Si tu as la solution merci de m'en faire profiter
Soph
By: Olivier
Date: 2007-04-15
Time: 22:06

Re: mailing avec tbsOOO

Bonjour,

Je n'avais pas lu ce thread...

A la place de
$db_conn = pg_connect(CONNECTION_STRING) or die("connexion pg");
$OOo->MergeBlock('subject', 'array', 'subjects');
$OOo->SaveXmlToDoc();
$OOo->MergeBlock('blk_adr', $db_conn,"select adresse1,adresse2,adresse3,adresse4,adresse5,cpost,ville,case pays when 'FR' then NULL end as pays,email,adramc from v_adresse where i_individu=" . $i_individu);
$OOo->SaveXmlToDoc();

faire

$db_conn = pg_connect(CONNECTION_STRING) or die("connexion pg");
$OOo->MergeBlock('subject', 'array', 'subjects');
// --- ne pas faire $OOo->SaveXmlToDoc();
$OOo->MergeBlock('blk_adr', $db_conn,"select adresse1,adresse2,adresse3,adresse4,adresse5,cpost,ville,case pays when 'FR' then NULL end as pays,email,adramc from v_adresse where i_individu=" . $i_individu);
$OOo->SaveXmlToDoc(); // a faire une seule fois


Il faut le faire qu'une seule fois pour sauvegarder le résultat des différents fusions de variables et blocks dans le document

Olivier