top


総投稿数 本 
no_

スポンサーサイト

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

Drupal:まずサブメニューから進めてゆくか。サブの扉頁、さてどうやって創ればいいのだ ・・・ 【今日のDrupal】

 2010-01-13
 Drupal におけるサイト構築。
 昨日、
 ・ページ用テンプレート変数
 ・各テンプレートの役割や仕組みを
 大筋理解したところで(ほんと?)
 早速、引越し作業の実践を続ける。

 ※Drupal ご興味ない方にも
  面白がっていただけるよう、できるだけ
  他の要素
  (JavaScript/Ajax,PHP,WebAPI・・・)も
  盛り込んでゆきます。


 トップ頁はちょっと考えていることもあるので
 先に、サブメニューの扉頁
  ・創った と
  ・ブログ実践構築
 から進める。


 これが、最初ね。
    サブメニューの扉頁:before
 さ、これがどうなったか?


  追記に (長文ご容赦) ▼


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


more

************************************************
◎ サブの扉頁、さてどうやって創ればいいのだ の巻 :Drupalはどう?
************************************************


 まず、企画仕様。
 この頁は、
 【役割】
  ・WordPress, Movabletype それぞれの
   実践構築ブログにつながる
   (サブ)メニュー扉頁
 【イメージ】
  ・それぞれのブログにおける簡単な紹介と
   コンパクトにまとめた情報
   が収まった頁
 【機能】
  ・bing や Google から最新の関連情報、ニュースを
   取得、(いちお、マッシュアップ)表示
  ・それぞれの重要リンク先をまとめた
   簡易リンク集
  ・それぞれのブログ最新記事抜粋
  ・・・ん~ん。欲張りか?

 気にせず進める。


 


 ■最初の?
  ・ものすごく単純な疑問だが、
   1:コンテンツの入力フォームから
     phpコードも交え、登録した方がいいのか?
   2:(それとも)こういう複雑な場合は
     別に動作ファイル用意して
     include なりで構築すべきか?
   3:(やはり)参考書にもあるように
     オリジナルのモジュール群を作成し
     その中で実現した方がいのか?
   4:(さらに)それよりも
     拡張モジュールをもっとリサーチ、勉強して
     できるだけありもので創った方がいいのか?

  ※いろいろ悩んだが・・・答えは早い。
   今回は時間も無いし、他に汎用性、拡張性
   あるものでもないので、2の
   別ファイルで作成し、組み込む方法をとってみる。

 


 【実践
  □テスト1
<?php echo "ok!"; ?>
 とした、inc_blogs_cont.php というファイルを用意しておき
   ・管理セクション>コンテンツ>編集 で
    「ブログ実践構築」に紐付けられているコンテンツ
    ・タイトル
     「Wordpress と、MovableType どちらも素晴らしいツールですね」
    □本文に、
<? require_once("/*****/inc_blogs_cont.php"); ?>
 
     ▼
   ・だ~めだぁ。(恥ずかし)
    だ~めだぁ。(恥ずかし)
     「入力書式」を
      ・Filtered HTML にしても
      ・Full HTML もだめ。
      ・.htaccess に
AddType application/x-httpd-php .php .html .htm
 入れてても。
     ふふふ。そうだとは思っていたのだが。

  □テスト2
   特定の node のみに適用するテンプレートphpファイルを用意
   する。
   ・コンテンツ用テンプレートファイルは
    "node.tpl.php" だと聞いている。
    ※フロント頁専用のテンプレートファイルを
     "page-front.tpl.php" として作成できたように
     あるコンテンツ専用のテンプレートファイルを
     作成できるに違いない。


  ・・・探して

Different page templates depending on URL aliases
Different page templates depending on URL aliases あった~。これでしょ。
 URLエイリアスに対応して
 特定のテンプレートファイル
 利用できるように・・・
 template.php をカスタマイズするのね。




    ・本件のURLは、
     http://*****.com/blogs だから、
     "page-blogs.tpl.php" というテンプレートを用意して、中で、
<div id="content-content">
<?php print $content."<br />"; ?>
<?php print "どうよ?"; ?>
</div>
 としておく。
     ▼
   ・ビンゴ!
    ビンゴ!
     これで、コンテンツごとにハンドリングを
     テンプレートでできることはわかった。

     ・・・しかし?
     これ、途中で、テーマ変えたらその都度対応必要かぁ。
     テーマの枠を超えて、共有のテンプレートってのは
     無いのだろうか?
     (フレームワークだけど、symfony みたいに)
     ・・・まぁ、それを実現できるのが
        モジュールってことなんだろうなぁ。
     とりあえず今回はこれでOK。
     この専用のテンプレートファイルで自由に書いてゆく。


     もちろん、基本は前回の "page-front.tpl.php" と同じように
     部品化しているから、共通部分の変更は容易だ。


 


  □node.tpl.php
   さてレイアウトカスタマイズしたいのだが、
   コンテンツのメイン部分は、
   ・コンテンツ用テンプレートファイルである
    ・node.tpl.php が適用されているわけだ。
    ※このテンプレートも 特定のテンプレートファイル
     利用できるのかな? と思ったら
     ・コンテンツタイプごとには可能なようだ。
      >参照:テンプレートファイルの命名規則
       ありがとうございます。
     それではこの中で、
     ・テンプレート変数 利用してケースすればいいのかな。
      利用できる変数の中に、
      $node->nid で、nodeIDが得られるようなので、
