Question

Je dois construire et imprimer un lien profond à tout commentaire donné. Pour que l'utilisateur peut accéder directement au commentaire spécifique en cliquant juste un lien. Je ne pouvais pas trouver une fonction native pour obtenir drupal ce donc je construis mon propre.

Ma solution

<?php
    global $base_url;
    $base = drupal_lookup_path('alias',"node/".$node->nid);
    $path = $base_url.'/'.$base.'#comment-'.$comment->cid;

    $link_options = array('html'=> $html);
    $commentlink = l($date, $path, $link_options);
?>

Pour imprimer le lien que vous avez seulement à l'appel <?php print $commentlink;?>. Mais je suis sûr qu'il ya mieux et beaucoup plus comme moyen de drupal résoudre le problème.

La meilleure façon

Mikeker a fait :) Comme il a suggéré ici sont la solution.

<?php
 $commentlink = l(
    $date,
    "node/$comment->nid",
    array("fragment" => "comment-$comment->cid"));
?>

Notez la petite différence bettween Mikeker et ma version. array("fragment" => "comment-$comment->cid")); et array("query" => "comment-$comment->cid"));

La requête param ajoutera un ? à l'URL. Donc, votre chemin ressemble

//…query
http://example.com/path/to/node?comment-2

En face de ma solution (fragment):

//…fragment
http://example.com/path/to/node#comment-2

Remarque: Ne pas inclure le premier « # » caractère à un identifiant de fragment. Il sera ajouté par Drupal.

Était-ce utile?

La solution

C'est fondamentalement la façon de le faire. Commentaire permalinks sont sous la forme:

node/<nid>#comment-<cid>

<nid> et <cid> sont les ID de nœud et de commentaires, respectivement. Vous pouvez vous épargner une étape en ne faisant pas appel drupal_lookup_path() - l() ou url() le font pour vous. La routine raccourci ressemblerait à ceci:

$commentlink = l(
  $date,                                      // Text of the link
  "node/$node->nid",                          // path to node, l() handles aliases
  array('query' => "comment/$comment->cid"),  // fragment to specific comment
);

Autres conseils

Au cas où quelqu'un se demandait, comme Drupal 7 (au moins, semble être) ceci:

<a href='http://YOURSITE.com/comment/CID#comment-CID'>link text</a>

Par exemple:

print "<a href='/comment/$comment->cid#comment-$comment->cid'>text here</a>";

Et ce serait placé dans, peut-être, un fichier comment.tpl.php.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top