Submitted by mougeole on
Bonjour
Je fais appelle à vos lumières car quelques trucs m'échappe pour "thèmer" les liens.
Voici ce que je cherche à faire
Je veux changer le style des liens "en savoir plus". Le truc un peu "tricky" c'est que mon site est diviser en 3 parties. Chaque lien "en savoir plus" de chaque partie à une couleur différente.
De plus sur la page d'accueil, on retrouve des news des trois parties (avec leur couleur respective).
J'ai déjà utilisé la fonction NOMDEMONTHEME_links($links, $attributes = array('class' => 'links'))
dans le fichier template.php pour changer l'aspect de mes liens primaires et secondaires.
Je voulais faire de même avec les liens en savoir plus.
J'ai essayé d'utiliser le même appel que pour les liens primaires :
print theme('links', $primary_links, array('class' => 'mainmenu', 'id' => 'navlist'));
Pour mes liens en savoir plus :
print theme('links', $links, array('class' => 'categorie1'));
à la place de print $links
et de passer le nom de ma classe dans l'array $attributes.
Malheureusement, rien ne s'affiche.
Est-ce que c'est impossible à faire avec cette méthode ?
Je précise qu’en modifiant la
Permalien Soumis par mougeole le 8 Septembre, 2010 - 13:36
Je précise qu'en modifiant la fonction NOMDUTHEME_links() dans le fichier template.php, je peux déjà faire des changements sur mes liens.
Le problème sur lequel je butte c'est "Comment récupérer la catégorie du node pour afficher le lien de la couleur correspondante"
Question subsidiaire, est-ce que l'on peut récupérer l'objet $node dans le fichier template.php
Normalement, on peut
Permalien Soumis par vincent59 le 8 Septembre, 2010 - 14:52
Normalement, on peut récupérer l'objet $node, et le type avec $node->type.
Tu peux essayer de faire un
print_r($node);
dans ton template.php pour voir le contenu de l'objet $node.
Merci pour ta réponse Petite
Permalien Soumis par mougeole le 9 Septembre, 2010 - 09:35
Merci pour ta réponse
Petite précision, on ne peut pas récupérer l'objet $node dans template.php
Par contre je peux le récupérer dans mon template de node (node-actualite.tpl.php)
C'est dans ce fichier que je test le type, dans mon cas il s'agit du champs $node->field_type_pole_actualite[0]['value'] (j'aurais pas deviner le nom du champs comme ça, merci print_r)
je fais ensuite un replace
$class étant initialisé avec la valeur du champs type_pole_actualite
Sisi on peut recupere
Permalien Soumis par haza le 14 Septembre, 2010 - 10:38
Sisi on peut recupere l'équivalent de $node dans template.php.
C'est même là qu'il faut le faire, le moins possible de php dans les fichiers tpl, pitié :)
template.php
Ca ca me semble intéressant.
Permalien Soumis par mougeole le 14 Septembre, 2010 - 11:34
Ca ca me semble intéressant. Je vais creuser cette solution
Bonjour, Allez, hop !, je
Permalien Soumis par Pomliane le 13 Septembre, 2010 - 23:20
Bonjour,
Allez, hop !, je prends le rique de poser une question bête : si tu ne veux modifier que les styles et couleurs des liens "En savoir plus", pourquoi ne pas simplement utiliser les propriétés CSS ?
oui, pareil ! tu parles de
Permalien Soumis par Wabby le 14 Septembre, 2010 - 09:23
oui, pareil !
tu parles de vouloir styler les liens "En savoir plus", alors utilises donc les styles css :-)
Ces liens sont identifiés (node_read_more...)et tu dois pouvoir distinguer les différentes couleurs que tu souhaites mettre en place, grâce aux id de tes différents blocs, views ou autres panels...
L'idée là, c'est qu'on parle d'apparence et non de contenu, donc la logique veut qu'on ne touche pas aux templates (surtout que là, il n'y a pas besoin), mais aux feuilles de styles... enfin, c'est mon avis :-)
Je suis d’accord. Il s’agit
Permalien Soumis par mougeole le 14 Septembre, 2010 - 11:33
Je suis d'accord. Il s'agit bien là d'apparence.
Seulement voilà. J'ai 3 blocs par catégorie plus un résumé des news sur la page d'accueil.
Sur la page d'accueil je dois donc avoir dans le même bloc un lien orange, un lien bleu et un lien vert.
De plus si on compte le nombre de bloc on arrive à 10 blocs donc 10 déclarations CSS. Si je veux changer la couleur d'un lien d'une catégorie, je dois changer 3 déclarations css pour un seul lien!!! Je perds alors l'intérêt d'utiliser la cascade CSS.