By: Gerardmarrache
Date: 2004-07-18
Time: 16:45
|
[fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Bonjour, tout d'abord je trouve votre class de template formidable,
Je m'intéresse depuis peu à PHP4 et PHP5 depuis la version finalisée. A partir d’un fichier XML, je voudrais extraire certaines informations, à partir d’un exemple simple de la class simpleXML (PHP5) j’ai modifié le code dans l’exemple de http://www.phpteam.net/affiche.php?quoi=php5new2 pour que ça fonctionne avec la class de template tinyButStrong. Code individu.php
Page template individu.html
Pourriez-vous me dire si il est possible d’optimiser ce code, ou bien mon proposer mieux structuré, notamment pour un code permettant de faire des listes déroulantes. |
|||
By: Skrol29
Date: 2004-07-18
Time: 19:29
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Salut,
Tu peux améliorer le template : un seul "block=tr" suffit pour chaque ligne de tableau. Pas besoin de le répéter. Tu peux le mettre sur n'importe quel champ, mais si tu le met sur le premier (même [blk1.#]) c'est un poil plus rapide. Tu peux aussi améliorer le script PHP en utilisant des fonctions personnalisée pour la lecture des données spécifiques à SimpleXML. Voici un exemple de code qui marche :
|
|||
By: Gerardmarrache
Date: 2004-07-18
Time: 21:09
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Merci de m'avoir répondu tres rapidement pour les corrections que tu as au code modifié que j'ai pris en exemple.
pour la page template, lorsque je supprime les block=tr il se poduit des erreurs du au parseur ??. peux-tu me donner un exemple concret sur chacune des fonctions que tu m'as proposé. Merci d'avance, et encore bravo pour votre travail. G. MARRACHE. |
|||
By: Skrol29
Date: 2004-07-18
Time: 21:37
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Pas besoin de toucher au fichier individu.php que j'ai envoyé juste avant, il marche tel quel en PHP 5, je l'ai testé.
Voici la page page individu.html améliorée:
|
|||
By: gerarmarrache
Date: 2004-07-18
Time: 21:54
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)merci encore d'avoir répendu expressement à mes questions.
pour le coup du block=tr , j'avai pensai qu'il falait le mettre sur toute les lignes, et pour chaque champ, bon maintenant j'ai compris... mais peux-tu me donner les exemples correspondants à tes fonctions : function tbsdb_SimpleXMLElement_open(&$Src,&$Query) { return $Src; } function tbsdb_SimpleXMLElement_fetch(&$Rs,$Num) { return get_object_vars($Rs[$Num-1]); } function tbsdb_SimpleXMLElement_close(&$Rs) { } Merci d'avance G. MARRACHE |
|||
By: Skrol29
Date: 2004-07-18
Time: 22:01
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Salut,
Ces fonctions sont des fonctions personnalisées pour TBS et qui correspondent à un format demandé par TBS. Elles sont décrites dans le manuel à la rubrique "Ajout d'un type de source de données". Le jeu de fonctions que je t'ai fourni reconnaissent les objets de classes "SimpleXMLElement" et récoltent les infos à afficher. Je ne peux pas te donner d'exemples car elles sont faites sur mesure. Tu trouveras d'autres fonctions personnalisées pour d'autres sources de données dans la page de support sur ce site. |
|||
By: gerarmarrache
Date: 2004-07-19
Time: 00:51
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)reBonsoir
Je n'ai pas tres bien compris pourquoi vous mettez les variables en référence dans vos fonctions (peux-être une explication dans la routine de vos class). Faute d'avoir tous compris je vous propose une fonction que j'ai rajouté code php individu.Php
Merci de me corriger car je ne vois pas ou mettre la fonction dans vos class. G. MARRACHE. |
|||
By: gerarmarrache
Date: 2004-07-21
Time: 20:02
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Bonsoir, pouvez-me dire si il est possible de reproduire sans avoir besoin de javascript un code en php + TBS en template pour réaliser une sélection multiple dans 2 listes différentes, de l’une vers l’autre et vice et versa.
Voici les codes que j’ai utilisé qui fonctionne bien et que j'ai simplifié pour l'exemple : 1- code en PHP move.php
2 - Le template move.html
3 - Le code en javascript move.js
Merci d'avance, en espérant que vous allez pas m'abondonner. G. MARRACHE. |
|||
By: michael
Date: 2004-07-25
Time: 14:22
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Hi Skrol29
I am starting to use TBS - it is excellent - thank you for this excellent class. This example is very interesting to me - using XML in this way. Could you please kindly explain why the tbsdb_SimpleXMLElement functions were required to make this example work? Thanks, Michael. |
|||
By: Skrol29
Date: 2004-07-25
Time: 18:58
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Salut,
J'avais pas vu ton message car tu l'as mis en réponse à ton propre message. Donc je n'ai pas eu de notification. Des variables sont passées en références car parfois TBS doit récupérer ces variables éventuelement modifiées. Et aussi parce que parfois c'est plus rapide. Ta solution est une autre possibilité. Tu as préparé un tableau et tu passes le tableau dans MergeBlock(). |
|||
By: Skrol29
Date: 2004-07-25
Time: 23:14
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)I Micheal,
Gerarmarrache had a solution to display data from and XML file. His solution was to build an array using Php SimpleXml functions; and he asked if there was a more optimized solution. I told him that a solution using customized data functions for TBS should be more optimized, and I gave an example of such a function set. |
|||
By: michael
Date: 2004-07-25
Time: 23:54
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)hi Skrol29
Thanks for your answer. I see it now. This type of custom function usage would be a good tip (as suggested elsewhere about making a tips section). Regards Michael. |
|||
By: michael
Date: 2004-07-26
Time: 05:41
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Hi Skrol29
I was checking into the performance on both versions of script: the original Gerardmarrache & your suggested improvement. I wondered what is the best way to time the performance of the script & report it in the HTML (using the template). Usually I echo the result of a timer to determine the time to produce the page. In TBS, I was wondering if this was the best way to do it. That is, insert the following just before include_once('tbs_class.php'); $timer = new c_Timer; $timer->start(); insert the following just before $TBS->Show() ; $timer->stop(); $totaltime = $timer->elapsed(); and in the template at the bottom, I have time = [var.totaltime;frm=0.000] Sorry if this is lame , I am relatively new to PHP. Regards Michael. |
|||
By: Skrol29
Date: 2004-07-26
Time: 10:25
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Salut,
Oui c'est possible. Il faut que tu enregsitres dans un champ caché le contenu deux liste en cours de modifications, car les zone de liste elles-mêmes ne passeront comme valeur au script que leur valeur sélectionnée. Mais je pense que la soution Javascript est quand même la meilleur car elle ne sollicite pas le serveur pendant la sélection des items. |
|||
By: gerarmarrache
Date: 2004-07-26
Time: 21:17
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)Salut,
Malheureusement je parle très mal l’anglais, donc je ne peut te répondre qu’en français (sorry). Pour tester le temps qui sécoule entre chaque page j’ai choisi une autre fonction que vous trouverai dans « tbs_mesfonctions » J’ai inclus par ailleurs, les autres fonctions nécessaires à l’ajout d'un type de source de données telles suggérer par Skrol29 pour effecturer les testes qui s'imposent. Code PHP dans tbs_mesfonctions
Ensuite il est nécessaire de placer la déclaration d’une variable prenant en compte la fonction tempsPage() juste avant $TBS->SHOW() $exectime = round((tempsPage() - $starttime) * 100) / 100; Prévoir dans la page de template html l’affichage de la variable par exemple : <p> Il y eu [var.exectime] secondes pour afficher la page </p>. Cela ma permis de constater qu’i l y a en faite très peu d’écart de temps entre une fonction personnalisée proposée par Skro29 « ajout d'un type de source de données » et le traitement d’une boucle de type for each qui permet de parser éventuellement que les éléments (items) que l’on souhaite voir s’afficher. Je pense qu’il faudrait étendre les exemples sur plusieurs champs voir une bonne centaine d’éléments pour se faire sa propre opinion. |
|||
By: michael
Date: 2004-07-27
Time: 23:39
|
Re: [fr] class simpleXML de PHP5 ( désolé j'avais oublié de transmettre le fichier XML)gerarmarrache, merci (sorry for poor French)
regards Michael |