top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_1223

Drupal:パンくずリストを用意して、サブメニューを表示させ、[最初の頁に戻る]を用意する。サブメユー扉頁での基本ナビゲーション ・・・ 【今日のDrupal】

 2010-01-13
 Drupal におけるサイト構築。
 サイトでもはや当たり前の
 ・パンくずリスト をはじめとする
  基本的なナビゲーション設置
  終えておく。
  ※Drupal ならではのやり方が
   あるのだろう・・・

 これが、今日の before
    サブメニューの扉頁:before


  追記に (長文ご容赦) ▼


FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


more

************************************************
◎ パンくずリストやなんやら、ナビゲーション設置 の巻
       :Drupalはどう?

************************************************


 モジュールですね。
 ・Wordpress などでもこのあたりは
  整備されてますが、Drupal でも・・・

 

 ◆[モジュール] Taxonomy Breadcrumb

Taxonomy Breadcrumb | drupal.org
Taxonomy Breadcrumb | drupal.org 日本語訳は、こちら
 ・Taxonomy Breadcrumb 日本語翻訳 | DRUPAL*DRUPAL
  で取得させていただく。

 ・・・おかしいな。
     パンくずリスト出ないな。



  こんなのもある・・・
 ・メニュー(menu)から、パンくずリスト
  作ってくれるという
 ◆[モジュール] Menu Breadcrumb

Menu Breadcrumb | drupal.org
Menu Breadcrumb | drupal.org 日本語訳は無いみたいだけど
 ・Menu Breadcrumb 【パンくずリスト 生成】
  こちらで詳しく解説。

 ・・・ありがとうございます。



  でも・・・
  どちらでも表示されない?
  ・・・・・
  なぁ~んだ。
  今利用しているテンプレートの設定ファイル
  template.php を確認してみると・・・
$defaults = array(
'user_notverified_display' => 1,
'breadcrumb_display' => 0,
・・・・・
 後、、
  // Hide breadcrumb on all pages
if (theme_get_setting('breadcrumb_display') == 0) {
#20100113 edit $vars['breadcrumb'] = '';
}
 これでいいんだろ。▼
     表示された。cssは直さねば。
    表示された。cssは直さねば。
    ここで、学習。
    この template.php で、このテンプレートでは、
    ・パンくずリスト表示関数 を
     「オーバーライド」しているはずだ。
     ・デフォルトの
      theme_breadcrumb は、
       includes/theme.inc に、
function theme_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
return '<div class="breadcrumb">'. implode(' ≫ ', $breadcrumb) .'</div>';
}
}
 と見受けられるが、テンプレートで、
       template.php に、
function waffles_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
return '<div class="breadcrumbown">'. implode($breadcrumb) .'</div>';
}
}
 とある。しかし、表示された内容を見ると
      "≫" のままで、システムのものが使われているようだ。
      ・・・あぁそうか。
         複写してテンプレート名称を変えたのだ。
         複写してテンプレート名称変えた場合
         影響あるところをすべて変えておく必要があるな。修正▼
    よし、OK!(cssも修正した)
    よし、OK!(cssも修正した)

 ■現在のnode(メニュー)にリンクされている
  サブメニューが取得したいな


 

  で、いろいろ調べて
  本体 includes/menu.inc の中に
  いくつか興味ある関数を発見。
  ※試してみるに限る
 ◆[関数] function menu_tree($menu_name = 'navigation')
  これで、
$pageitems = menu_tree('primary-links');
print_r($pageitems);
 とすると、▼
    function menu_tree
  と返してくれる。これは、
  ・テンプレート変数:$primary_links_tree
   で得られるものと同じだ。(HTML出力される)

  では、現在の node に紐付けられているもののみ、
  (今回で言えば)node/4 を上位としている
   2つのサブメニューを取得するにはどうすれば・・・?
   ※ループして探すしかないのか?

   ・・・・・


  おぉ。


 ◆[関数] function menu_tree_page_data(($menu_name = 'navigation')
  これで、
$pageitems = menu_tree_page_data('primary-links');
foreach ($pageitem as $value) {
print_r($value['below']);
}
 とすると、▼
    function menu_tree_page_data
  とれそうだぞ。
    ・・・で、▼
    ひとまず、OK
  ひとまず、OK。
  コードは、
<?
$pageitem = menu_tree_page_data('primary-links');
echo "<span class='menu_belows'>"; $temprow=0;
foreach ($pageitem as $value) {
foreach ($value['below'] as $key => $values) {
$tempStr = "<a href =\"/";
$tempStr.= drupal_lookup_path('alias',$values['link']['link_path'])."\"";
$tempStr.= " title = \"".$values['link']['link_title']."\">";
$tempStr.= $values['link']['link_title']."</a>";
if($temprow>0){ echo $tempDir." | "; }
echo $tempStr; $temprow++;
}
}
echo "</span>";
?>
 こんな感じ。
  ポイントとして
 ◆[関数] drupal_lookup_path
  これが便利ですね。

drupal_lookup_path
drupal_lookup_path リアルpath から、エイリアスpath
 エイリアスpath から リアルpath
 どちらもOKです。




  こちらはじっくりと学ぶ必要がありそうです。

API reference | Drupal API
API reference | Drupal API




 しばし、休憩。
 他の 仕事やんなきゃ・・・

commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/1223-b2afed2f
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。