ブログ - 最新エントリー

というわけで、調べたことをまとめておく

Analyzer for XC [0.42] 管理画面−表示画面のパラメタ

action=view は表示画面共通
cmd= 表示画面のサブメニューコマンド
f= YYYYMMDDで 日をあらわす(99 は合計を表す?)
st=表示開始データインデックス?

トップ=日毎時間別集計
f=yyyymmdd
日ごとの時間別集計を表示する。合計での時間別集計も可能。

日別一覧=日別集計
cmd=list
f=yyyymmdd

ログ表示
cmd=last
f=yyyymmdd
col=2&sel= OSによる絞込み指定。
col=3&sel= ブラウザによる絞込み指定。
col=4&sel= ホストによる絞込み指定。
col=7&sel= モジュールによる絞込み指定。
col=8&sel= ユーザによる絞込み指定。

リンク表示
cmd=ref

逆リンク
cmd=link

OS・ブラウザ
cmd=os

ホスト
cmd=host

検索キーワード
cmd=keyw

検索エンジン
cmd=eng

モジュール
cmd=mod

モジュール
cmd=user

自由形
cmd=crawl
  • トラックバック (0)
  • 閲覧 (4919)
Analyzer for XC を触っていると、ちょっと表示内容がおかしくなることがある。
いろいろいじって確かめたところ次の点が問題のようだ。

■日別一覧=(cmd=list)
一覧の日付リンクをクリックすると、「メニュー」画面に遷移したかのようになる。これは action=view がなく、cmd=view となっているため。
本来これはaction=view で 日毎時間別集計へ飛ぶのだろう。

■日別一覧=(cmd=list)
メニュー下の日付リンクは意味がない=選ぶと「XX月XX日のアクセス」と表示されるが、表示内容は「合計」の場合と同じ。

■ログ表示(cmd=last)
メニュー下の日付リンクをクリックすると「XX月XX日のアクセス」と表示されるが、表示内容が空になっている。
(追記)この問題は [0.43] で修正されています。

これはオプションパラメタに sel=&col=0 がついているためで、これを手で消してやると正しく表示される。
このとき以下のワーニングが出ている。

Notice [PHP]: Undefined offset: 0 in file modules/Analyzer/admin/command/lastCommand.class.php line 42

col=N&sel= は 絞込み指定だが、これが空の場合に対応する行がないため表示されないのだろう。
  • トラックバック (0)
  • 閲覧 (4654)
いつも忘れては昔のコードを探ったりするので、書いておこう。


<assign var=signal value=","|split:"青,黄,赤">


という感じ...
そのまま直接使うこともできる

<foreach item=i from=","|split:"1,2,3">


元ネタは http://d.hatena.ne.jp/studio-m/20070512/1178978926 から
ありがとうございます。


[追記]
Web上には色々考える人がいるのですね...
http://d.hatena.ne.jp/fbis/20100928/1285657357
確かに文字列配列しか使えないのは困るときがあるよね...

コードを追加したくなかったから上のようにしているのだけれど、
XCLならコアに近い部分にこういうのを忍ばせておくことも出来るし、結構いいかも。
Merci!!
  • トラックバック (0)
  • 閲覧 (26892)
ユーザ情報編集画面で追加項目を編集するにはテンプレート user_edituser.html の適当なところに

<{flatdata fd_dir=flatdata embed_dir=register.php item_field=uid 
        item_id=$actionForm->get('uid') mode=form}>

を追加すればよい。


ユーザ情報画面に追加項目を表示するには、テンプレート user_userinfo.html の適当なところに

<{flatdata fd_dir=flatdata embed_dir=register.php item_field=uid
   item_id=$thisUser->getShow('uid') mode=display}>

を追加すればよい。
新規登録画面と違って、テーブル中に挿入できないので間違わないように。

また、myfriend を利用している場合、テンプレートは myfriend_userinfo.html になるので注意。
  • トラックバック (0)
  • 閲覧 (8944)
flatdata を使って簡単に新規登録画面に項目を追加できるのはわかったが、確認画面の表示がテキストボックスなのが気になった。
そこで表示方法を変えてみることにした。

新規登録画面は次のテンプレートで整形されている。
flatdata_embed_form_noformtag.html

元のコードは↓だ。

