ラベル

Server (108) work (77) Idea (68) Car (31) PC (29) DAW (28) other (19) MakingWEBsite (18) 趣味 (18) health (13) CentOS (11) drupal (11) (9) android (4) スマホ (4) communication (3) drupal7 (3) hint (3) meno (3) モバイル (3) 歯医者 (3) 第二種電気工事士 (3) 英語 (3) PC Server (2) drupal8 (2) ms access (2) uwp C# (2) めし (2) 整備 (2) 音楽 (2) MIDI (1) diy (1) 会計 (1) 動画再生 (1) 生活 (1) 郵便 (1) 食べ物 (1)

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 件のコメント:

コメントを投稿