Bonjour,
j’essaye de personnaliser un module de simplenews pour ajouter des contenus du site à la newsletter.
J’ai un besoin très particulier de devoir changer les liens des noeuds afin que l’utilisateur soit redirigé sur un autre site quand il clique sur le titre du noeud.
Daans le module, j’ai un fichier theme.inc
Dans ce fichier j’ai une fonction qui affiche les champs conformément au theme :
/**
* Each selected node goes true this function to create a nice body.
*/
function theme_scs_node_output($node) {
$output = '';
$build = node_view($node['node'], $node['view_mode']);
unset($build['#contextual_links']); //remove the edit link and etc.
$output = '<div id="newsletter_node_' . $build['#node']->nid . '">';
$output .= '<div>' . drupal_render($build) . '</div>';
$output .= '</div>';
return $output;
}
drupal_render va donc imprimer les infos.
Seulement j’ai besoin d’abord de changer le lien du titre, mais je n’arrive pas à parcourir les données pour savoir quel champs modifier.
j’ai essayé :
foreach ($build['links'] as $key => $value)
{
$info .= $key . '/' . $value .'-------------------------------- ';
}
return $info;qui me sort :
theme/links__node————————————————
#pre_render/Array————————————————
#attributes/Array————————————————
node/Array————————————————————
j’en deduis qu’il faut que je rentre dans node pour avoir le lien…
avec $build[‘links’][‘node’] :
theme/links__node__node————————————————
#links/Array————————————————
#attributes/Array————————————————
j’en deduis qu’il faut rentrer dans #links pour avoir le lien…
avec $build[‘links’][‘node’][‘#link’]
ben j’ai rien qui s’affiche..
j’ai des lacunes pour parser des elts objet ou array donc je suis coincé…
merci de m’éclairer !
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Bonjour,
dans ces cas là, la fonction var_dump est bien pratique, car elle affiche tout le contenu des objets
tu peux par exemple faire :
<pre>var_dump($node);
</pre>
ou
<pre>var_dump($build);
</pre>
vincent59
2594
oui j’avais pensé à ça, mais ça ne marche pas dans cette fonction.
function theme_scs_node_output($node) {$build = node_view($node['node'], $node['view_mode']);
$info = var_dump($build);
return $info;
}
pas d’erreur mais rien en sortie…..ça provient du fait que l’on soit dans un fichier de theme non ?
zorax
131
je pense qu’il ne faut pas faire
$info = var_dump($build);return $info;
mais plus simplement
var_dump($build);Bien sur, ça va un peu «casser» le thème, mais c’est pour son bien ;-)
vincent59
2594
j’ai essayé mais ça ne sort rien du tout, pas d’erreur d’ailleurs non plus…..
zorax
131