1.0.6J-r7ベータです

プログラム(機能)関連の開発の話題
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.6J-r7ベータです

投稿記事 by yama »

まだ一部ですがMooTools(v1.1.2)→jQueryの差し替えを行なっています。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

ベータ2です。主にテンプレート変数の編集画面を調整しています。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

ベータ3です
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

画像

投稿画面の構成整理を検討中です。(ManagerManagerで従来どおり調整できます)
[*decription*]はtextタイプのinputフォームだと使いにくいため、textareaに変更することを検討しています。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: 1.0.6J-r7ベータです

投稿記事 by kazuike »

descriptionの入力欄の仕様を変更されるということですが、
不勉強で申し訳ないですが、
descriptionの途中に改行が入っても大丈夫ですよね?
(Googleは大丈夫だとして、その他のRSS出力とか諸々)

あと、
descriptionやkeywords等のmetaタグは、
みなさんは、MODXでどのようにされているのでしょうか?

個人的なことで恐縮ですが、参考までに私のやっている方法を紹介させていただきますと…
リソース変数はデフォルト値が設定できないので、
私はいつも、descriptionやkeywords用のテンプレート変数を設定して使用しています。
(テンプレート変数名は、meta_description、meta_keywordsって感じです)
ちなみに、keywordsはManagerManagerのmm_widget_tagsを使用しています。
(既存のキーワードは選ぶだけなので、とても助かります)

一方、リソース変数のdescriptionは、
mm_hideFieldsで非表示にするか、
1行入力用のテンプレート変数の代わりに使用しています。
特に、商品コード等のID系の情報に使うことが多いです。
(たまに、キャッチコピー的なものに使ったりもしましすが)

特に、このdescriptionが使い勝手が良いのは、
リソース変数なので、
スニペットやプラグイン、モジュール等で使用する際、
getDocumentChildren等のAPIで簡単に検索できることです。
(テンプレート変数で検索するとなると、ちょっと簡単とは言い難いですね)

いつも思うことは、
リソース変数に予備のフィールドが数個でもあると嬉しいです。
標準添付の「mm_rules」でそれらのフィールドをデフォルトで非表示にしておけば、
大きな問題にはならないのでは?と思ったりします。
従来のバージョンとの互換性が問題にはなるかもしれませんが…

あと、
ManagerManagerのmm_defaultの対象フィールドが限定的なので、
もっと色々なフィールドにデフォルト値が設定できると嬉しいとも思ったりします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

なるほどですね。ググってみたら、descriptionはメタデータ(?)として重要なので改行は混ぜないほうがよいといった情報がいちおうあるようですが、これが原因でフィードリーダーがコケるという話までは特にないようです。とりあえずDittoのRSSフォーマッタのほうでdescriptionの改行を削除する処理を入れておきます。

リソース変数の予備は検討してみますが、実のところ工数がものすごく多いです。先日もロシアから別件で提案があったので新規追加してみましたが、ひとつ追加するだけでテスト込みで1時間かかるという調子です。

mm_defaultの対象フィールドは1.0.6同梱版から増えたと聞いてます。

mm_default('longtitle','あいうえお');
mm_default('template','3');

試してみたら、上記いけました。以前は0|1タイプのチェックボックスフィールドしか操作できなかったですよね

投稿画面のレイアウト変更は今回はdescriptionの仕様変更と、リンク属性(link_attribute)を設定タブに移動する程度に収まりそうです
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

今見てみたらRSSフィードグローバルのdescriptionは[*description*]を使ってますが、各アイテム(各記事)のdescriptionは[*introtext*]を使ってますね。:stripモディファイアを加える形で両方とも対応してみます。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: 1.0.6J-r7ベータです

投稿記事 by kazuike »