<input type="text" name="field<{$f.fid}>" size="50" maxlength="255" value="<{$data[0].data[$f.fid]}>"
   <{if $smarty.get.action==confirm}>readonly="READONLY"<{/if}> />



確認画面の時には readonly="READONLY" をつけることで編集できないようにしている。

ほかの項目と見た目が違うのは気になるので、↓のように変えてみた。

<{if $smarty.get.action==confirm}>
<{$data[0].data[$f.fid]|xoops_escape:'show'}>
<input type="hidden" name="field<{$f.fid}>" value="<{$data[0].data[$f.fid]}>" />
<{else}>
<input type="text" name="field<{$f.fid}>" size="50" maxlength="255" value="<{$data[0].data[$f.fid]}>" />
<{/if}>


これで、普通に表示されるようになった。
  • トラックバック (0)
  • 閲覧 (8760)
Analyzer for XC [0.42] で管理メニューからデータリセットをすると、ワーニングが出る場合がある。
(主にレンタルサーバなどで運用している場合?)


Warning: set_time_limit() [function.set-time-limit]:
  Cannot set time limit in safe mode
  in /.../modules/Analyzer/admin/actions/reanalyzeAction.class.php on line 2


PHPがセーフモードなので set_time_limit できなかったということのようで、特に問題はないと思う。
また、ワーニング中にフルパスが表示されるが、管理側なのでこれも問題ないであろう。
気にしないのが一番!!
  • トラックバック (0)
  • 閲覧 (4715)

flatdata [0.15d] を試してみた

カテゴリ : 
Customize/Hackメモ » その他
執筆 : 
masa 2008/7/13
FlatData(フラットデータ)は、XOOPS2JP / XOOPS Cube Legacy で動作する小規模簡易データベースモジュール。
smarty プラグイン "flatdata" が追加されていて、ほかのモジュールにデータを埋め込むことができているところが特徴。

いろいろなことができそうだが、とりあえずニーズの多い「ユーザ情報の追加」を試してみた。

参考にしたのは、「新規登録時にアカウント情報にデータを追加する」
(http://flatdata.neverever.xrea.jp/modules/docs/index.php?content_id=5)

...続きを読む

  • トラックバック (0)
  • 閲覧 (17892)

XCL モジュール開発 admin

カテゴリ : 
開発用メモ » XCL開発資料
執筆 : 
masa 2008/7/12
XCL流モジュール開発で管理者メニューを作る場合。


xoops_version.php に
$modversion['hasAdmin'] = 1;
が必要

--------

■クラス定義
class/Module.class.php ファイルの中に
Dirname_Module extends Legacy_ModuleAdapter
(または extends Legacy_AbstractModule ?)
クラスが必要

クラスメソッドとして以下のものを記述
public function getAdminMenu()


■D3 (not class)
adminmenu="admin_menu.php"
$adminmenu4altsys (??)

■D3対応への考察
Legacy_Utils::createModule()ではクラスファイルを
modules/${dirname}/class/Module.class.php としているので、このままでは公開側にproxyファイルを必要とする。
同様にモジュールクラス名も
ucfirst(モジュールディレクトリ名)."_".'class名'
という形なので、複製に対応できない...


Legacy_Utils::createModule() にはデリゲート「Legacy_Utils.CreateModule」が設定されている。
ここでオーバーライドすれば複製対応が可能と思われる。

■altsysメニューへの対応...
  • トラックバック (0)
  • 閲覧 (6875)

piCal [0.91h] をテンプレート化する

カテゴリ : 
Customize/Hackメモ » TODO
執筆 : 
masa 2008/7/10
やはり piCal の登録が携帯からできないのは困る...
しかし、piCal [0.91h] はテンプレート化されていないので、そのままではモバイル用にカスタマイズすることができない。

やはり、本体に手を入れていくしかないだろう。
  • トラックバック (0)
  • 閲覧 (6133)
これはバグじゃなくて、仕様なのだと思うが...

D3blog にはエントリ本文に「区切り挿入」をすることができる。
これを使うと、本文を要約と詳細に分けることができる、とても便利なもの。

ただひとつだけ困るのは、区切りを挿入すると、その前後の空行が無視されてしまうことだ。

...続きを読む

  • トラックバック (0)
  • 閲覧 (6029)