<?php if ($node->nid == 4){ # blogs ?>
鋭意編集中!です。<br />
<?php }else{ ?>
<?php } ?>
 とテスト。
     ▼
   ・ビンゴ!
    ビンゴ!
     いいねいいね。よくわかるぞ。

  □jQuery と、thickbox31.js
   ここで突然ですが・・・


   これからいろいろカスタマイズするに必要な
   JavaScriptライブラリをまとめて入れておこ。
   まずは、この2つ。
   ・<head> ~ </head> の中は、各テンプレートファイルで、
<head>
<? require_once("*****/inc_htmlhead.php"); ?>
</head>
 としているので容易。
   inc_htmlhead.php 内で、
<link rel="stylesheet" href="/css/thickbox.css" type="text/css" /> 
<script src="/js/jquery1_3_min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
jQuery.noConflict(); var j$ = jQuery;
base_url = "*****";
</script>
<script type="text/javascript" src="/js/thickbox31.js" charset="utf-8"></script>
 と組み込む。
   ※欲張りで、いづれ prottype.js も同時に使いたいので
    その対応もしている。
    ・script.aculo.us:ははは。これを入れて試してみたかったのだ ・・・ 【JavaScript】

  □メッセージ何度も見たくないだろうし、
   エリアを広く使いたいし・・・
   で、jQuery 使って(最近よく利用する)
   エリア表示のオンオフの機能を入れる。


   【想定仕様】
   ・最初は、メッセージ表示
    見たこと、クッキーに保存して
   ・一度見たら、次回また訪れた際は、
    メッセージ部分は閉じて表示。
    手動で開くこともできる。


   【実装】JavaScript関数用意して、
function OpenToggleDivOnOff(strID1,strID2){
var v1 = document.getElementById(strID1);
var v2 = document.getElementById(strID2);
if (j$(v1).css('display') == 'none') { j$(v1).fadeIn("slow");
j$(v2).fadeOut("slow");
} else { j$(v1).fadeOut("slow");
j$(v2).fadeIn("slow");
}
}
function SetCookie(intDay,strVars,strVals,op_escape,op_domain,op_path) {
var kikan = new Date();
kikan.setTime(kikan.getTime() + (intDay * 1000 * 60 * 60 * 24));
var toKikan = kikan.toGMTString();

if(op_escape==1){ var tempstr = strVars + "=" + escape(strVals) + ";";
}else{ var tempstr = strVars + "=" + strVals + ";"; }

if(op_domain!=''){ tempstr += " ;domain=" + op_domain + ";"; }
if(op_path!=''){ tempstr += " ;path=" + op_path + ";"; }else{ tempstr += " ;path=/;"; }
tempstr += " ;expires=" + toKikan;
document.cookie = tempstr;
}
function onoffMesToggle(strID,val){
if(val==1){
SetCookie(365,strID,1,0,base_url,'');
OpenToggleDivOnOff(strID,strID + '_');
}else{
if(val==-1){
SetCookie(365,strID,-1,0,base_url,'');
OpenToggleDivOnOff(strID + '_',strID);
}}
}
 ・phpでは、クッキーから値読み取り
$THIS_SYS_PREFS['onoffmes'] = $HTTP_COOKIE_VARS['*****'][onoffmes_blogs];
if(($THIS_SYS_PREFS['onoffmes']!=1)
&&($THIS_SYS_PREFS['onoffmes']!=-1)){ $THIS_SYS_PREFS['onoffmes']=1; }
 ・node.tpl.php で、
<?php if ($node->nid == 4){ # blogs
// メッセージ表示
if($THIS_SYS_PREFS['onoffmes']==1){ $temp_class1 = " divview_off"; $temp_class2 = " divview_on";
}else{ $temp_class1 = " divview_on"; $temp_class2 = " divview_off"; }
$temp_message1 = "<a href=\"javascript:onoffMesToggle('*****[onoffmes_blogs]',1);\" title=\"メッセージを表示します。\">メッセージを表示</a>";
$temp_message2 = "<a href=\"javascript:onoffMesToggle('*****[onoffmes_blogs]',-1);\" title=\"メッセージを非表示にします。\">メッセージを非表示</a>";
?>
<div id = "*****[onoffmes_blogs]_" class="content<? echo $temp_class1; ?>"><? echo $temp_message1."<br />"; ?></div>
<div id = "*****[onoffmes_blogs]" class="content<? echo $temp_class2; ?>">
<?php print "<br />".$temp_message2 ?>
<?php print $content ?>
</div>
<?php } ?>
 ・・・かなり、荒削りですが・・・
     ▼
   ・一応 思惑通り
    一応 思惑通り
    一応 思惑通り

 よし、また明日だ。

commentsコメント
comment_post












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

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

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

 

リンク集

 

最近の記事

 

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

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

 

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