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

コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレートコードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレートAkira Maruyama
 
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩Chieko Aihara
 
HTML仕様書を読んでみよう
HTML仕様書を読んでみようHTML仕様書を読んでみよう
HTML仕様書を読んでみようSaeki Tominaga
 
Word press34
Word press34Word press34
Word press34BREN
 
Boost jp9 program_options
Boost jp9 program_optionsBoost jp9 program_options
Boost jp9 program_optionsnyaocat
 
2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoops2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoopsTom Hayakawa
 
ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回Hitsuji
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Hajime Fujimoto
 
これからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしようこれからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしようHishikawa Takuro
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回Hitsuji
 
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 arisu yano
 
ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回Hitsuji
 
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_templateTom Hayakawa
 
ゼロからつくる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

2010 09 17_floss_osc2010_tokyofall
2010 09 17_floss_osc2010_tokyofall2010 09 17_floss_osc2010_tokyofall
2010 09 17_floss_osc2010_tokyofallTom Hayakawa
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinigTom Hayakawa
 
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_osmTom Hayakawa
 
2011 11 19_osm_mikawa_sankan
2011 11 19_osm_mikawa_sankan2011 11 19_osm_mikawa_sankan
2011 11 19_osm_mikawa_sankanTom Hayakawa
 
2011 08 09_open_streetmap_general
2011 08 09_open_streetmap_general2011 08 09_open_streetmap_general
2011 08 09_open_streetmap_generalTom Hayakawa
 
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_oscTom Hayakawa
 
2007 03 17_osc2007spring_01
2007 03 17_osc2007spring_012007 03 17_osc2007spring_01
2007 03 17_osc2007spring_01Tom Hayakawa
 
2012 08 11_josm-hamamatsu
2012 08 11_josm-hamamatsu2012 08 11_josm-hamamatsu
2012 08 11_josm-hamamatsuTom 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

2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizing2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizingTom Hayakawa
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
Sphinx HTML Theme Hacks
Sphinx HTML Theme HacksSphinx HTML Theme Hacks
Sphinx HTML Theme HacksShoji KUMAGAI
 
101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoyatamotsu toyoda
 
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012Yasuhito Yabe
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1Nishida Kansuke
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011Shuyo Nakatani
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Hideki Hashizume
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ知己 久保
 
GDG Women DevfestW
GDG Women DevfestWGDG Women DevfestW
GDG Women DevfestWTomoko Sato
 
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6 「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6 Garyuten
 
2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoops2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoopsTom Hayakawa
 
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
 
WordPressで投稿記事情報の取得方法
WordPressで投稿記事情報の取得方法WordPressで投稿記事情報の取得方法
WordPressで投稿記事情報の取得方法regret raym
 
DW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンスDW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンスAkira Maruyama
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップSwapSkills
 
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4ichikaway
 
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
 
㉘HTML5+CSS3でアニメーション!
㉘HTML5+CSS3でアニメーション!㉘HTML5+CSS3でアニメーション!
㉘HTML5+CSS3でアニメーション!Nishida Kansuke
 

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

2014 07 23 豊橋IT勉強会
2014 07 23 豊橋IT勉強会2014 07 23 豊橋IT勉強会
2014 07 23 豊橋IT勉強会Tom Hayakawa
 
2014 07 05 OSC2014Nagoya
2014 07 05 OSC2014Nagoya2014 07 05 OSC2014Nagoya
2014 07 05 OSC2014NagoyaTom Hayakawa
 
2013/12/07 浜松勉強会_osm-edit
2013/12/07 浜松勉強会_osm-edit 2013/12/07 浜松勉強会_osm-edit
2013/12/07 浜松勉強会_osm-edit Tom Hayakawa
 
2013 12 02_osm 浜松セミナー
2013 12 02_osm 浜松セミナー2013 12 02_osm 浜松セミナー
2013 12 02_osm 浜松セミナーTom Hayakawa
 
OpenStreetMap資料
OpenStreetMap資料OpenStreetMap資料
OpenStreetMap資料Tom Hayakawa
 
2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osm2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osmTom Hayakawa
 
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_aTom Hayakawa
 
2012 09 06_sot_m_osm
2012 09 06_sot_m_osm2012 09 06_sot_m_osm
2012 09 06_sot_m_osmTom Hayakawa
 
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_tokaiTom Hayakawa
 
2012 08 11_osm_hamamatsu
2012 08 11_osm_hamamatsu2012 08 11_osm_hamamatsu
2012 08 11_osm_hamamatsuTom Hayakawa
 
2012 07 28_osm_ws3
2012 07 28_osm_ws32012 07 28_osm_ws3
2012 07 28_osm_ws3Tom Hayakawa
 
2012 07 27_osm_project10
2012 07 27_osm_project102012 07 27_osm_project10
2012 07 27_osm_project10Tom Hayakawa
 
2012 07 27_geo_mediasumit_lt
2012 07 27_geo_mediasumit_lt2012 07 27_geo_mediasumit_lt
2012 07 27_geo_mediasumit_ltTom Hayakawa
 
2012 07 14_osm-ws_2
2012 07 14_osm-ws_22012 07 14_osm-ws_2
2012 07 14_osm-ws_2Tom Hayakawa
 
2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1aTom Hayakawa
 
2012 05 12_osc2012_nagoya_osm
2012 05 12_osc2012_nagoya_osm2012 05 12_osc2012_nagoya_osm
2012 05 12_osc2012_nagoya_osmTom Hayakawa
 
2011 06 18_osmfj_osm-tokai
2011 06 18_osmfj_osm-tokai2011 06 18_osmfj_osm-tokai
2011 06 18_osmfj_osm-tokaiTom Hayakawa
 
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_no1Tom Hayakawa
 
2011 06 18_open_streetmap_iphone4
2011 06 18_open_streetmap_iphone42011 06 18_open_streetmap_iphone4
2011 06 18_open_streetmap_iphone4Tom 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

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

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. 本日は、どうもありがとうございました。