Umi Blog
ウミブログ
最近非常に暑いですね。最寄りのJR石山駅から徒歩5分あるかないかくらいなのに、スタジオ・ウミの職場に付く頃には毎日滝のような(言いすぎ?)汗が流れています。 水分補給と塩分補給はしっかりしたいものですね。
さて、今回はDrupalでリンクを生成する関数について書き殴ろうと思います。
それがこちらl関数です
<?php
l($text, $path, array $options = array());
?>
(検索する時は 「drupal l function」って書くと大体1番上に英語版のAPIが出てきます)
$text
リンクのテキストです。<a>と</a>の中身です。
画像なども入れられますが落とし穴があります。
$path リンクのパスです。urlを入力できますが、 外部サイトで無い限り「node/1」とか「contact」のようなDrupal内部パスを用います。単にエイリアスだけでも認識してくれますが「node/*」の方で指定した方が良さそうな気がします。 drupal内部パスで指定してあげるとどの階層にいても自動でDrupal側でリンクを生成してくれます。
$options(配列) リンクに様々なオプションを追加できます。 キーとそれに対応する値を入力します。私が良く使うのはこの4つ。
ちなみにfragmentとqueryのオプションはurl関数で使用される要素です。 url関数の$option部分をl関数でも使えるんですね。url関数については近々書きます。 また、l関数はリンクを作成するだけなのでPHPのprint関数などを使って出力してあげないと画面に表示されません。 実はよくここで引っかかるんですよね・・・
さて、以上を全て入れたコードを書くなら以下のようになります。
<?php
print l(
'<strong>お問い合わせ</strong>',
'contact',
array(
'attributes' => array(
'id' => 'contact-link',
'class' => 'link'
),
'html' => true,
'fragment' => 'contact-form',
'query' => array('content' => 'ホームページ制作について')
)
);
?>
実際に確認はしてないですがこれがhtmlコード化されるとこんな感じになります。
<a href="/contact" id="contact-link" class="link"><strong>お問い合わせ</strong></a>
ちゃんと確認したら結果を載せますね!
2013/8/27 追記 上記のコードはこのような結果になりました。
<a href="/contact" id="contact-link" class="link"><strong>お問い合わせ</strong></a>
エンコードされた部分はデコードすると
ホームページ制作について
となりました。
小さなご意見も、私たちにとっては大きなヒントです!
ぜひ率直なご感想をお寄せください
この

Masters of Drupal Engineering.
人に、