SlideShare a Scribd company logo
1 of 30
XOOPS Cube  テンプレート仕様 Malaika System   早川知道 (Tom_G3X ) 2006.3.18
注意事項 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Xcube のテーマ・テンプレート仕様概要 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Smarty  最新バージョンに ,[object Object],[object Object],[object Object],XOOPSv2 rc1  ~  XOOPS 2.0.2    Smarty 2.3.0 XOOPS 2.0.3  ~  XOOPS 2.0.7.3    Smarty 2.5.0 XOOPS 2.0.9  ~  XOOPS 2.0.13a-JP    Smarty 2.6.5-dev XOOPS Cube 2.1 alpha1    Smarty 2.6.12 最新版に更新
定数の変数アサイン ,[object Object],[object Object],[object Object],[object Object],例  :  <{$smarty.const.XOOPS_URL}>  は  <{$xoops_url}>   と同じ (共に使用可能) 言語定数のアサインを簡略化 言語ファイル (言語定数の定義) define(‘_MD_USER_LANG_AVATAR’, “ アバター” ); 実行ファイル (テンプレート変数のアサイン) $xoopsTpl->assign(“lang_avatar”, _MD_USER_LANG_AVATAR); テンプレート (変数の記述) <{$lang_avatar}> ~今まで一般的だった記述方法~ 言語ファイル (言語定数の定義) define(‘_MD_USER_LANG_AVATAR’, “ アバター” ); テンプレート (変数の記述) <{$smarty.const. _MD_USER_LANG_AVATAR}> ~ XOOPS Cube  で多用される記述方法~
オブジェクトの変数アサイン ,[object Object],[object Object],[object Object],テンプレート記述例  : <{$thisUser->getVar(‘uid’)}> Object をそのままアサイン可能 // XOOPS Object  でデータ取得 $handler =& xoops_gethandler('user'); // Objeact  から配列に置換え   (面倒な処理) (^^ ゞ //  配列をテンプレート変数にアサイン $xoopsTpl->assign(“thisUser”, $thisUser); // XOOPS Object  でデータ取得 $handler =& xoops_gethandler('user'); $this->mObject =& $handler->get($uid); // Object  を直接 テンプレート変数にアサイン $render->setAttribute(&quot;thisUser&quot;, $this->mObject); ~ XOOPS Cube 2.1  で可能になった~
テーマ・テンプレートでサニタイズ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<{ $object-> get (‘xxxx’) }>       生値 <{ $object-> get (‘xxxx’) |  escape  }>  サニタイズ済みの値 変換前 変換後 ------- -------- <      &lt; >      &gt; “      &quot; ‘      ‘ &      &amp;
Xcube 独自 Smarty プラグイン追加 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],では、簡単に主な関数の説明を・・・
Xoops_input , xoops_textarea ,[object Object],[object Object],使用例:  <{ xoops_input  type=“text” value=“$object->get(‘name’)” }> type = “text” などフォームのタイプを指定する  value =  サニタイズが自動的に行なわれる。 その他、 name , class , size , maxlength , id , default  などが指定できる。 <input type=“text” value=“<{$object->get(‘name’)|escape}>” />  と同じ。 ,[object Object],[object Object],使用例:  <{ xoops_textarea  name=“name” value=“$object->get(‘name’)” }> value =  サニタイズが自動的に行なわれる。 その他、 name , class , cols , rows , id , readonly  などが指定できる。 <textarea name=“name”><{$object->get(‘name’)|escape}></textarea>  と同じ。 追記 : key  を追加 (3/15) <{assign name=“id” value=$obj->get(‘id’)}> <input type=“checkbox” name=“hoge[<{$id}>]”> <{xoops_input type=“checkbox” name=“hoge”  key = $obj->get(‘id’) }>
Xoops_dhtmltarea , xoops_token ,[object Object],[object Object],[object Object],[object Object],<{ xoops_dhtmltarea  name=description value=$actionForm->get('description')}> <{ xoops_token  form=$actionForm}> <input type=“hidden” name=“module.user.GroupEditForm.TOKEN” value=“..token 値 ..&quot; />
Xoops_pagenavi ,[object Object],[object Object],< div  class = &quot;pagenavi&quot; >< { xoops_pagenavi  pagenavi=$pageNavi}> </ div > pagenavi=$pageNav   は、 XCube_PagaNavigator.class.php   を前提にしている。 <{  xoops_pagenavi  total=“20” current=“3” url=&quot;list.php?start=“ }> という、記述も可能。
デバグ用モディファイ ,[object Object],[object Object],[object Object],[object Object],[object Object],<{ $userObject | debug_print_var }> デバグ出力例:
【通常表示画面】 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
【管理画面】 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ホールバック (Fallback) ,[object Object],[object Object],[object Object],触っちゃいけない、禁断のディレクトリ~ ,[object Object],/modules/ (module_dir) /admin/templates/ /   * .html /icons/  * .gif  ( モジュール専用の アイコン等 ) /modules/base/admin/theme/ / admin_theme.html   ( 管理画面用テ-マ ) /style.css     ( 管理画面テーマ用 CSS) /icons/  * .gif    ( 管理画面用共通アイコン ) /design/  * .gif   ( テーマ専用画像 ) ,[object Object]
オーバーライド (Override) ,[object Object],[object Object],[object Object],[object Object],変更したいテーマ・テンプレートだけを、これらのディレクトリに入れておけば、 デフォルトを上書きした状態になり、 デザインの変更が容易になる。 上書き専用! 失敗したら、消そう! 元に戻るよ~ /themes/admin/ / admin_theme.html  (override  管理画面用テ-マ ) /style.css  (override  管理画面テーマ用 CSS) /icons/  * .gif  (override  理画面用共通アイコン ) /design/  * .gif  (override  テーマ専用画像 ) ,[object Object],/themes/admin/modules/ (module_dir) / /  * .html  (override  管理画面テンプレート ) ,[object Object]
オーバーライドの問題点 ,[object Object],これらを解決する為、管理画面専用の Smarty モディファイを実装。 管理画面のデザインを変更しよう! そうだ!オーバーライド機能を使おう!! だけど、まてよ??ハテ?? info.gif  だけを変更したいのに、 admin_theme.html  も書き換えなければならない・・ ? style.css  を書き換えた時、 背景画像のパスも書き換えなければならない・・ ? 困ったもんだぁ~~。やっとれんがやぁ~! (fallback)/admin_theme.html  で、 (fallback)/icons/info.gif  を表示する時 通常は、こう記述するが・・・・・。 例  : <img src=“<{$smarty.const._XOOPS_URL}>/modules/base/admin/theme/icons/info.gif” />
モディファイ  theme ,[object Object],記述方法:  <{ “icons/info.gif” | theme }> 優先順位 1.   /themes/admin/modules/ (module_dir) /icons/ info.gif オーバーライド内の各モジュールの icons ディレクトリ 2.   /themes/admin/icons/ info.gif オーバーライド内の共通 icons ディレクトリ 3.   /modules/ (module_dir) /admin/template/icons/ info.gif 各モジュールのテンプレート内の icons ディレクトリ 4.   /modules/base/admin/theme/icons/ info.gif ホールバックディレクトリ 管理画面だけで有効なモディファイである 優先順位に従ってファイルの有無をチェックし、 最初に見つかったファイルを表示する。
モディファイ  stylesheet ,[object Object],[object Object],記述方法:  <{stylesheet file=style.css}> 優先順位 1   /themes/admin/ style.css オーバーライド内の style.css 2   /modules/base/admin/theme/ style.css ホールバックディレクトリ内の style.css 優先順位に従って CSS ファイルの有無をチェックし、 最初に見つかった CSS ファイルを使用する。 ↓ /modules/base/admin/css.php  より実行 ↓ CSS の背景画像などの相対パスの問題を解決。 特に、相対パスの関係を意識する必要が無くなる 管理画面だけで有効なモディファイである
StyleSheet について ,[object Object],[object Object],[object Object],[object Object],こんな記述が出来るのは、管理画面の style.css だけです。 ←  ・・・・・・・・・・・・・・・・・・・・  /modules/base/admin/css.php ,[object Object],h2  { color :  #666666 ; background :  url( <{“icons/h2bg.gif&quot;|theme}> ) repeat-x ; padding-left :   5px ; }
管理画面 テンプレート指針 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
見出し用 HTML タグ ,[object Object],[object Object],[object Object],h1  テーマ用 (予約タグ) h2  テーマ用 (主に、現在のモジュール名の表示用に使用) h3  テンプレート用 (管理画面名の表示用に使用する) h4  テンプレート用 (管理画面内の見出し用) h5  テンプレート用 (管理画面内の見出し用)
CSS クラス ,[object Object],.outer       table タグに使用   th         table 内の見出し用 .head       table 内のヘッダー用 .odd   .even   table 内の各 td tr  に使用 .foot        table 内のフッター用 .adminnavi  各管理画面上部のナビ(バンくずナビ)に使用 .topnavi     リスト表示画面上部の新規リンク等に使用 .tips        管理画面の簡単な説明等の表示に使用 .pagenavi    リスト表示画面等のページナビ箇所に使用 ,[object Object]
基本フォーマット  ( ヘッダー ) ,[object Object],<div  class = &quot;adminnavi&quot; > <a   href = “” > モジュール名 </a> &raquo;&raquo;   <a   href = “” > 管理画面名 </a>   <{*  &raquo;&raquo;  .... 必要に応じて ........ *}> </div> <h3> 管理画面名 </h3> <div  class = &quot;tips&quot; > 必要に応じて、簡単なアドバイス等の表示に使用可能  </div>
基本フォーマット  ( リスト ) ,[object Object],<div  class = “toptab” > [ <a  href = “” > 新規作成 </a> ] </div> <table  class = &quot;outer&quot; > <tr>   <th>  xxxxxx  </th>   :    </tr> <{foreach item=obj from=$objects}>  <tr  class = &quot;<{cycle values='odd,even'}>&quot; > <td>  <{$obj->getVar(‘xxxx’)}>   </td> :    </tr> <{/foreach}> </table> <div  class = &quot;pagenavi&quot; > <{xoops_pagenavi pagenavi=$pageNavi}> </div>
基本フォーマット  ( 編集・新規追加 ) ,[object Object],<form xxxxxxxxxxxx > <table> <tr> <th  colspan = &quot;2&quot; > 管理画面名 </th> </tr> <tr> <td  class = &quot;head&quot; >  xxxxxx  </td> <td  class =“ <{cycle values=“odd,even”}>” > xxxxxx </td> </tr> : <tr> <td  colspan = &quot;2&quot;   class = &quot;foot&quot; >  xxxxxx  </td> </tr> </table> </form>
管理画面ヘルプ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ヘルプ専用モディファイ  helpurl ,[object Object],[object Object],<a  href = “<{ ‘xxxx.html’ | helpurl }>”  > 次のページ </a> ( /modules/hogehoge/language/japanese/help.html ) Hogehoge モジュールヘルプ ・・・・・・・・・・・ ・・・・・・・・・・・・ <a  href = “<{ ‘help2.html’ | helpurl }>”  > 続きは「ヘルプ2」 </a> ( /modules/hogehoge/language/japanese/help2.html ) Hogehoge モジュールヘルプ2 ・・・・・・・・・・・ ・・・・・・・・・・・・ <a  href = “<{ ‘help.html’ | helpurl }>”  > 「 ヘルプ1」に戻る </a>
ヘルプ記述ルール ,[object Object],[object Object],各ヘルプファイルは、 <ul><li> などの簡素な形式で 記述するのが望ましい。 ( /modules/base/admin/templates/help.html ) < div  class = &quot;adminnavi&quot; > < a  href = “ ・・・・” > モジュール名 </ a >  &raquo;&raquo;   ヘルプ </ div > < h3 > ヘルプ  < a  href = “ ・・・・” > (  モジュール名  ) </ a ></ h3 > < div  class = &quot;help&quot; >< {$contents}> </ div > ( /modules/hogehoge/language/japanese/help.html ) < h4 > XOOPS 2.0.x  操作移行リスト </ h4 > < ul > < li >< a  href = &quot; < {'xoops2.html'|helpurl}>&quot;> こちら </ a > をご覧ください </ li > </ ul >
おしまい ご参考にしていただければ幸いです 御清聴ありがとうございました

More Related Content

What's hot

CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
 
Word press34
Word press34Word press34
Word press34
BREN
 
ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回
Hitsuji
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回
Hitsuji
 
ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回
Hitsuji
 

What's hot (17)

コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレートコードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレート
 
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
 
HTML仕様書を読んでみよう
HTML仕様書を読んでみようHTML仕様書を読んでみよう
HTML仕様書を読んでみよう
 
Word press34
Word press34Word press34
Word press34
 
Boost jp9 program_options
Boost jp9 program_optionsBoost jp9 program_options
Boost jp9 program_options
 
2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoops2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoops
 
ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回
 
HTML5
HTML5HTML5
HTML5
 
eZ Publishのextension開発チュートリアル
eZ Publishのextension開発チュートリアルeZ Publishのextension開発チュートリアル
eZ Publishのextension開発チュートリアル
 
簡単なTYPO3エクステンションの作成
簡単なTYPO3エクステンションの作成簡単なTYPO3エクステンションの作成
簡単なTYPO3エクステンションの作成
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
 
これからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしようこれからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしよう
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回
 
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4
 
ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回
 
2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template
 
ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回
 

Viewers also liked

2012 04 14_foss4_g_nagoya_osm
2012 04 14_foss4_g_nagoya_osm2012 04 14_foss4_g_nagoya_osm
2012 04 14_foss4_g_nagoya_osm
Tom Hayakawa
 

Viewers also liked (8)

2010 09 17_floss_osc2010_tokyofall
2010 09 17_floss_osc2010_tokyofall2010 09 17_floss_osc2010_tokyofall
2010 09 17_floss_osc2010_tokyofall
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig
 
2012 04 14_foss4_g_nagoya_osm
2012 04 14_foss4_g_nagoya_osm2012 04 14_foss4_g_nagoya_osm
2012 04 14_foss4_g_nagoya_osm
 
2011 11 19_osm_mikawa_sankan
2011 11 19_osm_mikawa_sankan2011 11 19_osm_mikawa_sankan
2011 11 19_osm_mikawa_sankan
 
2011 08 09_open_streetmap_general
2011 08 09_open_streetmap_general2011 08 09_open_streetmap_general
2011 08 09_open_streetmap_general
 
2009 02 21_warp_groupware_for_osc
2009 02 21_warp_groupware_for_osc2009 02 21_warp_groupware_for_osc
2009 02 21_warp_groupware_for_osc
 
2007 03 17_osc2007spring_01
2007 03 17_osc2007spring_012007 03 17_osc2007spring_01
2007 03 17_osc2007spring_01
 
2012 08 11_josm-hamamatsu
2012 08 11_josm-hamamatsu2012 08 11_josm-hamamatsu
2012 08 11_josm-hamamatsu
 

Similar to 2006 03 18_osc2006_x_cube_template

101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya
tamotsu toyoda
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15
Hideki Hashizume
 
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
BREN
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
ericsagnes
 

Similar to 2006 03 18_osc2006_x_cube_template (20)

2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizing2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizing
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
Sphinx HTML Theme Hacks
Sphinx HTML Theme HacksSphinx HTML Theme Hacks
Sphinx HTML Theme Hacks
 
101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya
 
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
 
GDG Women DevfestW
GDG Women DevfestWGDG Women DevfestW
GDG Women DevfestW
 
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6 「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
 
2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoops2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoops
 
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
 
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
 
WordPressで投稿記事情報の取得方法
WordPressで投稿記事情報の取得方法WordPressで投稿記事情報の取得方法
WordPressで投稿記事情報の取得方法
 
DW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンスDW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンス
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
 
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
㉘HTML5+CSS3でアニメーション!
㉘HTML5+CSS3でアニメーション!㉘HTML5+CSS3でアニメーション!
㉘HTML5+CSS3でアニメーション!
 

More from Tom Hayakawa

2012 09 06_sot_m_osm
2012 09 06_sot_m_osm2012 09 06_sot_m_osm
2012 09 06_sot_m_osm
Tom Hayakawa
 
2012 05 12_osc2012_nagoya_osm
2012 05 12_osc2012_nagoya_osm2012 05 12_osc2012_nagoya_osm
2012 05 12_osc2012_nagoya_osm
Tom Hayakawa
 

More from Tom Hayakawa (20)

2014 07 23 豊橋IT勉強会
2014 07 23 豊橋IT勉強会2014 07 23 豊橋IT勉強会
2014 07 23 豊橋IT勉強会
 
2014 07 05 OSC2014Nagoya
2014 07 05 OSC2014Nagoya2014 07 05 OSC2014Nagoya
2014 07 05 OSC2014Nagoya
 
2013/12/07 浜松勉強会_osm-edit
2013/12/07 浜松勉強会_osm-edit 2013/12/07 浜松勉強会_osm-edit
2013/12/07 浜松勉強会_osm-edit
 
2013 12 02_osm 浜松セミナー
2013 12 02_osm 浜松セミナー2013 12 02_osm 浜松セミナー
2013 12 02_osm 浜松セミナー
 
JOSM資料
JOSM資料JOSM資料
JOSM資料
 
OpenStreetMap資料
OpenStreetMap資料OpenStreetMap資料
OpenStreetMap資料
 
2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osm2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osm
 
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
 
2012 09 06_sot_m_osm
2012 09 06_sot_m_osm2012 09 06_sot_m_osm
2012 09 06_sot_m_osm
 
2012 09 06_sot_m_osm_tokai
2012 09 06_sot_m_osm_tokai2012 09 06_sot_m_osm_tokai
2012 09 06_sot_m_osm_tokai
 
2012 08 11_osm_hamamatsu
2012 08 11_osm_hamamatsu2012 08 11_osm_hamamatsu
2012 08 11_osm_hamamatsu
 
2012 07 28_osm_ws3
2012 07 28_osm_ws32012 07 28_osm_ws3
2012 07 28_osm_ws3
 
2012 07 27_osm_project10
2012 07 27_osm_project102012 07 27_osm_project10
2012 07 27_osm_project10
 
2012 07 27_geo_mediasumit_lt
2012 07 27_geo_mediasumit_lt2012 07 27_geo_mediasumit_lt
2012 07 27_geo_mediasumit_lt
 
2012 07 14_osm-ws_2
2012 07 14_osm-ws_22012 07 14_osm-ws_2
2012 07 14_osm-ws_2
 
2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a
 
2012 05 12_osc2012_nagoya_osm
2012 05 12_osc2012_nagoya_osm2012 05 12_osc2012_nagoya_osm
2012 05 12_osc2012_nagoya_osm
 
2011 06 18_osmfj_osm-tokai
2011 06 18_osmfj_osm-tokai2011 06 18_osmfj_osm-tokai
2011 06 18_osmfj_osm-tokai
 
2011 06 18_open_streetmap_neta_no1
2011 06 18_open_streetmap_neta_no12011 06 18_open_streetmap_neta_no1
2011 06 18_open_streetmap_neta_no1
 
2011 06 18_open_streetmap_iphone4
2011 06 18_open_streetmap_iphone42011 06 18_open_streetmap_iphone4
2011 06 18_open_streetmap_iphone4
 

Recently uploaded

Recently uploaded (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

2006 03 18_osc2006_x_cube_template

Editor's Notes

  1. よいこのみなさんであれば、御理解いただけると思いますが・・・・。
  2. XOOPS Cube 2.1alpha1 の時点における、テーマ・テンプレート関連の仕様などについて説明いたします。
  3. Smarty バージョンは、 XOOPS2.0.9 ( 2004.12.26 )で、 2.6.5-dev に更新されて以来、 XOOPS 2.0.13a-JP まで更新されていませんでした。 それで、 XOOPS Cube 2.1 alpha1 では、 2.6.12 にバージョンアップされています。 Smarty の主な変更点は、バグフィックスなどで、目立った追加機能や拡張などは無いようです。
  4. Smarty 変数への定数のアサインは、 XOOPS 2.0.3 ( Smarty 2.5.0 )あたりから可能になっていたようだが、 XOOPS 2.0.3 以前のバージョンとの互換性などの問題から、最近まであまり使われてませんでした。 今回、 Legacy 関連モジュールでは、これらを多用しています。 メリットとして、プログラム内での記述を簡略化出来るので、 実行ファイルのコーディングの省力化とか、効率良くメンテナンス出来る事などが期待出来ます。
  5. 従来の XOOPS2.0 系では、テンプレートを DB に登録する際にエラーチェックの為に毎回コンパイルしおり、 オブジェクトを変数アサインしてると、必ずエラーになった。 それで XC2.1 は、インストール時に DB にテンプレートを保存するが、コンパイルはしなくした。 (その為、テンプレートのプレビュー機能も働きません) XC2.1 では実際にテンプレートが使われるまで、コンパイルを行わないので、オブジェクトをアサインしても使えるようになった。
  6. 今までプログラム上でサニタイズしていたものを、 テンプレートでサニタイズを行なうように統一した。 プログラム上では、特に必要なければ変数をサニタイズする必要も無く、 生の値を変数として与え、テンプレートでサニタイズする。 従来、多くのモジュールは、プログラム側で行っていたが、それをテンプレートで行うようにした。 (処理分担の正常化。) 以前の XOOPS テンプレートと比較すると、テンプレートが複雑化してるようにも思えるが、 本来の処理分担のあり方と考えてます。また、色々な意味で拡張性が高まったとも思います。
  7. Xcube 2.1 alpha1 では、これらの独自プラグインを追加している。
  8. &lt;{assign name=id value=$obj-&gt;get(id’)}&gt; &lt;input name=“hoge[&lt;{$id}&gt;]”&gt;
  9. 時々、タイムアウトする時があるので注意。
  10. このへんで、ちょっと休憩でもするべぇ~か? ファイルベースのテンプレートシステム ・管理画面という特殊性 ・変更頻度は少ないと思われる
  11. 実際には、こんな画像の呼び出しはしてません。
  12. 通常、CSSでは、 Smarty 変数は使えません。 ところが、上記の style モデファイの様に、CSSにおいても、オーバーライド機能を使った場合に、画像などの相対パスを変わりなく実行する必要があります。 それを実現する為に、管理画面の style.css は、一旦、テンプレートとして扱い、 /modules/base/admin/css.php の位置から表示させています。 ですので、表面上は、CSSファイルでありながら、実質はテンプレートとして扱われてますので、 Smarty 変数を使用する事が可能です。
  13. ● 管理画面テンプレート  HTML&amp;CSS のコーディング指針 モジュール開発者が、管理画面のテンプレートを作成するに当たって、 それぞれ好き勝手に記述しては、管理画面全体としての統一性や操作性が失われてしまいます。 その為、ある程度、標準となる記述方法を提示する事で解決できないかと考えます。 ● HTML タグ・ CSS の記述ルール XOOPS のテーマ・テンプレート・システムの性格上、各テーマ・テンプレートファイルは別々の開発者が作成する事が、ほとんどです。 ですので、ある程度の記述指針が無いと、予期せぬ表示の乱れや、トラブルが発生する可能性がありえます。 また、重複が好ましくないタグなどの使用指針も必要になります。 その為に、テーマ・テンプレート作成時の簡単なコーディング指針を示しておきます。 CSSにおいては、基本的に class だけを使用します。 id は、その表示ページ内において、ユニークな存在でなければなりませんので、 XOOPS のテーマ・テンプレート・システムのように別々の開発者が作成する場合は、特に注意が必要です。 ですので、基本的に id に関する指針は、示しません。 もし、テーマ・テンプレート・システム内で、 id を使われたい場合は、テーマ内で使用される事を推奨します。
  14. 見出しタグについては、 XOOPS のテーマ・テンプレートの性格上、 テーマとテンプレートで住み分けするのが良いと考えています。
  15. 本日は、どうもありがとうございました。