» ArchiveList
Home > 南国再見:OPEN SOURCE > xoops > Page.2

XOOPS Cube Legacy 2.1.2 RC

September 16 2007
「ローカルなテスト環境をお持ちの方は、ぜひともアップデートして」ということなので、
なーんの役にも立たないことは承知の上で、いれてみました:05:

でもまだほとんどいじってないので、今運用しているサイトのデータを
ひっぱってくるべきかどうか悩んでいるところですー。
やっぱりいろんなモジュールいれて、色々遊んでみないとですよね:36:

picoで本文表示

September 14 2007
自分メモ:

TinyDだとsummaryで概要表示ができていたんですが、picoではできないのでとりあえずの代用策として
本文をmain_listcontents.htmlのテンプレートに表示することにー。

タイトル表示部のあとに
<{$content.body|strip_tags|truncate:"100"}>と
してるだけです、はい…。
うーん、やっぱりsummaryが使える方が便利ですよねー…。

しかし自分でいじるよりpicoのTODOにある
【[summary][/summary][pagebreak]実装】
の文字を信じて待つ方がいいような気もしている今日この頃…。

d3forumで本名を表示

September 05 2007
d3forumのトピック一覧の部分でユーザー名で表示されている部分を本名で表示したいと思い、格闘してみました。
まず基本であるmodifier.xoops_userinfo.phpをGIJOEさんのサイトからダウンロードさせて頂き、
それをXOOPS_ROOT_PATH/class/smarty/plugins/にアップロード。

次にd3forum_main_listtopics.htmlの
<{$topic.last_post_uname}>を
<{$topic.last_post_uname|xoops_userinfo:"name"}>にしました。
そしたら全員【ゲスト】として表示されてしまったので、今度は
<{$topic.last_post_uid|xoops_userinfo:"name"}>としたところ
見事に希望通りの表示になりました:07:

ついでに、ということでd3forum_inc_eachpost.htmlの
<{$post.poster_uname}>も
<{$post.poster_uid|xoops_userinfo:"name"}>
とすると本名表示することができました:01:

xoopsで、weblogD3を利用することにしたのですが、これ、何故かフォームへのコードの追加が
カーソル位置ではなく、文末になってしまっており、非常に使いづらく感じておりました。
で、色々と調べ、さんだーさんにも知恵を借りつつ頑張ったところ、javascriptとfirefoxの関係の問題のようで。

xoops.jsとxoopscodes.phpを修正することで、きちんとカーソル位置にBBcodeや顔文字を入れることができるようになりました♪

【xoops.js】
} else {
domobj.value = domobj.value + text;
}

} else if (domobj.selectionStart){
tmpValue = new Array();
posSt = domobj.selectionStart;
posEd = domobj.selectionEnd;
tmpValue[0] = domobj.value.substring(0, posSt);
tmpValue[1] = domobj.value.substring(posEd,domobj.value.length);
domobj.value = tmpValue[0] + text + tmpValue[1];
} else {
domobj.value = domobj.value + text;
}に修正。

var revisedMessage;
var textareaDom = xoopsGetElementById(id);
xoopsInsertText(textareaDom, smilieCode);
textareaDom.focus();
return;

var revisedMessage, pos;
var textareaDom = xoopsGetElementById(id);
if(textareaDom.selectionEnd)
pos = eval(textareaDom.selectionEnd + smilieCode.length);
xoopsInsertText(textareaDom, smilieCode);
textareaDom.focus();
if(pos){
textareaDom.selectionStart = pos;
textareaDom.selectionEnd = pos;
}
return;に。

【xoopscodes.php】
<textarea id='".$textarea_id."' name='".$textarea_id."' cols='$cols' rows='$rows'>".$GLOBALS[$textarea_id]."</textarea>

<textarea id='".$textarea_id."' name='".$textarea_id."' onselect=\"xoopsSavePosition('".$textarea_id."');\" onclick=\"xoopsSavePosition('".$textarea_id."');\" onkeyup=\"xoopsSavePosition('".$textarea_id."');\" cols='$cols' rows='$rows'>".$GLOBALS[$textarea_id]."</textarea>

とりあえずこれで、私のとこでは希望通りの動きになっております。

仕事で、xoopsのテンプレートを作ってるんですが、
現在地リンクは他のリンクとは違う色にして、今どこにいるのかを分かるようにしようと思ったんですが、
xoopsではどうやるか真剣に悩みましたー。
普通なら、そのページに対してclass指定してあげればいいですけど、xoopsは動的生成ですからね。

まずテンプレートに直接メニューを書いて、そこに<a class="" href="#"></a>としますよね。
問題はclassの中にどうやってこのモジュールにアクセスしてるときはこのclass、という指定をするかなんですが、
もしかしてif文がいけるかな、と思い、以下のように書いてみたら思い通りに表示されましたー:01:

<a class="<{if $xoops_dirname == "モジュール名"}>クラス名<{/if}>" href="#">リンク名</a>

やってみたら意外と簡単で、こんなことに時間とられるなよ、って感じですが、
テンプレートの修正すら四苦八苦していた以前の自分から考えると、成長したなぁ、と思います(笑)

«Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · | Next»