PEAK XOOPS - Altsys D3モジュール以外の複製モジュールにも愛の手を in englishin japanese

Altsys D3モジュール以外の複製モジュールにも愛の手を

  • You cannot open a new topic into this forum
  • Guests cannot post into this forum
Previous post - Next post | Parent - Children.1 | Posted on 2007/10/25 9:36
toychee  二等兵   Posts: 4
はじめまして、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 ) ;
		}
	}
とかにしていただけると、ものすごく助かります。

勝手なお願いですが、特に支障がなければ、宜しくお願いいたします。
Votes:6 Average:5.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/10/26 4:26
GIJOE  先任軍曹   Posts: 4110
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あたりの簡単なモジュールをベースに組み立てることをお勧めします。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/10/26 10:21
toychee  二等兵   Posts: 4
ありがとうございます。
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のありがたみを知るためにも、もうすこし、散々そのあたり苦労してみます。

ありがとうございました。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2007/10/30 13:08
GIJOE  先任軍曹   Posts: 4110
Quote:

最初はD3モジュール化してみたのですが、CSSとかimageとか実体をhtml/modules側にもってかないと、うまく動かないファイルやrequire XOOPS_TRUST_PATHしないといけないhtml/modules側のファイルがあまりにも多く、
imageやCSSはそのままでOKでしょう。
両方を行き来するのが面倒、ってことなら、シンボリックリンクを使うのも手です。

D3モジュールを作って1年以上経ちますけど、XOOPS_TRUST_PATHをrequireしなきゃいけないファイルって、全然増えません。
唯一、preloadだけが嫌らしい部分ですが。
Votes:2 Average:5.00

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!