$this->company = “ KDDIウェブコミュニケーションズ ”
$this->name = “ 阿部 正幸 ”
{ We ♥︎ Drupal }
Drupal Cafe UMEDA
● ACE01 / SmartRelease プロダクトマネージャー
● CPI エバンジェリスト 統括
● KDDIウェブ 公認 CPI スタッフブログ 編集長
● Drupal(g.d.o Japan)日本コミュニティー
● 日本ディレクション協会 講演部
● HTML5 Fun 理事
OSSを広げる活動、Web制作に関する情報発信を行う
神戸生まれ、横浜育ち、7月31日生まれ
阿部 正幸(あべ まさゆき)
ディレクタープログラマー プロマネ Evangelist
私の構築スタイル
『 BLOCK 』で構築
- 当日話した内容 –
Drupalの構築は様々な手法があります。昨今はPanelsを使い構築する
ことが多いですが、Blockを使い構築する方法も根強い人気です。
- 当日話した内容 –
Blockごとにパーツを作成し、各ページにブロックを配置しページを作
成していきます。
BLOCK の作り方
ViewsからBLOCKを生成
- Viewsに取り込めたら勝ち -
- 当日話した内容 –
Viewsという最も有名なモジュールを使い、Blockを生成します。
Viewsを使った例をいくつか紹介します。
Views ( 使用例 )
登録件数付きの
タグ一覧
Step .1
Create a taxonomy view
Step .2
Add term group in relationship
Step .3
Add term name , content nid filds for display
Step .4
Use aggregation: Yes
Step .5
Aggregation type : Count DISTINCT
Views ( 使用例 )
ユーザー情報ページに
ユーザーが投稿記事を出力
Step .1
Create a node view
Step .2
Add コンテンツ投稿者 in relationship
Step .3
Contextual filter : ユーザーID 追加
Step .3
パス設定: my_url/%
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[content] = 'Content'
regions[sidebar1] = 'Sidebar1'
regions[sidebar2] = 'Sidebar2'
.infoファイルに追記
- 当日話した内容 –
Viewsを使いブロックを生成し、ブロック領域を作成します。ブロック
領域の登録はテーマ内の、.infoファイルに記述します。
ブロックに要素を追加する
// template.phpファイル
function bootstrap_preprocess_html(&$variables){
}
function bootstrap_preprocess_page( &$variables ) {
// ブロック追加
// $variables['sidebar1'] = block_get_blocks_by_region('sidebar1');
}
function bootstrap_preprocess_node( &$variables ) {
}
// page.tpl.phpファイル
print render($sidebar1);
- 当日話した内容 –
ブロックをCMSから登録したあとに、テーマに反映します。
反映は『THEMENAME_preprocess_xxxx』を使い、ブロックを読み込
みます。
例)
$variables['sidebar1'] = block_get_blocks_by_region('sidebar1');
Sidebar1ブロックに登録されたコンテンツを、変数:sidevar1にセット
しています。
テンプレート側では「print render($sidebar1);」の用に出力を行います。
- 当日話した内容 –
テーマ落とし込みは、Views画面を開き、Advanced >> Theme:
informationより、使っているテンプレートや、コードが確認できます。
細かいHTML出力の設定が可能です。
ありがとうございました
ID:chiyo.abe
阿部 正幸
cpi-line

Drupal7 Blockでサイト構築しよう@Drupal cafe