2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

プログラム(機能)関連の開発の話題
nomo@bluecoara.net
メンバー
メンバー
記事: 14
登録日時: 2011年2月18日(金) 01:48

2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by nomo@bluecoara.net » 2011年2月18日(金) 01:59

はじめまして。中満と申します。

最近、Revolutionを検証しているのですが、ちょっと気がついたことがありポストさせていただきます。
サイト内で検索機能を使用したいと思い、SimpleSearchをインストールしたのですが、「検索結果」の表示がデフォルトだと
core/components/simplesearch/lexicon/en/default.inc.php にて、

コード: 全て選択

$_lang['sisea.results_found'] = '[[+count]] Results found for "[[+text]]"';


と設定されていたため、日本語表示にしたいと思い、管理画面の「システム」→「語彙トピックの管理」より「項目を作成」にすすみ、

コード: 全て選択

名前: sisea.results_found
ネームスペース: sisea
トピック: default
言語: ja
値: "[[+text]]"について[[+count]]件見つかりました。


のような形で値を作成しました。結果、無事日本語表示できるようにはなったのですが、このエントリを編集しようと思い、
検索を試みたのですが、どこからも値を検索or更新することが出来ません。具体的には、語彙トピックの管理より、

ネームスペース: sisea

を選択しても、言語=jaが表示されません。
ちなみに、phpMyAdminで確認すると、値はmodx_lexicon_entriesテーブルの中に、

コード: 全て選択

7    sisea.results_found    "[[+text]]"について[[+count]]件見つかりました。    default    sisea    ja    2011-02-18 01:21:57    0000-00-00 00:00:00


のように保存されていました。

「作成は出来ても検索や更新が出来ない」であればバグだと思うのですが、私の見落としがあるのでしょうか?
もしかすると、日本語版以前の問題かもしれませんが、何かご存じの方がいらっしゃいましたらアドバイスお願いいたします。
nomo@bluecoara.net
メンバー
メンバー
記事: 14
登録日時: 2011年2月18日(金) 01:48

Re: 2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by nomo@bluecoara.net » 2011年2月18日(金) 17:15

追記です。

SimpleSearchだけでなく、FormItなどのスニペットでも同様の症状みたいです。
日本語が問題というわけではなさそうなので、本家のフォーラムにもポストしてみます。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: 2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by soushi » 2011年2月19日(土) 05:47

soushiです。

根本的な解決方法ではないですが、回避策が分かりました。
ダミーで構わないのでSimpleSearchのlexiconディレクトリに日本語(ja)のディレクトリを作成すると表示されるようになりました。

MODX_PATH/core/components/simplesearch/lexicon/en/
↓enディレクトリをそのままコピーします。中身は変更しなくてもOKです。
MODX_PATH/core/components/simplesearch/lexicon/ja/

ネームスペースの言語リストを探す時に、ネームスペースのパスからlexiconディレクトリを探し、その配下のディレクトリを言語リストとして表示したいるため、「DBには存在するけどここに存在しない言語」はリストに表示されないようです。
差し当たってこちらで解決できますが、根本的な修正方法はイマイチわかっていません(--;
(まだソースを完全に追えてない…Revoは難しいです(汗)

同様の質問を本家フォーラムに投げられるとの事で、御参考にしていただければと思います。
nomo@bluecoara.net
メンバー
メンバー
記事: 14
登録日時: 2011年2月18日(金) 01:48

Re: 2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by nomo@bluecoara.net » 2011年2月19日(土) 09:07

返信ありがとうございます。

言語ディレクトリのみを追加してみるという方法は試していたのですが、中身までコピーは試しておりませんでした。

> (まだソースを完全に追えてない…Revoは難しいです(汗)

そうなんですよね。私もphpは分かるんですが、modxほど巨大になりすぎると、まとまった時間がないと難しいです。

ちなみに、本家フォーラムでのアドレスはこちらです。
http://modxcms.com/forums/index.php/topic,61276.0.html

soushiさんと同じようなワークアラウンドを紹介してもらっていますが、もしこの方法が正しい動きとなると、
全てのスニペット開発者は「サポートしない言語ディレクトリも標準で作成しておくべき」となる気がするため、
バグなのかどうなのか確認中です。

取り急ぎワークアラウンドは見つかって助かりました!
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: 2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by soushi » 2011年2月19日(土) 13:40

soushiです。

少し補足ですが、言語リストを作っているのはこちらのファイルです。

MODX_PATH/core/model/modx/processors/system/language/getlist.php

さらにこの中の $modx->lexicon->getLanguageList($namespace); が実際に言語リストを作っています。
これはmodLexiconクラスです。

MODX_PATH/core/model/modx/modlexicon.class.php

getLanguageList()を見る限りディレクトリの中身はからっぽでも良さそうですが、次に語彙リストを出す処理でjaディレクトリ以下のファイルが必要になってますね。
最初はgetLanguageList()だけいじればなんとかなると思ってましたが、それだけではダメそう…と思ったところで昨日はギブアップしました(^^;

nomo@bluecoara.net さんが書きました:ちなみに、本家フォーラムでのアドレスはこちらです。
http://modxcms.com/forums/index.php/topic,61276.0.html


拝見しました。
本家からの回答はあまりバグという認識ではなくて、「だったら言語ファイル提供してcontributeしなよー」とうスタンスなのでしょうか…(すいません、誤訳かも)

もうひとつの対応として、新規に作成された言語に対してはenフォルダと全部コピーする処理を挟み込んでも手っ取り早くていいかもしれません。
ただ、バージョンアップした時に言語ファイルに差異が出て問題がでる可能性がある気がするので、こちらもいい対応ではないかなーっと思ってます…。
nomo@bluecoara.net
メンバー
メンバー
記事: 14
登録日時: 2011年2月18日(金) 01:48

Re: 2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by nomo@bluecoara.net » 2011年2月19日(土) 16:56

またまた早速のリプライありがとうございます。

新たに本家にポストしておきましたが、「自分で用意しなければならないのなら、Lexicon managementの意味があんまり無くない?」
という印象です。また、追加は出来るけど、更新や削除が出来ないとなると、これが仕様とは言い難いです。

取り急ぎ、手元の環境ではワークアラウンドな方法を試していますが、将来的なことや他ユーザのことを考えると、
本家側での対応が望まれるところです。
nomo@bluecoara.net
メンバー
メンバー
記事: 14
登録日時: 2011年2月18日(金) 01:48

Re: 2.0.7-plにて語彙トピック(Lexicon)に追加したカスタムな値が検索、更新できない?

投稿記事by nomo@bluecoara.net » 2011年2月20日(日) 21:15

バグとして挙げておきました。

http://bugs.modx.com/issues/3884