はじめまして、toycheeといいます。(日本語ですみません)
D3モジュール化しにくい(正確には技量がない)システムを複製対応XOOPSモジュールにしたいのですが、
altsys のテンプレート管理でD3モジュール以外の方法で複製モジュールを作成したときにもオリジナルファイルを表示できるように、
tpls_functions.phpの
function tplsadmin_get_basefilepath()の
} else if( ! file_exists( $basefilepath ) && file_exists( XOOPS_ROOT_PATH.'/modules/'.$dirname.'/mytrustdirname.php' ) ) {
// D3 module base
include XOOPS_ROOT_PATH.'/modules/'.$dirname.'/mytrustdirname.php' ;
if( ! empty( $mytrustdirname ) ) {
$mid_path = $mytrustdirname == 'altsys' ? '/libs/' : '/modules/' ;
$path = XOOPS_TRUST_PATH.$mid_path.$mytrustdirname.'/templates/'.($type=='block'?'blocks/':'').substr( $tpl_file , strlen( $dirname ) + 1 ) ;
}
}
の部分にもうひとつの選択肢を加え
} else if( ! file_exists( $basefilepath ) ) {
if (file_exists( XOOPS_ROOT_PATH.'/modules/'.$dirname.'/mytrustdirname.php' ) ) {
// D3 module base
include XOOPS_ROOT_PATH.'/modules/'.$dirname.'/mytrustdirname.php' ;
if( ! empty( $mytrustdirname ) ) {
$mid_path = $mytrustdirname == 'altsys' ? '/libs/' : '/modules/' ;
$path = XOOPS_TRUST_PATH.$mid_path.$mytrustdirname.'/templates/'.($type=='block'?'blocks/':'').substr( $tpl_file , strlen( $dirname ) + 1 ) ;
}
} else {
// for other duplication module
$path = XOOPS_ROOT_PATH.'/modules/'.$dirname.'/templates/'.($type=='block'?'blocks/':'').substr( $tpl_file , strlen( $dirname ) + 1 ) ;
}
}
とかにしていただけると、ものすごく助かります。
勝手なお願いですが、特に支障がなければ、宜しくお願いいたします。
Quote:
toychee wrotes:
はじめまして、toycheeといいます。(日本語ですみません)
こんにちは〜
でも、はじめまして、じゃないと思いますよ
Quote:
altsys のテンプレート管理でD3モジュール以外の方法で複製モジュールを作成したときにもオリジナルファイルを表示できるように、
(snip)
とかにしていただけると、ものすごく助かります。
それって、不思議な仕様になっちゃいませんか?
だって、元々は、
XOOPS_ROOT_PATH/modules/(dirname)/templates/(dirname)_mytemplate.html
というテンプレート命名規則なのに、
XOOPS_ROOT_PATH/modules/(dirname)/templates/mytemplate.html
をテンプレートとする、という話になっちゃいます。
これを複製したら、
XOOPS_ROOT_PATH/modules/(dirname2)/templates/mytemplate.html
となるわけですが、それって区別つきませんよ。
テンプレートはテンプレート名だけで区別しますから。
私も散々そのあたりは苦労して、その結果としてD3というやり方ににたどり着いてます。
複製可能モジュールを作るなら、最初からD3で作るのが一番簡単です。
wrapsあたりの簡単なモジュールをベースに組み立てることをお勧めします。
ありがとうございます。
Quote:
XUGJのほうではちょこまかとお世話になっていますが(殆ど、くれくれ君で
)、多分このサイトでは初めてです(ユーザ登録してから投稿したので・・・)
Quote:
確かに不思議な仕様です。
最初はD3モジュール化してみたのですが、CSSとかimageとか実体をhtml/modules側にもってかないと、うまく動かないファイルやrequire XOOPS_TRUST_PATHしないといけないhtml/modules側のファイルがあまりにも多く、かといってベースのシステムにはあまり手を加えたくないし、いっそのことTRUST_PATHのないD3モジュール?にしてみたら、とかいう妙な考えを起こしてしまった訳です。その為、テンプレート周りの処理はTRUST_PATH側のファイルではなくモジュール側のmytemp.htmlからDBテンプレート(dirname)_mytemp.htmlを生成しています。
その結果、altsysでテンプレートを見たときDBテンプレートの(dirname)_mytemp.htmlしか表示されず、なんでかなと探ってみたらTRUST_PATH側しかみてなかったんで、ここ直せばいいのかなと、浅はかな考えにいたった次第です。
Quote:
私も散々そのあたりは苦労して、その結果としてD3というやり方ににたどり着いてます。
複製可能モジュールを作るなら、最初からD3で作るのが一番簡単です。
回りまわって結局、車輪の再発明、D3に行き着くのかもしれませんが、D3のありがたみを知るためにも、もうすこし、散々そのあたり苦労してみます。
ありがとうございました。
Quote:
最初はD3モジュール化してみたのですが、CSSとかimageとか実体をhtml/modules側にもってかないと、うまく動かないファイルやrequire XOOPS_TRUST_PATHしないといけないhtml/modules側のファイルがあまりにも多く、
imageやCSSはそのままでOKでしょう。
両方を行き来するのが面倒、ってことなら、シンボリックリンクを使うのも手です。
D3モジュールを作って1年以上経ちますけど、XOOPS_TRUST_PATHをrequireしなきゃいけないファイルって、全然増えません。
唯一、preloadだけが嫌らしい部分ですが。