» 記事一覧
Home > OPEN SOURCE > Page.4

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>

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


郵便番号の自動入力なんですけど、今まではデータベースに郵便番号情報を持たせて、という
非常にめんどくさい方法をとっていましたが…
そこでweb2.0です:10:Ajaxです:10:

AjaxZip 2.0
こちらで紹介されているJavaScriptライブラリを利用させて頂ければ、
既存のフォームに3行追加するだけで、郵便番号を入力し終わった瞬間に、
県名・市町村名・番地欄に住所が自動表示されるようになりますー:44:
データベースの知識もPHPの知識もCGIの知識もいらないで、
ユーザーに優しいフォームができてしまうわけです:36:

住所入力フォームが必要なサイトを運営されている方には是非オススメしたいです:07:


xugj_assign.php

June 29 2007

今更ではありますが、xugj_assign.phpを「なかつかふぇ」の方に導入してみましたー。
まずhttp://www.peak.ne.jp/様よりxugj_assign.phpをダウンロード。

で、テーマの先頭部分に
<{include_php file="file:$xoops_rootpath/themes/$xoops_theme/xugj_assign.php"を挿入。

次にテーマでパンくずリストを表示させたい部分に

<div id="theme_breadcrumbs">
  <a href="<{$xoops_url}>/">TOP</a>
  <{foreach from=$xoops_breadcrumbs item="item"}>
    &nbsp;&gt;&nbsp;
    <{if $item.url}>
      <a href="<{$item.url}>"><{$item.name}></a>
    <{else}>
      <{$item.name}>
    <{/if}>
  <{/foreach}>
</div>

と記述。私のテーマでは、centercolumnのすぐ下にいれてますー。
これで、アクセシビリティが少しは向上される…かな?

しかしそれよりももう少し全体の雰囲気の統一を図りたい…。
モジュールごとにイメージ画像とかが付属しているのですが、それをそのまま使うと
やっぱりバラバラな印象になるので、全部作り直したいのですが…
結構根気と時間がいるんですよねー。…根気、欲しいなぁ…:71:


NP_znSmiley 1.13

June 13 2007

最近xoopsばかりいじって、Nucleusは放置ぎみの管理人です:46:

でも今日はすばやくアップデートしました!
佐藤(な)さんのNP_znSmileyが1.13になり、プラグインフォーム群の中にあったスマイリーボタンが任意の場所に置けるようになりましたー!
デフォルトでは本文下の位置に置いてくださっているので、非常に使いやすいです:01:
(というわけで、必要以上にスマイリーを使ってみる:44:


またちょっとNucleusも触ってみよう…時間ができたら…:73:


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