Elggでできたサイトを調べる
Elggはhoge.com/c/view/en/1690とかなっている。cがなんなのか、enとjaを切り替えたときどこのプログラムが呼ばれてるのかとかが分からん。Elggは全てブログもお気に入りもなんでもかんでも、広義には同じentityというものになっているようで、blogsとかいうフィールドは特にない。
というか、昨日できていたリモートデバッグが動いてない。へこむ。 昨日と設定は変わってないのに、できなくなったということはどういうことだ。 もういいや。原始的な方法でいっちゃう。
metastringに記事一式が配列ではいってる。objects_entityに記事タイトルと説明のみ入ってる。metastringはobjects_entityに紐づいてるはずだ。 エンジン/データモデル
ElggEntityを拡張したElggObjectとして、そしてそのサブタイプをhogeとしてこの記事は存在しているのだな。ElggEntityにはtitleとdescriptionがつくのだな。guidは全てにおいてユニーク。サイトとテーブルをまたいでユニークなのだな。
さて、objects_entityに記事が登録されていて、記事のアイテムが、metastringsに登録されていることはわかったが、metastringsはidとstringしかないので、紐付けされていない。なのでどこか別のテーブルでこの2つを関連付けしているはずじゃ。翻訳データも別のところにあるのだ。MetadataとかAnnotationsとかかな。
ここに、annotationsの説明が書いてある。$entity->annotate(‘comment’, $comment_text, $entity->access_id);な感じで使えるらしい。$access_idのエンティティのコメントを登録してる感じかしら。コメントを新規追加してる感じかしら。access_idというのはobjects_entityとかのguidかしら。謎が謎を呼んでおります。もはや時給250円レベルの戦い。違うaccess_idってのはアクセスレベル、権限的なやつだな。
なんとなく構造がわかったかな。記事がはentityとobject_entityに登録されて、そのアイテム群は一つの配列としてmetastringに登録される。記事とアイテムは、anotatinsで紐づけられる。アクセスidでアクセス権限(公開・非公開、誰が見られるかなど)を設定しているんだな。
あとは、翻訳だな。もう1回登録して確かめてみよう。
select * from elgg_metastrings order by id desc limit 9; 
おお翻訳結果もmetastringsに存在するのか。まあいずれにしても翻訳データもmetastringsに配列として登録されているわけだな。
