2014年7月24日木曜日

drupal 7 テンプレート db_query


複数職を持っている人を職業別に分類

-----------------------------CSS部-------------------------------------
span {
display: inline-block;
width: 9em;
}

------テンプレート部 (この後このテンプレートはは訂正した。訂正分はこの直後)-----------

<?php

print '<hr>';

$result = db_query('SELECT taxonomy_term_data.name as tagname, users.name as uname FROM ({field_data_field_yoo} LEFT JOIN {taxonomy_term_data} ON field_data_field_yoo.field_yoo_tid = taxonomy_term_data.tid) LEFT JOIN {users} ON field_data_field_yoo.entity_id = users.uid');
$ygrp = "hogehoge"; //最初に適当にあり得ない職業の名前をつけておく。(かっこ悪いけど、こんなやり方しか今のところ思いつかない。)
foreach(
$result as $item) {

if ($ygrp !== $item->tagname){      //もし$item->tagnameが最初に出てきた職業名ならばトップに表示をする。
print '<hr>';
print "<p><span>".$item->tagname."&nbsp;"."</span>".$item->uname."&nbsp;&nbsp;&nbsp;"; //<span>はユーザーの先頭の文字をそろえるため。cssで、10文字文下がったところから表示させる設定にしてある(display: inline-block; width: 10em;)。&nbsp;はスペース。
}
else
{  print $item->uname."&nbsp;&nbsp;&nbsp;";  //もし、$item->tagnameが2度めならば、職業名は表示させない。
}

$ygrp = $item->tagname;             //$ygrpの値をここで更新。

}

?>


------------------テンプレート 訂正 (ユーザー名にリンクを張った)-------------------
<?php

print '<hr>';

$result = db_query('SELECT taxonomy_term_data.name as tagname, users.name as uname, uid FROM ({field_data_field_yoo} LEFT JOIN {taxonomy_term_data} ON field_data_field_yoo.field_yoo_tid = taxonomy_term_data.tid) LEFT JOIN {users} ON field_data_field_yoo.entity_id = users.uid');
$ygrp = "hogehoge"; //最初に適当にあり得ない職業の名前をつけておく。(かっこ悪いけど、こんなやり方しか今のところ思いつかない。)
foreach(
$result as $item) {

if ($ygrp !== $item->tagname){      //もし$item->tagnameが最初に出てきた職業名ならばトップに表示をする。
print '<hr>';
print "<p><span class=yspan>".$item->tagname."&nbsp;"."</span><a href=\"http://localhost/dtest/user/".$item->uid."\">".$item->uname."</a>&nbsp;&nbsp;&nbsp;"; //<span>はユーザーの先頭の文字をそろえるため。cssで、10文字文下がったところから表示させる設定にしてある(display: inline-block; width: 10em;)。&nbsp;はスペース。
}
else
{  print "<a href=\"http://localhost/dtest/user/".$item->uid."\">".$item->uname."</a>&nbsp;&nbsp;&nbsp;";  //もし、$item->tagnameが2度めならば、職業名は表示させない。
}

$ygrp = $item->tagname;             //$ygrpの値をここで更新。

}

?>


0 件のコメント:

コメントを投稿