Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2011, 15h57   #1
Invité de passage
 
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
Par défaut DomDocument Assignation d'une valeur à un élément

Bonjour à tous,

Je bosse actuellement sur une classe qui implémente, pour le moment, une petite partie de la norme ODF vu que rien n'existe à ce sujet en PHP (ou alors je ne sais pas chercher).

Le but est de générer des ODF à la volée de cette façon :
Citation:
$odt = new ODT('name');
$style1 = $odt->createStyle(array('name' => 'StyleTest', 'font-family' => 'Arial'...));

$odt
->text('Mon texte ')
->textWithStyle('avec style ', $style1);
->text('et point.')
Le but étant de générer quelque chose du genre :

Code :
1
2
3
4
5
<text:p>
 Mon texte
 <text:span text:style-name="StyleText">avec du style</text:span>
 et point.
</text:p>
Le problème que je rencontre, c'est que si je crée mon Element text:p de cette manière :
Code :
$textp = $this->document->createElement('text:p');
Je ne suis plus capable de lui réinjecter une value alors que je sais lui injecter un enfant.

Ma question c'est : Comment puis-je injecter une value à l'élément text:p qui peut être n'importe où vis-à-vis des fils ?

Merci d'avance pour vos réponses,
Gs_Crash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 16h25   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
Salut

Citation:
une petite partie de la norme ODF vu que rien n'existe à ce sujet en PHP
Je n'ai malheureusement pas de solution à ton problème, je réagit juste sur ci-dessus.
Rien en saisissant "php odt" dans Google, il y a ceci :
odtPHP
En en Français en plus.

Mais il y aurait aussi : TinyButStrong OOo

Il y en a des trucs non ?


Mais tu parles au départ de ODF, puis dans le code il s'agit de ODT.
Ce serait quoi au juste ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 16h29   #3
Invité de passage
 
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
Donc c'est bien ce que je dis, il n'existe rien pour faire ça en PHP dur et simple.
Ici les différents scripts cités font en quelque sorte de la recherche de variable dans un ODT pour le remplacer par le contenu.

J'ai une problématique qui m'impose de ne pas avoir de template. Alors il y a bien xhtml2odt mais le fonctionnement est plus ou moins aléatoire et ça ne prend en compte que les styles inline. Et je ne trouve pas la solution très élégante PHP -> Génération xHTML -> ODT

Ce que je souhaite faire, c'est "juste" PHP -> ODT. Sans passer par un template quelconque, et donc pouvoir générer mes tableaux, mes styles etc, via PHP.

edit : Je parle ODF au sens large du terme, mais pour le moment, je vais me cantonner à l'ODT. Pour le reste il existe pas mal de chose déjà
Gs_Crash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 16h48   #4
Membre chevronné
 
Inscription : mars 2005
Messages : 583
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 583
Points : 651
Points : 651
Hello,

Je viens de jeter un oeil à la structure d'un fichier odt
A priori y'a rien directement sous <text:p>, tout est ensuite collé dans des <text:span>
T'as essayé quelque chose qui ressemblerait à ça ? =>

Code :
1
2
3
4
 
$elem = $domDoc->createElement( 'text:span' );
$elem->appendChild( $domDoc->createTextNode( 'mon texte' ) );
$monElementParent->appendChild( $elem );
__________________
Pourfendeur de singletons en croisade
Petibidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 18h10   #5
Invité de passage
 
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
C'était bien la fonction createTextNode qu'il me manquait.

Je te remercie
Gs_Crash est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h55.


 
 
 
 
Partenaires

Hébergement Web