avec eZ Publish, lorsqu 'est donné un objet ezContentObjectTreeNode, comment puis-je trouver son frère précédent/suivant? Y a-t-il un opérateur de gabarit? Si non, y a-t-il une méthode php?Comment trouver le frère précédent d'un noeud?
3
A
Répondre
1
Voici un moyen, basé sur la propriété enfants du nœud.
{foreach $node.parent.children as $k => $v}
{if eq($node.node_id, $v.node_id)}
{if gt($k, 0)}
{set $prev = $node.parent.children[$k|dec()]}
{/if}
{if lt($k, $node.parent.children|count())}
{set $next = $node.parent.children[$k|inc()]}
{/if}
{/if}
{/foreach}
Vous pouvez également utiliser une fonction d'extraction de gabarit. Je ne suis pas sûr si la première méthode va maintenir le tri. Cependant, si vous utilisez la fonction d'extraction correctement, cela sera certainement le cas.
1
Parfois, la récupération tour de la conception/base/override/templates/full/image.tpl peuvent être utilisés:
{def sort_order=$node.parent.sort_array[0][1]
sort_column=$node.parent.sort_array[0][0]
sort_column_value=cond($sort_column|eq('published'), $node.object.published,
$sort_column|eq('modified'), $node.object.modified,
$sort_column|eq('name'), $node.object.name,
$sort_column|eq('priority'), $node.priority,
$sort_column|eq('modified_subnode'), $node.modified_subnode,
false())
previous_image=fetch_alias(subtree, hash(parent_node_id, $node.parent_node_id,
class_filter_type, include,
class_filter_array, array('image'),
limit, 1,
attribute_filter, array(and, array($sort_column, $sort_order|choose('>', '<'), $sort_column_value)),
sort_by, array(array($sort_column, $sort_order|not), array('node_id', $sort_order|not))))
next_image=fetch_alias(subtree, hash(parent_node_id, $node.parent_node_id,
class_filter_type, include,
class_filter_array, array('image'),
limit, 1,
attribute_filter, array(and, array($sort_column, $sort_order|choose('<', '>'), $sort_column_value)),
sort_by, array(array($sort_column, $sort_order), array('node_id', $sort_order))))}
(ne pas oublier de changer 'l'image' à filtrer quelque chose de plus réel)
Questions connexes
- 1. jquery trouver le plus proche avec classe frère précédent
- 2. Comment utilisez-vous frère précédent sur le contenu ajouté dynamiquement?
- 3. élément donnent même largeur que frère précédent
- 4. Obtenir le frère précédent d'un élément en utilisant JQuery
- 5. XPath pour trouver le noeud de texte qui est un frère d'autres nœuds
- 6. Comment trouver le bouton Précédent avec Android?
- 7. Comment trouver le contrôle actif précédent: Delphi
- 8. Trouver le frère d'un élément dans une liste d'éléments
- 9. Comment trouver le noeud sélectionné dans Tree?
- 10. Django demande de trouver le précédent référent
- 11. prototype - Code élégant pour trouver frère suivant
- 12. Obtenez le href du frère précédent et mettre à jour le href de l'élément actuel
- 13. Comment trouver un enregistrement créé le mois précédent?
- 14. EXTJS Trouver le parent d'un noeud
- 15. JQuery - trouver un caractère précédent
- 16. Sélectionnez le premier frère
- 17. Comment trouver le parent d'un noeud ASP.NET TreeView en JavaScript?
- 18. Ensembles imbriqués MySQL - Comment trouver le parent du noeud?
- 19. Comment trouver un noeud dans une plage, puis le supprimer?
- 20. C# LINQ findind les données à partir d'un noeud précédent
- 21. Trouver un noeud enfant XML
- 22. Trouver un horodatage Unix de minuit le lundi précédent
- 23. XPath pour trouver un élément avec un frère similaire
- 24. jquery trouver li précédent et changer css
- 25. trouver l'élément précédent dans un tableau JQuery
- 26. Html Agility Pack: Trouver un noeud de commentaire
- 27. Trouver les enfants immédiats d'un noeud XML
- 28. modification traversal arbre en précommande - trouver le noeud suivant
- 29. XML C# Façon rapide de trouver le noeud
- 30. JavaScript suivant frère ou sœur?
C'est compliqué (allez, 10 lignes de code pour ça?!?), Mais j'ai déjà fait des choses si compliquées pour obtenir une information aussi simple que celle-ci. Donc vous devez avoir raison. Félicitations, accepté, et merci pour le partage! – greg0ire