2018年8月28日火曜日

とんくん版 Skinny独自拡張

チョットと使う上で使いにくかったんです(^ ^;)
変更1:テンプレート変数の代わりに文字列を出力
           理由:pluginタグで第二引数以降に固定値を渡したい時に不便
           理由:テンプレート変数同士を結合したい
           例)<%plugin('abc',data,'%')%>
                 プラグイン abc へ テンプレート変数dataと'%'文字を渡す。
           例)<%plugin('abc',''.data.'%')%>
                 プラグイン abc へ テンプレート変数dataの後に'%'文字付けて渡す。
                (引数全体が'で囲まれていると文字列結合される。)
変更2:echoタグでテンプレート変数が未定義でも無視する。(Smartyは出来るのにー)
    <%@echo(data)%>
            (テンプレート変数が未定義の場合無視する。)

以上、2点の修正が入ってます。


2018年8月18日土曜日

【cakephp2】 ビューが残念(Skinny化)

あれなんですよ。
最初にビューワーのソース見た時、phpコーディングの処理べた書きじゃん!
一気にやる気が失せる(; ;)
ウォーテンプレートエンジンが使いたい。
でもSmartyは大規模で組み込むの大変そう。(でもSmartyしかしんない ; ; )
で変わりはないか・・・・で、見つけました。
Skinny(著作権はKuasuki 氏に有りますが自分が手を入れたので質問は自分へお願いいたします。0.3.3がベースです) http://skinny.sx68.net/index.html
で取り敢えず「app/Vendor」に入れて呼び出す・・・・
グローバル変数($Skinny)が見つからずエラー・・・ガーン!!
まあ、ソースファイル1本なんで中を調らべて手を入れる。
でも出ない。
「ob_*」も良くないみたい・・・・・

修正分他 https://drive.google.com/open?id=1jtNRnAs6MCgVBD5RpqHrcto3VqZtHHgQ

使い方はヘルパーとビューレンダーの2パターン

<<<ヘルパーとして>>>:

// ヘルパーの登録(ビューテンプレートへ記述)

$helpers=array('Skinny');

<?php
$script=$this->Skinny->html(); // テンプレートファイルは自動的に ビューの有る場所の「アクション名.ski」を自動的に読み込む


$skLoopCount=$this->Skinny->skLoopCount; // テンプレート内で定義されている変数の数(決まり事)

// テンプレートが受け取る変数定義
$skOutput=array_merge(

    $this->viewVars,             // コントロールで設定された値をテンプレートへ送る
   [その他のパラメータ]
);

// テンプレート出力
eval("?>" . $script);

?>

<<<ビュークラスを差し替え>>>

(コントローラーへ記述)

App::uses("SkinnyView", "View");

$viewClass = 'SkinnyView'; // ビューを指定

$view->set("SkinnyFile","[テンプレートファイル名]"); // $extは無視される。

echo $view->render();






2008年5月15日木曜日

VB6 アドイン TortoiseSVN呼び出し

今更VB6のアドインです。
フォームにロックする度にVBのIDE再起動しないといけないので思わず作成(^^;)

2008年4月21日月曜日

tclメモ:oratcl4系のorafetchの仕様変更

3系とはだいぶ違うので個人的メモ
orasql $ora "SELECT PARTS_CLASS, PARTS_CODE, NAME FROM PARTS
WHERE NAME LIKE '%テイコウ%'"
if {$oramsg(rc) != 0} {
tk_messageBox -message "Ootto! $oramsg(rc) : $oramsg(errortxt)"
} else {
set result {}
orafetch $ora { lappend result "@1-@2\t@3" }
tk_messageBox -title "Result" -message [join $result "\n"]
}
で処理できていたのか・・・・・
orasql $ora "SELECT PARTS_CLASS, PARTS_CODE, NAME FROM PARTS
WHERE NAME LIKE '%テイコウ%'"
if {$oramsg(rc) != 0} {
tk_messageBox -message "Ootto! $oramsg(rc) : $oramsg(errortxt)"
} else {
set result {}
orafetch $ora -datavariable row -command { lappend result "[lindex $row 0]-[lindex $row 1]\t[lindex $row 2]" }
tk_messageBox -title "Result" -message [join $result "\n"]
}
又は
orasql $ora "SELECT PARTS_CLASS, PARTS_CODE, NAME FROM PARTS
WHERE NAME LIKE '%テイコウ%'"
if {$oramsg(rc) != 0} {
tk_messageBox -message "Ootto! $oramsg(rc) : $oramsg(errortxt)"
} else {
set result {}
orafetch $ora -dataarray row -command { lappend result "$row(0)-$row(1)\t$row (2)" }
tk_messageBox -title "Result" -message [join $result "\n"]
}
に成る・・・

2007年10月9日火曜日

JTableの・・・・・

TableModelの生成がRhinoから出来ない(TT)

↓処理で代用


public static Object jsFunction_createTableModel(Context cx, Scriptable thisObj,
Object[] args, Function funObj) {
Object arg1[][];
Object arg2[];
NativeArray narray1 = (NativeArray)args[0];
NativeArray narray2 = (NativeArray)args[1];

arg1 = new Object[(int)narray1.getLength()][(int)((NativeArray)narray1.get(0,narray1)).getLength()];
arg2 = new Object[(int)narray2.getLength()];

int len = (int) narray1.getLength();
int len2;
for (int i = 0; i < len; i++) {
Object obj = narray1.get(i, narray1);
Context.toObject(obj, narray1);
if (obj == Context.getUndefinedValue()) {
arg1[i]=null;
} else {
len2 = (int) ((NativeArray) obj).getLength();
for (int l = 0; l < len2; l++) {
Object obj2 = ((NativeArray) obj).get(l, narray1);
if(obj2==null) {
obj2 = null;
} else {
Context.toObject(obj2, ((NativeArray) obj));
if (obj2 == Context.getUndefinedValue()) {
obj2 = null;
} else if(obj2 instanceof NativeJavaObject) {
obj2 = ((NativeJavaObject)obj2).unwrap();
}
}
arg1[i][l]=obj2;
}
}
}

len = (int) narray2.getLength();
for (int i = 0; i < len; i++) {
Object obj = narray2.get(i, narray2);
Context.toObject(obj, narray2);
if (obj == Context.getUndefinedValue()) {
obj = null;
}
arg2[i]=obj;
}

return new DefaultTableModel(arg1,arg2);
}

2007年9月22日土曜日

SQL生成

Rhinoでデータ生成する処理を作りたいが・・・・・なんかやる気が出ない^^;