d3diary のデータ取得について
- このフォーラムに新規トピックを投稿できます
- このフォーラムではゲスト投稿が許可されています
投稿ツリー
- d3diary のデータ取得について (nao-pon, 2012/6/25 10:51)
- Re: d3diary のデータ取得について (なーお, 2012/6/25 12:40)
- Re: d3diary のデータ取得について (なーお, 2012/6/25 13:38)
- Re: d3diary のデータ取得について (nao-pon, 2012/6/25 22:41)
- Re: d3diary のデータ取得について (なーお, 2012/6/25 23:57)
- Re: d3diary のデータ取得について (nao-pon, 2012/6/26 22:14)
- Re: d3diary のデータ取得について (なーお, 2012/6/26 23:25)
- Re: d3diary のデータ取得について (nao-pon, 2012/6/27 0:28)
- Re: d3diary のデータ取得について (なーお, 2012/6/27 10:42)
こんにちは、nao-pon です。
X-elFinder の d3dialy プラグインを作ろうと思っています。
そこで、データの取得方法について教えてください。
- アクセスユーザーの添付ファイル全一覧(D3diaryPhoto オブジェクト?)
- アクセスユーザー権限でのカテゴリ一覧 (cid と カテゴリ名)
- アクセスユーザー権限でのサブカテゴリ一覧 (cid とカテゴリ名)
- 特定カテゴリの添付ファイル全一覧(D3diaryPhoto オブジェクト?)
これだけ取れれば多分いけると思います。
'/class/diary.class.php'
'/class/category.class.php'
'/class/d3diaryConf.class.php'
'/class/photo.class.php'
を include してごにょごにょすればいいのかなと思いつつ、聞いた方が早いかなと・・・。
ということで、お手の空いた時でいいので、よろしくお願いします。
nao-ponさん、こんにちは。
X-elfinderのd3diaryプラグイン作成いただけるとのことでありがとうございます! 全部自分でやらなきゃいけないだろうな、なんて思っていたので、すごく嬉しいです。
で、ずばり参考にすべきソースはどこか? ということをまずお伝えすると、 main/photolist.php です。
この中で、
180 181 |
|
というのがあります。 $funcは、冒頭で作られた
$func =& $d3dConf->func ;
になりますので、class/func.class.phpソースの1202行名から
function get_photolist( $req_uid=array(), $uid, $max_entry, $offset=0, $params=array() ){
があります。ブロックからもコールされる共通メソッドです。
このメソッドにパラメータを渡せば、そのまま一覧は取得できそうですね。 categoryやらuidやらを渡さないといけないので面倒ではありますが、元々nao-ponさんのソースを参考にsingletonパターンで各オブジェクトを参照できちゃうので、追っていけばわかっていただけるかもですね。
photolist.phpのほうで、photolistには関係無さそうな「yd_xxxx」アサインが数多くありますが、これはd3diaryの右メニューバー用ですので無視していただいて大丈夫です。
さて問題は書き込みのほうですが、、
d3diaryのphotoテーブルにはカテゴリーフィールドがありません。 あくまで記事に添付された画像なので、記事に紐付けされたカテゴリーということになります。
で、X-elfinderで画像をアップするとき、どの記事に紐付け、とかは決まってないですよね。。 カテゴリー毎にフォルダを作るとしても、そのフォルダに入れても実際にどの記事に紐付けするか決まらないと、DBに格納できない、というジレンマが・・
その辺のソースは、main/index.phpの下のほうにあるんですが、previewとか絡んでいて、この部分は相当にごちゃごちゃしたソースです。 一旦仮にcategory「0」でDBに格納するのが無難かもですね。bidも「0」かな。。
もう一つ、カテゴリー番号cidは、10000未満は各個人カテゴリー用で、同じcidでuidが違うものが入ってくるので要注意です。 cidが10000以上は共有カテゴリーなので、uid=0しか入ってきません。
一応そんな感じなんですが、どうにかなりますかね、かなーり面倒な感じがするんですけど・・ m(..)m
アクセスユーザー権限でのカテゴリ一覧 (cid と カテゴリ名)
これは、class/func.class.php の203行め
function get_categories($req_uid, $uid, $block=false){
で取得できます。 $req_uid==0なら、全ユーザーのカテゴリー配列を取得できるような気がします。
なお、サブカテゴリーは上記メソッドで取得した配列中、$catopt['subcat']==1 になっているカテゴリーで、親カテゴリーは直前の $catopt['subcat']==0 のカテゴリーでして、ちょっと普通の作りになっていないので面倒かもしれません。
↓(追加情報)
main/index.php の165行目付近
class/category.class.php の$categoryインスタンスを取得して
$category->uid
$category->cid
をセットして
$category->getchildren($mydirname);
で
$category->children
にて取得できます。
naao さん、詳細な説明ありがとうございます。
まずは、読み出し(参照)から書いてみようと思っています。(というか書き込みまでは考えていなかったです。 )
書き込みは、記事IDとの紐付けが必要なので、このあたりはまだどのような実装にするか考えていないです。
記事毎にフォルダー分けのは現実的ではないですし、やっぱり記事作成時の登録前に(新規フォームを開いた時点で)記事IDを発行しないと難しいかも知れませんね。
nao-ponさん
まずは、読み出し(参照)から書いてみようと思っています。(というか書き込みまでは考えていなかったです。
無理言っちゃってスミマセン。
書き込みは、記事IDとの紐付けなのでかなり難しいですね。
d3diary側の仕組みを変更する前提で、何とかできる方法を見つけられればと思います。 例えば、X-elfinderでd3diary用の画像を転送した時には、pidだけ決定してbid=0でphotoテーブルに書きこんでおき、 記事を書いた後か、記事フォーム上でそれを選択できる仕組みを入れる、とかですね。
いずれにしても、書き込みは後回しでお願いします。
読み込みだけあれば、あとは自分で色々試したりしているうちに、良いアイデアが浮かぶかもしれません。
d3diary への改変リクエストを通して頂きありがとうございます。
まだ、読み出しだけですが、とりあえずの版を X-elFinder の github に投入しました。
使って頂き、不具合や改善点などありましたら、また教えてください。
まだ、バグがあるかも知れませんが・・・
とりあえず動けば、まずは世に出してみんなに使ってもらって、フィードバックを得たいという気持ちです。
その代わりに、バグ修正は迅速にしなくてはいけないという自分なりのお約束です。
X-elfinder のバージョンは、0.25以上でこれが有効になる、という記述を追加しますが、それでOKでしょうか?
はい、それで OK です。先ほど Version 0.25 に更新しました。
nao-ponさん、どうもです!
とりあえず動けば、まずは世に出してみんなに使ってもらって、フィードバックを得たいという気持ちです。
その代わりに、バグ修正は迅速にしなくてはいけないという自分なりのお約束です。
ありがとうございます。
対応プラグインが増えれば、それだけ使用者も増えますからね。相乗効果ですね。