Submitted by noptien on
Bonjour,
je suis en train de mettre en place mes propres tpl liés à des content type. je change donc node-montype.tlp.php
je cherche à récupérer le filepath des images pour les insérer dans jcarousel
j'ai parcouru le forum, mais je n'arrive pas récupérer cette valeur. Pour info, je comprends un peu le php.
j'ai vu ceci
$node->content['field_FOOBAR']['#value']
$node->field_FIELDFOO[n]
pour ma part voila mon code :
<?php
print $node->field_spect_photos[1]['filepath']['#value'];
print $node->field_spect_photos[1]['#value'];
print $node->content['field_spect_photos[1][filepath]']['#value'];
print $node->content['field_spect_photos[1][1]']['#value'];
?>
<ul id="mycarousel">
<li><img src="<?php print je ne sais pas quoi mettre ici;?>" alt="" /></li>
Ou se trouve mon erreur ?
Merci pour votre aide.
Nopt
En utilisant Contemplate
Permalien Soumis par Numerizen le 6 Mars, 2009 - 11:47
En utilisant Contemplate (http://drupal.org/project/contemplate), tu as accès au contneu de la variable $node, ce qui permet de savoir où est situé exactement le chemin dans le tableau.
Plus simplement, tu peux faire un var_dump($node) à l'endroit approprié pour le même résultat, juste un peu moins propre.
Ca ne serait pas tout
Permalien Soumis par haza le 6 Mars, 2009 - 14:34
Ca ne serait pas tout simplement parce qu'on commence a 0 ? (et il ne me semble pas qu'il y ai pas de #value)
<?php
print $node->field_spect_photos[0]['filepath'];
?>
Bonjour et merci pour vos
Permalien Soumis par noptien le 6 Mars, 2009 - 14:44
Bonjour et merci pour vos réponses. Effectivement il ne faut pas de value:
la bonne forme est (merci haza):
print $node->field_spect_photos[0]['filepath']
Par contre, on est pas obligé de commencer par 0.
J'ai donc réussi à injecter dans jcaroussel. (bien content, je suis).
A très bientôt. très
Nopt
En fait, le [0], c'est dans
Permalien Soumis par haza le 6 Mars, 2009 - 15:03
En fait, le [0], c'est dans le cas des champs CCK multiple, c'est l'increment ;)
Bah oui, d'où l'intérêt
Permalien Soumis par Numerizen le 6 Mars, 2009 - 15:05
Bah oui, d'où l'intérêt de ne pas rester scotché sur le zéro, qui peut changer pour peu qu'il y ait plusieurs champs sur le contenu.
Bonjour, je réouvre le
Permalien Soumis par noptien le 9 Mars, 2009 - 10:18
Bonjour, je réouvre le dossier car, je recontre d'une difficulté supplémentaire. Alors que je récupère facilement les images lorsque je me trouve dans le teaser, lorsque je clique sur en savoir plus (donc je change d'url, je passe de http://localhost/cocktail2/ à http://localhost/cocktail2/content/cocktail), il ne retrouve plus ses petits. Pour info j'ai installé path auto. Je me demande si je ne vais pas être obligé de saisir l'url jusqu'au dossier files en dur ? Autre remarque, je trouve que la gestion des clean url est une vraie usine à gaz au début (entre path, pathauto, globalredirect, .htacces, pre_process(),et autres joyeusetés). J'y perd un peu mon latin.
Voici donc mon code. Que me conseillez-vous ?
<?php
// $Id: node-spectacle.tpl.php,v 1.1 2008/10/01 03:26:19 jwolf Exp $
?>
<!-- start node-spectacle.tpl.php -->
<div id="node-<?php print $node->nid; ?>" class="node <?php print $node_classes; ?>">
<?php print $picture ?>
<?php if ($page == 0): ?>
<h2 class="title"><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<div class="content">
<?php print $content ?>
</div>
<ul id="mycarousel">
<?php foreach ((array)$field_spect_photo as $item) { ?>
<li><img src="<?php print $item['filepath']?>"/></li>
<?php } ?>
</ul>
<?php
//drupal_set_message('<pre>'.print_r($node, true).'</pre>');
?>
<?php
jcarousel_add('#mycarousel', array('horizontal' => TRUE, 'scroll' => 1,'animation' => 'slow'));
?>
<?php if ($links): ?>
<div class="links">
<?php print $links; ?>
</div>
<?php endif; ?>
<?php if ($node_bottom && !$teaser): ?>
<div id="node-bottom">
<?php print $node_bottom; ?>
</div>
<?php endif; ?>
</div>
<!-- /#node-<?php print $node->nid; ?> -->
Merci pour votre aide
Je suppose que ton
Permalien Soumis par haza le 9 Mars, 2009 - 10:28
Je suppose que ton $item['filepath'] retourne bien le chemin.
<ul id="mycarousel">
<?php foreach ((array)$field_spect_photo as $item) { ?>
<li><img src="<?php print $base_path . $item['filepath']?>"/></li>
<?php } ?>
</ul>
$base_path permet de calculer a coup sur le chemin vers la racine (/) de ton site. Donc une fois les clean url activée, c'est indispensable.
Merci pour ton aide, mais
Permalien Soumis par noptien le 9 Mars, 2009 - 11:31
Merci pour ton aide, mais j'ai toujours le même symptôme. Finalement j'opte pour la saisie partielle de l'url, et la ca marche. Il faudra que je pense à la changer quand je le mettrai en ligne :-)
<ul id="mycarousel">
<?php foreach ((array)$field_spect_photo as $item) { ?>
<li><img src="http://localhost/cocktail2/<?php print $base_path . $item['filepath'] ?>"/></li>
<?php } ?>
</ul>
Toutefois, cela me perturbe un peu. je me demande bien pourquoi, il ne retrouve pas ses petits. Je ferai des recherches lorsque j'aurai un peu plus de temps. (Maquette à rendre ce soir :-) )
Merci pour ton aide Haza
Noptien