yama さんが書きました:とりあえずDittoのRSSフォーマッタのほうでdescriptionの改行を削除する処理を入れておきます。
ありがとうございます。
yama さんが書きました:リソース変数の予備は検討してみますが、実のところ工数がものすごく多いです。先日もロシアから別件で提案があったので新規追加してみましたが、ひとつ追加するだけでテスト込みで1時間かかるという調子です。
日頃からyamaさんのスピードには驚かされていますが、1時間でできるって…私なら無理です。f(^^;;
yama さんが書きました:mm_defaultの対象フィールドは1.0.6同梱版から増えたと聞いてます。
ソース見たら「default:」の処理が入ってました。 :)
ただ、Javascriptのエスケープ処理が入っていないので、なんでもOKではないですね。
ちょっと考えただけでもわかるのは、ダブルクオーテーションを入れたらダメですね。
なので、リンク属性のデフォルト値に「target="_blank"」等は指定できないですね。
その他にも色々あるかもしれない… :(
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

$new_value = ($eval) ? eval($value) : $value;
という行の下に
$new_value = $modx->db->escape($new_value);
このように追記するとよいみたいです。 mm_default('longtitle','target=\'"\\?&_blank"'); みたいな無茶な設定でも反映できるようになりました
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: 1.0.6J-r7ベータです

投稿記事 by kazuike »

yama さんが書きました:$new_value = ($eval) ? eval($value) : $value;
という行の下に
$new_value = $modx->db->escape($new_value);
このように追記するとよいみたいです。 mm_default('longtitle','target=\'"\\?&_blank"'); みたいな無茶な設定でも反映できるようになりました
ありがとうございます。今度試してみます。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

ベータ4です。

・エクスポート処理を高速化(従来より6~7倍早くなりました)
・投稿画面の構成を調整
・TinyMCEにひな型挿入機能(Template)を追加
・キャッシュをバイパスモードに設定している場合、404ページのキャッシュをURLの数だけ生成していたため修正
・Bindingsを無効にするプラグインの機能をコアに取り込み
・ManagerManagerのmm_default()の処理を改善
・TopicPath調整

などです
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

b4にリソースのアップデートに失敗するバグがありました。
https://github.com/modxcms-jp/evolution ... 4a90c41124
パッチはこちらです。contentdispoという文字列をcontent_dispoに置換します
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r7ベータです

投稿記事 by min-o »

-----
ご利用のサーバ: さくらインターネット
Webサーバのバージョン :
PHPのバージョン :5.2.17
データベースのバージョン :5.1.51-log
MODXのバージョン : 1.0.6J-r6→1.0.6J-r7b4 アップデート
ブラウザ :fierfox15
-----

テストページで1.0.6J-r6→1.0.6J-r7b4 アップデートしてみました。
リソース編集画面を開くと、カスタムフィールド(テンプレート変数)の一番上に以下のエラーが出て、テンプレート変数が半分以上表示されませんでした。
---------------
Fatal error: Maximum execution time of 30 seconds exceeded in /home/****/www/backup/assets/snippets/wayfinder/wayfinder.inc.php on line 297
---------------
たしかに開くのに異様に時間がかかりました。

どうもテンプレート変数が10数個あたりからダメみたいで、それ以下の少ないテンプレート変数のリソースは問題なく表示されています。
数が多い場合は上から数個のみ表示されるようです。(同一のテンプレートで同じ数のテンプレート変数が表示)
プレヴューは問題ないです。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

情報ありがとうございます。リソース編集画面を開くのにwayfinderにアクセスしてるのは不思議ですね・・
テンプレート変数を10個くらい作って確認してみます
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

テンプレート変数を20個作ってみましたが、特に負荷は変わらないように感じます。

http://forum.modx.jp/viewtopic.php?p=4684#p4684
以前にも上記のような話がありましたが、何か管理画面カスタマイズ系のプラグインなどが動いてますでしょうか?
manager/index.php内の$modx->safemodeの行頭コメントを外すとプラグイン無効で管理画面にアクセスできるので、
それで問題なく動作するようであればプラグインに原因があることが分かると思います。
MODX本体はインストールされているスニペットを走査して読み込む処理はないので、プラグインに原因があるような気がします。
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r7ベータです

投稿記事 by min-o »

manager/index.php内の$modx->safemodeの行頭コメントを外すとプラグイン無効で管理画面にアクセスできるので、
91行目
$modx->safeMode = true;
を有効にしてみたのですが、同じエラーで症状変わりません。
管理画面カスタマイズ系のプラグインは特に使っていないです。そのままデフォルトで使っています。

有効になっているプラグインは以下です。
---------
Manager and Admin
Forgot Manager Login(48) 1.1.8 管理画面のログインパスワードを忘れた時に、一時的に無条件ログインできるURLを発行
ManagerManager(52) 0.3.12.1 投稿画面を自由自在にカスタマイズ。
phx(20) 2.1.4 (Placeholders Xtended) Adds the capability of output modifiers when using placeholders, template variables and settings tags
Quick Manager+(53) 1.5.5r6 管理画面へのアクセス不要。今開いているページから編集ウィンドウを開きます
TinyMCE Rich Text Editor(54) 3.5.7 Javascript WYSIWYG Editor
ダッシュボード・オンライン情報(51) 0.1.1 ダッシュボードに「オンラインユーザー」を表示します。
管理画面カスタマイズ(41) 1.0.2 ログイン画面・ダッシュボードのカスタマイズコード
Navigation
seo301redirect(45) 0.0.1 Redirects old URL's to the new ones
Search
Search Highlight(26) 1.5 検索結果ページ中のキーワードを分かりやすくハイライト表示 (AjaxSearchが必要)
カテゴリーなし
Cascading Templates(18) 1.00 テンプレート階層化プラグイン
MobileConverter(19) 2.00携帯用テンプ文字コード画像変換
unlock(16) リソース開いたままブラウザ閉じても指定時間でロック解除
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

Wayfinderスニペットの編集画面を開いて、<?php行の次の行に「test」など適当な文字列を記述して、意図的にエラーにしてみていただけますでしょうか。するとイベントログにエラーが渡るので、ログ末尾のbacktraceを見ると、エラーに至るまでの処理の流れとポイントを特定できると思います。
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r7ベータです

投稿記事 by min-o »

やってみました。イベントエラーログです。
----------------
エラー
イベントID 0
ソース Snippet - Wayfinder - Editing resource
日付 2012/10/02 12:08:13
ユーザー support
Undefined index: a
? MODX Parse Error ?
MODX encountered the following error while attempting to parse the requested resource:
? PHP Parse Error ?
PHP error debug
ErrorType[num] : PARSING ERROR[4]
File : /home/****/www/backup/manager/includes/document.parser.class.inc.php(1446) : eval()'d code
Line : 25
Source : Snippet
Basic info
REQUEST_URI : /manager/index.php?a=27&id=3123
Manager action : 27 - Editing resource
Current Snippet : Wayfinder
Referer : http://backup.****.co.jp/manager/index.php?a=1&f=tree
User Agent : Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
IP : 222.151.197.6
Parser timing
MySQL : 0.1635 s (19 Requests)
PHP : 1.5249 s
Total : 1.6884 s

Backtrace
1 include_once() manager/index.php on line 248
2 renderFormElement() manager/actions/mutate_content.dynamic.php on line 791
3 ParseIntputOptions() manager/includes/tmplvars.inc.php on line 120
4 parseDocumentSource() manager/includes/tmplvars.inc.php on line 337
5 evalSnippets() manager/includes/document.parser.class.inc.php on line 1898
6 _get_snip_result() manager/includes/document.parser.class.inc.php on line 1515
7 evalSnippet() manager/includes/document.parser.class.inc.php on line 1599

Output:

Parse error: syntax error, unexpected T_VARIABLE in /home/****/www/backup/manager/includes/document.parser.class.inc.php(1446) : eval()'d code on line 25
----------------

リソース編集画面はシステム警告がずらっと出てOKを押すと
テンプレート変数のところに上記のエラーログが繰り返しでていますが、テンプレート変数自体はすべて表示されるようになりました。
エラーの出ているテンプレート変数を確認したところ
Check Boxタイプで入力時のオプションに
-----------
aaa==[[Wayfinder? startId=`813` &level=`1`]]
-----------
という形式で書いているものばかりでした…。ここでWayfinder使っていたのをすっかり忘れたorz
この書き方が美しくないのは重々承知ですが、初期に設定して他の方法を思いつかなかったためそのまま来てしまいました…。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r7ベータです

投稿記事 by yama »

ポイントを特定できました。添付のファイルを解凍してmanager/includes/ディレクトリ内に上書きしてみてください。

> aaa==[[Wayfinder? startId=`813` &level=`1`]]

こういう書き方を自然に処理できるように考えたのですが、少し工夫が必要ですね。今回は保留して元に戻します。
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r7ベータです

投稿記事 by min-o »

添付ファイルを上書きしたら、エラーもなくなり、テンプレート変数全て表示されました。
ありがとうございます。

他の機能も試してみて何かあったらまた書き込みます。

decriptionが複数行になったのは便利です^^
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
返信する