#1
Utiliser l'api allociné dans xoopstube
seboseboss
Posté le : 22/12/2014 18:54
Salut
Je sais pas trop comment m'y prendre pour afficher les résultats de tableaux dans les templates xoopstube, je m'explique. J'ai fait une première page avec un formulaire pour entrer le titre d'un film et aller chercher les infos allociné. Le formulaire renvoi à un deuxième fichier qui va envoyez la requête et traiter les infos, jusque la pas de soucis tout fonctionne à merveille. j'arrive pas à inclure le résultat de tableau au template, en fait je sais pas comment procéder. En faisant un foreach dans le fichier de traitement, ça me fait sauter le template et les résultats s'affiche sur fond blanc. Je suppose qu'il faut faire le foreach directement dans le templates avec smarty et donc comment est ce que je parcours le tableaux? j'utilise while comme avec une requête et j'assigne un template avec xoops templates append? je suis sur la bonne voie quand même mais xoops me simplifie pas les choses. Pour mieux comprendre, je vous met le fichier comme il est acctuellement, (pas fini d'adapter)
<?php
#2
Re: Utiliser l'api allociné dans xoopstube
montuy337513
Posté le : 22/12/2014 20:22
commence par là
Seul chose à savoir c'est que les balises smarty sur Xoops sont légèrement différentes c'est pas {foreach}, c'est <{foreach}>. Demande moi pas pourquoi mais c'est comme ça.
#3
Re: Utiliser l'api allociné dans xoopstube
seboseboss
Posté le : 22/12/2014 21:07
RE
J'ai pas du bien comprendre: J'ai donc fait ceci:
try
Et dans le tempplate: <ul> <{foreach from=$donnees item=donnees}> <li><{$donnees}></li> <{/foreach}> </ul> rien ne s"affiche
#4
Re: Utiliser l'api allociné dans xoopstube
montuy337513
Posté le : 22/12/2014 21:23
c'est normal que rien ne s'affiche car tu affiches le tableau complet
conseil 1 : évite de donner à 'item' et à 'from' le même nom, histoire de ne pas s'embrouiller conseil 2 : toujours être sûr des données qu'on utilise, est-ce que $donnees contiendra toujours un tableau (même si la requête ne donne aucun résultat, un bug si la requête retourne false)
<ul>
Ceci est un exemple, en smarty on appelle le tableau puis la clé <{$nom_tableau.cle}>
#5
Re: Utiliser l'api allociné dans xoopstube
seboseboss
Posté le : 22/12/2014 21:26
Re
Merci pour les conseils, je vais les appliquer. J'arrête pour aujourd'hui, je te dirait demain si j'ai réussi.
#6
Re: Utiliser l'api allociné dans xoopstube
slider84
Posté le : 22/12/2014 21:32
Un petit exemple basique pour t'aider à comprendre:
Dans ton script php:
// ta requête
Dans ton template, affichage des valeurs du tableau contenues dans la variable smarty (pour chaque enregistrement):
<{foreach item=mysmartyitem from=$mysmarty}>
Astuce: Tu mets le mode 'Debug pour smarty et template' actif dans l'administration de Xoops pour voir comment est construite ta smarty ![]()
#7
Re: Utiliser l'api allociné dans xoopstube
seboseboss
Posté le : 22/12/2014 22:28
Salut
En fait quand c'est une requête sql ,j'ai bien compris le système avec while et xoopstpl append mais cette fois c'est une variable array (enfin c'est une requête mais ça se passe à un autre niveau) et je n'est jamais traité cette façon de faire, c'est pour ça que j'ai un peu de mal sans avoir un exemple concret. Apparemment y'a pas besoin de parcourrir le tableau et d'attribuer chaque entrée du tableau ,ont peu les appeler direct dans le template. Je vais tester tout ça. Pas facile Bon ben ça marche pas en faisant comme ça: fichier php:
try
template:
<ul>
Toujours rien qui s'affiche
#8
Re: Utiliser l'api allociné dans xoopstube
seboseboss
Posté le : 22/12/2014 23:17
Déja est ce que c'est vraiment $données qu'il faut appeller car le code de base fonctionne avec $donnees['movie']:
foreach ($donnees['movie'] as $key)
Les infos brut de $données ça peut aider:
Array ( [page] => 1 [count] => 1 [results] => Array ( [0] => Array ( [type] => movie [$] => 10 ) [movie] => 10 ) [totalResults] => 10 [movie] => Array ( [0] => Array ( [code] => 61282 [originalTitle] => Avatar [productionYear] => 2009 [release] => Array ( [releaseDate] => 2010-09-01 ) [castingShort] => Array ( [directors] => James Cameron [actors] => Sam Worthington, Zoe Saldana, Sigourney Weaver, Stephen Lang, Michelle Rodriguez ) [statistics] => Array ( [pressRating] => 4.33333 [userRating] => 4.29463 ) [poster] => AlloImage Object ( [imageIcon:AlloImage:private] => [imageBorder:AlloImage:private] => [imageSize:AlloImage:private] => [imageHost:AlloImage:private] => images.allocine.fr [imagePath:AlloImage:private] => medias/nmedia/18/78/95/70/19485155.jpg ) [link] => Array ( [0] => Array ( [rel] => aco:web [href] => http://www.allocine.fr/film/fichefilm_gen_cfilm=61282.html ) ) [title] => Avatar [posterURL] => http://images.allocine.fr/medias/nmed ... /95/70/19485155.jpg ) ) [movieSorted] => Array ( [0] => Array ( [code] => 61282 [originalTitle] => Avatar [productionYear] => 2009 [release] => Array ( [releaseDate] => 2010-09-01 ) [castingShort] => Array ( [directors] => James Cameron [actors] => Sam Worthington, Zoe Saldana, Sigourney Weaver, Stephen Lang, Michelle Rodriguez ) [statistics] => Array ( [pressRating] => 4.33333 [userRating] => 4.29463 ) [poster] => AlloImage Object ( [imageIcon:AlloImage:private] => [imageBorder:AlloImage:private] => [imageSize:AlloImage:private] => [imageHost:AlloImage:private] => images.allocine.fr [imagePath:AlloImage:private] => medias/nmedia/18/78/95/70/19485155.jpg ) [link] => Array ( [0] => Array ( [rel] => aco:web [href] => http://www.allocine.fr/film/fichefilm_gen_cfilm=61282.html ) ) [title] => Avatar [posterURL] => http://images.allocine.fr/medias/nmed ... /95/70/19485155.jpg ) ) )
D'ailleur y'a un soucis, il manque le synopsis(c'est un autre pb) J'y connais pas grand chose en type de tableau mais je crois que c'est un tableau de données et donc il doit falloir utiliser section au lieu de foreach. J'ai raison ou pas? Non ça marche pas, ou ça me prend la tête ce truc, j'ai eu aucun pb pour adapter l'api allociné et la je passe des heures et des heures pour afficher 3 lignes, prise de tête. J'arrête.
#9
Re: Utiliser l'api allociné dans xoopstube
montuy337513
Posté le : 23/12/2014 00:36
en tout cas, c'est un tableau, donc si tu fais $donnees[page] tu obtiens 1.
Pour savoir si tu dois utiliser foreach, tout dépend donc ce que tu veux exploiter. mais le plus simple : Exemple : affichage de la date de production
<{$donnees.productionYear}>
Mais, comme tu peux le remarquer, dans certaines lignes du tableau, il y a encore un tableau (et oui, c'est un magnifique tableau multidimensionnel) Dans ce cas, tu peux utiliser foreach (surtout si les clés du second tableau changent systématiquement) ou si c'est identique pour tous les films
Producteur : <{$donnees.castingShort.directors}>
#10
Re: Utiliser l'api allociné dans xoopstube
seboseboss
Posté le : 23/12/2014 01:15
Tableau multidimensionnel + smarty, franchement ça commençe à être trop pour moi, j'arrive rien à afficher, en php normal j'y arrive mais quand il s'agit de faire ça dans xoops, c'est pas la même.
<{$donnees.productionYear}> Ca affiche quoi? ben rien du tout C'est la surchauffe,ça me prend le choux!! Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513
138 Personne(s) en ligne (125 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 138 | Plus ...
138 Personne(s) en ligne (125 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 138 | Plus ...