Categories > TinyButStrong general (FR) >

var et mergeblock avec tableaux multi objets

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Georges
Date: 2007-12-30
Time: 23:21

var et mergeblock avec tableaux multi objets

Bonjour, voilà j'ai un probleme, comment faire pour afficher dans le html une ou des données contenue dans un objet, cette objet etant lui meme contenu dans un tableau associatif, ce meme tableau etant contenu dans un autre objet

par exemple comment affiché une information d'un tableau de ce type ?

Plugin Object
(
    [url_requete] => Array
        (
            [page] => photographie
            [langue] => fr
        )

    [tableau_plugins] => Array
        (
            [bdd] => photo
            [plugin] => catalogue
            [template] => catalogue
        )

    [plugin] => Catalogue Object
        (
            [tableau_catalogue] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [nom] => Paysage
                       )
                    [1] => Array
                        (
                            [id] => 1
                            [nom] => Personnage
                       )
                )
        )

)


Par exemple comment affiché la valeur "Paysage ", ou comment affiché les elements "Paysage " et "Personnage" à l'aide d'un mergeblock ?

Merci beaucoup de vos reponses !
By: Skrol29
Date: 2007-12-31
Time: 20:40

Re: var et mergeblock avec tableaux multi objets

Salut,

Pour afficher juste une propriété d'un objet qui contient elle-même un tableau de tableau, c'est facile :
$TBS->MergeBlock('blk', $Plugin->plugin);

Par contre si tu veux afficher tous les sous-données d'un objets, c'est pas aussi simple. TBS affiche des données avec les champs que tu lui indiques. Tu dois donc connaitre ce que tu veux afficher te comment tu veux l'afficher.

By: Georges
Date: 2007-12-31
Time: 23:56

Re: var et mergeblock avec tableaux multi objets

okmerci je vais tester ca demain, par contre comment fais tu comme pour afficher dans le template la donnée paysage par exemple ?

J'ai essayer par exemple en faisant [var.Plugin.url_requete.page] j'obtient photographie, donc ca marche, mais si je veux acceder par exemple a Paysage comment dois je faire ?
j'ai essayé [var.Plugin.plugin.tableau_objet.0.nom] et la l'erreur qu'il me sort c'est qu'il y a un bug avant le plugin et que cette methode ne marche que pour les non objets (enfin qqchose comme ca je n'ai pas le code d'erreur sous les yeux, j'essaierai de le poster demain)

si jamais tu as une idée^^

merci deja pour cette premiere reponse je test demain
By: Georges
Date: 2008-01-02
Time: 01:06

Re: var et mergeblock avec tableaux multi objets

Bonjour (et bonne année)

Alors j'ai testé la methode que tu m'as donné :
$TBS->MergeBlock('blk', $Plugin->plugin);
Et j'obtient un message d'erreur :

TinyButStrong Error when merging block [Plugin] : Data source Id 'Catalogue' is unsupported because function 'tbsdb_Catalogue_open' is not found.

(testé avec la version 3.2 et la version 3.3 de tbs)
Voila, en esperant que tu ai une solution^^

Merci d'avance
Georges
By: Georges
Date: 2008-01-03
Time: 02:30

Re: var et mergeblock avec tableaux multi objets

Re bonjour

Apres de multiple test, voila ce qu'il en sort :

Un MergeField sur ce genre d'objet permet ensuite de selectionner n'importe quelle info toute seul (mais sans avoir la possibilité de boucler)
ex du merfield :
$TBS->MergeField ("Plugin_list", $plugin->plugin);

Un MergeBloc sur un tableau precis nous permet de boucler dessus mais malheureusement cela nous oblige a connaitre forcement le tableau sur lequel on veut boucler (alors que le but de ma demande etait justement de savoir comment boucler sur des tableaux que seul le tpl connait et non pas le php, comme ca on pourait passer un objet contenant d'autre tableaux et objets aux tpl, et ceux ci font leur tri et affiche simplement ce dont ils ont besoin, cela aurait permis d'automatiser les taches a la facon de smarty)
ex du mergeblock :
$TBS->MergeBlock ("Plugins", $plugin->plugin->tableau_catalogue);

En tout cas merci beaucoup pour tous ces eclaircissements skroll !