ブログ - 最新エントリー
というわけで、調べたことをまとめておく
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
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
Analyzer for XC を触っていると、ちょっと表示内容がおかしくなることがある。
いろいろいじって確かめたところ次の点が問題のようだ。
■日別一覧=(cmd=list)
一覧の日付リンクをクリックすると、「メニュー」画面に遷移したかのようになる。これは action=view がなく、cmd=view となっているため。
本来これはaction=view で 日毎時間別集計へ飛ぶのだろう。
■日別一覧=(cmd=list)
メニュー下の日付リンクは意味がない=選ぶと「XX月XX日のアクセス」と表示されるが、表示内容は「合計」の場合と同じ。
■ログ表示(cmd=last)
メニュー下の日付リンクをクリックすると「XX月XX日のアクセス」と表示されるが、表示内容が空になっている。
(追記)この問題は [0.43] で修正されています。
これはオプションパラメタに sel=&col=0 がついているためで、これを手で消してやると正しく表示される。
このとき以下のワーニングが出ている。
col=N&sel= は 絞込み指定だが、これが空の場合に対応する行がないため表示されないのだろう。
いろいろいじって確かめたところ次の点が問題のようだ。
■日別一覧=(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= は 絞込み指定だが、これが空の場合に対応する行がないため表示されないのだろう。
いつも忘れては昔のコードを探ったりするので、書いておこう。
という感じ...
そのまま直接使うこともできる
元ネタは http://d.hatena.ne.jp/studio-m/20070512/1178978926 から
ありがとうございます。
[追記]
Web上には色々考える人がいるのですね...
http://d.hatena.ne.jp/fbis/20100928/1285657357
確かに文字列配列しか使えないのは困るときがあるよね...
コードを追加したくなかったから上のようにしているのだけれど、
XCLならコアに近い部分にこういうのを忍ばせておくことも出来るし、結構いいかも。
Merci!!
<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!!
ユーザ情報編集画面で追加項目を編集するにはテンプレート user_edituser.html の適当なところに
を追加すればよい。
ユーザ情報画面に追加項目を表示するには、テンプレート user_userinfo.html の適当なところに
を追加すればよい。
新規登録画面と違って、テーブル中に挿入できないので間違わないように。
また、myfriend を利用している場合、テンプレートは myfriend_userinfo.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 になるので注意。
flatdata を使って簡単に新規登録画面に項目を追加できるのはわかったが、確認画面の表示がテキストボックスなのが気になった。
そこで表示方法を変えてみることにした。
新規登録画面は次のテンプレートで整形されている。
flatdata_embed_form_noformtag.html
元のコードは↓だ。
確認画面の時には readonly="READONLY" をつけることで編集できないようにしている。
ほかの項目と見た目が違うのは気になるので、↓のように変えてみた。
これで、普通に表示されるようになった。
そこで表示方法を変えてみることにした。
新規登録画面は次のテンプレートで整形されている。
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}>
これで、普通に表示されるようになった。
Analyzer for XC [0.42] で管理メニューからデータリセットをすると、ワーニングが出る場合がある。
(主にレンタルサーバなどで運用している場合?)
PHPがセーフモードなので set_time_limit できなかったということのようで、特に問題はないと思う。
また、ワーニング中にフルパスが表示されるが、管理側なのでこれも問題ないであろう。
気にしないのが一番!!
(主にレンタルサーバなどで運用している場合?)
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 できなかったということのようで、特に問題はないと思う。
また、ワーニング中にフルパスが表示されるが、管理側なのでこれも問題ないであろう。
気にしないのが一番!!
FlatData(フラットデータ)は、XOOPS2JP / XOOPS Cube Legacy で動作する小規模簡易データベースモジュール。
smarty プラグイン "flatdata" が追加されていて、ほかのモジュールにデータを埋め込むことができているところが特徴。
いろいろなことができそうだが、とりあえずニーズの多い「ユーザ情報の追加」を試してみた。
参考にしたのは、「新規登録時にアカウント情報にデータを追加する」
(http://flatdata.neverever.xrea.jp/modules/docs/index.php?content_id=5)
smarty プラグイン "flatdata" が追加されていて、ほかのモジュールにデータを埋め込むことができているところが特徴。
いろいろなことができそうだが、とりあえずニーズの多い「ユーザ情報の追加」を試してみた。
参考にしたのは、「新規登録時にアカウント情報にデータを追加する」
(http://flatdata.neverever.xrea.jp/modules/docs/index.php?content_id=5)
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メニューへの対応...
■
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メニューへの対応...
やはり piCal の登録が携帯からできないのは困る...
しかし、piCal [0.91h] はテンプレート化されていないので、そのままではモバイル用にカスタマイズすることができない。
やはり、本体に手を入れていくしかないだろう。
しかし、piCal [0.91h] はテンプレート化されていないので、そのままではモバイル用にカスタマイズすることができない。
やはり、本体に手を入れていくしかないだろう。
これはバグじゃなくて、仕様なのだと思うが...
D3blog にはエントリ本文に「区切り挿入」をすることができる。
これを使うと、本文を要約と詳細に分けることができる、とても便利なもの。
ただひとつだけ困るのは、区切りを挿入すると、その前後の空行が無視されてしまうことだ。
D3blog にはエントリ本文に「区切り挿入」をすることができる。
これを使うと、本文を要約と詳細に分けることができる、とても便利なもの。
ただひとつだけ困るのは、区切りを挿入すると、その前後の空行が無視されてしまうことだ。