Categories > OpenTBS with ODT >

MergeBlock don't work in OOo / Impossible de faire un MergeBlock dans OOo

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

MergeBlock don't work in OOo / Impossible de faire un MergeBlock dans OOo

Bonjour, Hello

Je rencontre un souci pour faire des blocks dans un document OpenOffice. Je n'arrive pas à le faire et cela ne retourne aucune erreur, le block est ignoré.
J'utilise la même syntaxe que pour les templates HTML pourtant, il doit y avoir quelque chose qui m'échappe mais je ne vois pas...
J'ai bien vérifier dans le fichier content.xml que la balise est conforme et ne subi pas de changement de style.
Je voudrais insérer du texte, dans ce texte il y'a des retours chariots et je voudrais donc que l'on change de paragraphe à chaque retour chariot (j'utilise la fonction php «explode» pour transformer le texte en tableau).
D'ailleurs, peut-être que je n'utilise pas la bonne méthode/technique pour réaliser ce que je souhaite....

Merci pour votre aide!


I have a problem with blocks in OpenOffice, the conversion fail without errors; the block was don't parsed...
I use the same syntax than html template. I don't find my mistake... Maybe I don't use the best way.
I check in content.xml file the command syntax.

Thank's you in advance!

---------------------------------------------
* OpenTBS version: 1.4.1
* TinyButStrong version: 3.6.1
* PHP version: 5.3.0

---------------------------------------------
j'ai testé les 3 façons de faire les blocks / I try 3 ways to make a block

1)
   <text:p text:style-name="Text_20_body">
    [tpl_paragraph.val]
   </text:p>

2)
   <text:p text:style-name="Text_20_body">
    [tpl_paragraph;block=begin]
   </text:p>
   <text:p text:style-name="Text_20_body">
    [tpl_paragraph.val]
   </text:p>
   <text:p text:style-name="Text_20_body">
    [tpl_paragraph;block=end]
   </text:p>
   <text:p text:style-name="Standard"/>

3)
   <text:p text:style-name="Text_20_body">
    [tpl_paragraph.val;block=text:p]   </text:p>
   <text:p text:style-name="Standard"/>


---------------------------------------------
extrait du code php / extract of php

$paragraphs = explode("\n", text);
$TBS = new clsTinyButStrong();
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
$TBS->LoadTemplate('\path\to\document.odt#content.xml;styles.xml');
$TBS->MergeBlock('tpl_paragraph', $paragraphs);
$TBS->Show(OPENTBS_FILE, $filename);
By: Skrol29
Date: 2010-11-21
Time: 21:44

Re: MergeBlock don't work in OOo / Impossible de faire un MergeBlock dans OOo

Hi,

The problem is probably due to your LoadTemplate() line which opens two subfiles: "content.xml" and "styles.xml".
In fact, OpenTBS opens "content.xml" first, and then it opens "styles.xml". But it cannot handle two subfiles in the same time. So your next MergeBlock() is applied to the current subfile which may be "styles.xml", instead of "content.xml" as you expect.
The final Show() method is applied to all previously opened subfiles.

I think you should just replace:
$TBS->LoadTemplate('\path\to\document.odt#content.xml;styles.xml');
with:
$TBS->LoadTemplate('\path\to\document.odt#styles.xml;content.xml');
and it should fixes your problem.

By: Thib
Date: 2010-11-22
Time: 10:38

Re: MergeBlock don't work in OOo / Impossible de faire un MergeBlock dans OOo

hi Skrol29,

it's works perfectly!
thank you very much for your help ;)