カスタムテンプレート変数が動かない  【解決済み】

質問全般・改善要望
返信する
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

カスタムテンプレート変数が動かない

投稿記事 by かわばた »

[サーバ]
 ホスト&契約タイプ:(自社サーバ)
 ネットワーク:(インターネット)
 Webサーバ:(わかりません)
 PHPバージョン:(5.2.10)
 DB:(mysql5.0.51a)
[modx]
 バージョン:(1.0.2J)

はじめまして。

以前、modx0.9.6.3で作成したサイトを今回1.0.2jにアップデートしたところ、
カスタムテンプレート変数が既定値から変更ができなくなってしまいました。
いままで入力していたデータも更新すると規定値に戻ってしまいます。

プラグイン、スニペットはほとんど最初から入っているものに追加していません。
[*content*]等のテンプレート変数は内容の変更が可能です。

xamppで同じデータのカスタムテンプレート変数は更新が可能です。

よろしくお願いします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: カスタムテンプレート変数が動かない

投稿記事 by sama55 »

かわばたさん、はじめまして。

まず最初に、ご質問の内容は下のトピックが妥当と思われます。この手の情報共有は大切ですので、サポート案件は今後こちらでお願いします。
サポート > インストール

さて、システム的な改造は施さずに素のまま0.9.6を使われているものと理解しました。最も気になるのがxampp環境で現象が再現しないことです。仮にサーバ(ApacheやPHP, MySQLなどの基盤部品)に依存した問題の可能性が高いと判断した場合は、当modxフォーラムのサポート範囲を超えますので、お役に立てない場合がありますことを予めご承知置きください。本件は0.9.6.X -> 1.0.2J へのアップグレード問題(障害)の可能性もあると思います。その可能性を念頭に置きつつ、幾つかヒアリングと試していただきたいことがあります。

【お聞きしたいこと】

1.インストール(アップグレード)操作

1.0.2Jのアップグレードを行った際に、部品の選択画面でチェック状態を何か変えましたでしょうか?

2.データベースツール(phpMyAdminなど)の使用経験

自社サーバとのことですが、phpMyAdminまたはそれに類するデータベースツールは使えますでしょうか?
データベース内でのテンプレート変数の状態(変化)を調べる場合は必須になりますので用意されることをお勧めします。

【試してみたいこと】

1.追加プラグインを停止してみる

1.0.2Jでは、新たなプラグインが幾つか追加されてます。
アップグレードする前には見たことがないプラグインはすべて無効にしてください(例:ManagerManagerなど)。
プラグインを無効にするには、編集を開始して、「プラグインの停止」をチェックします。

2.既存プラグインを停止してみる

同様の操作で、既存のプラグインを一つづづ無効にしつつ、現象が再現するか確認してください。

現時点で自分から言えることはこのぐらいでしょうか・・・
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない

投稿記事 by かわばた »

sama55 さん ありがとうございます!
原因がサーバにあるということがわかるだけでも
とても助かりますのでよろしくお願いします。

webサーバは先ほど調べましたが
Apache/2.2.8
OSはFreeBSD
でした。

>1.インストール(アップグレード)操作
チェック等の変更は行いませんでした。

>2.データベースツール(phpMyAdminなど)の使用経験
phpMyAdminは使えるようになっています。
データベースのインポート、エクスポート以外には使用したことがありません。


>プラグインを停止してみる
すべて停止してみましたが、現状と変わりがありませんでした。

サーバの問題だとはおもいますが、さらに調べることがあるでしょうか。
ご教授お願いします
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: カスタムテンプレート変数が動かない

投稿記事 by sama55 »

かわばたさんとほぼ同じローカル環境に0.9.6.3で作ったシステムがあったので、試しに1.0.2Jにアップグレードしてみましたが、仰るような現象は確認できませんでした。下の話をもう少し詳しくお願いできますか?
かわばた さんが書きました:カスタムテンプレート変数が既定値から変更ができなくなってしまいました。
いままで入力していたデータも更新すると規定値に戻ってしまいます。
問題となってるテンプレート変数のタイプは何ですか?(テキスト、オプションボタン、ラジオボタン、など)

問題が発生する操作は以下ですよね?
  1. 当該テンプレート変数が有効なテンプレートが適用されたドキュメントの編集を開始
  2. 編集画面の当該テンプレート変数を規定値以外のものに変更(テキストならば文字を増やす、ラジオボタンなら選択肢の変更)
  3. 保存ボタン押下
  4. 保存したドキュメントの編集を再度開始
  5. 当該テンプレート変数を見ると、2で変更したにも関わらず規定値に戻ってる
同じタイプの変数を追加して、変更操作を行った場合、現象が発生するか?

違うタイプの変数を追加して、変更操作を行った場合、現象が発生するか?

かわばた さんが書きました:[*content*]等のテンプレート変数は内容の変更が可能です。
上記と同じ操作でコンテンツをエディタから変更すると、その変更は正しく保存される。ということですよね?
かわばた さんが書きました:xamppで同じデータのカスタムテンプレート変数は更新が可能です。
ここで言う”同じデータ”とは、サーバ上の1.0.2Jを丸ごと(ファイル群とDBを)ダウンロードし、XAMPP環境で動くようにデータベース接続などを変更し、完全な複製サイトをローカル環境に再現してテストした結果、同一の現象が発生しなかった、ということを言ってますか?
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない

投稿記事 by かわばた »

sama55 さん
お手数かけてしまって申し訳ありません!

>問題となってるテンプレート変数
変数のタイプはどのタイプでも同じ状況です。
テンプレート変数で登録できるものはすべて動かない状況です。
以前よりtext,textarea,textarea(mini),richtext 以外はうまく動かず使用していませんでした。

>問題が発生する操作
この手順の通りで間違いありません。

>同じタイプの変数を追加して、変更操作を行った場合、現象が発生するか?
>違うタイプの変数を追加して、変更操作を行った場合、現象が発生するか?
試してみましたが、やはり同じ状況です。

>上記と同じ操作でコンテンツをエディタから変更すると、その変更は正しく保存される。ということですよね?
はい、その通りです。最初から用意されているテンプレート変数は正しく保存ができています。

>ここで言う”同じデータ”とは、サーバ上の1.0.2Jを丸ごと(ファイル群とDBを)ダウンロードし、XAMPP環境で動くようにデータベース接続などを変更し、完全な複製サイトをローカル環境に再現してテストした結果、同一の現象が発生しなかった、ということを言ってますか?
はい、その通りです。こちらでも変数をいくつか追加し、タイプを試してみましたが、こちらでは問題なく動作しました。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: カスタムテンプレート変数が動かない

投稿記事 by sama55 »

これまでのヒアリングで状況認識はほぼ一致しました。やはりサーバ(Apache, PHP, MySQLなど)に依存する問題のようですね。0.9.6.3と1.0.2Jのテンプレート変数まわりのソースを比較(diff)してみましたが、かなり変更が入ってて、ソースから怪しそうな箇所をピンポイントで絞り込むことはできませんでした。

問題の環境はファイアーウオールの内側でしょうから、外(ネット)から調べるわけにもいきませんしね。。。

「テンプレート変数を変更しても規定値になる」 理由をもう少し切り分けてみましょうか。

1.ライト/リードどちらの問題か

 1.書き込み側の問題 (画面から指定した値がDBに書き込まれてない)
 2.読み込み側の問題 (画面から指定した値がDBに書き込まれるが、表示時に規定値が上書きされる)

切り分ける方法は、テキスト形式のテンプレート変数(既存変数でも新規変数でもOK)にDB内で一意な文字列を設定して保存します(例:"ABCテストABC")。その後、phpMyAdminで設定した文字列(例:"ABCテストABC")を検索します。ヒットしなければ1.、ヒットすれば2.ということに・・・

2.規定値がない場合はどうなるか

テンプレート変数の規定値を空にして変更操作した場合、変更値は正しく保存されるか。
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない

投稿記事 by かわばた »

sama55 さん
ありがとうございます

試してみましたが
>1.ライト/リードどちらの問題か
個別ページからカスタムテンプレート変数を「321654987(最初に設定したもの)」から「123456789」に変更
→DB内で検索
→→ありませんでした。

>テンプレート変数の規定値を空にして変更操作した場合、変更値は正しく保存されるか。
試してみましたが、値を入れてみても空のままでした。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: カスタムテンプレート変数が動かない

投稿記事 by sama55 »

了解です。
ドキュメント編集画面でテンプレート変数を変更しても、データベースに反映されない」ということですね。

あくまで想像ですが、以下の原因が考えられると思います。

 1.管理画面フォームに対する入力値が無視される(消え去る)
 2.管理画面フォームに対する入力値が規定値で上書きされてDBに保存される
 3.DBに対するSQL(アップデート/インサート文)がこけて、実行されてない

ローカル環境で再現しないことを考え合わせると3が濃厚な気がします。一つの可能性ですが、1.0.0~1.0.2の間で、テンプレート変数の更新処理(SQL文)が比較的新しい(V5.1以上の?)DB専用の構文に書き換えられたため、かわばたさんのリモートサーバのMySQLバージョンでは実行できない(スルーされる)が、ローカルのMySQLでは実行できる、という状態も考えられます。

リモートMySQLサーバ : 5.0.51a
ローカルMySQLサーバ : 5.1.33 (XAMPP 1.7.1の場合) / 5.1.37 + PBXT engine (XAMPP 1.7.2の場合)

ちなみに、modxのエラーログ(リポートメニューにあります)や、MySQLのログを見ることはできますか?


開発の皆さんいかがでしょう?
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: カスタムテンプレート変数が動かない

投稿記事 by sama55 »

迂闊でした。。。やはりMySQLのバージョンがまずいようです。
http://modxcms.com/learn/general-requirements.html

excludes version 5.0.51 : 5.0.51は除く。。。
MySQL 5.0.67 or later : MySQL 5.0.67以上のバージョンが必要

0.9.6.3時代からこうであったかは不明ですが、恐らくMySQLをバージョンアップすれば問題は解決しそうです。
ただ、他のアプリもあるでしょうから、バージョンアップの判断迷いますね。。。
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない

投稿記事 by かわばた »

sama55 さん
ありがとうございます!

MySQLですか‥ 特に問題ないかなと思ってアップグレードしてしまったのはまずかったですね。
管理者と相談してみて問題なければMySQLのバージョンアップをしてみたいとおもいます。

正常に動けば、またここに報告したいと思います。
動かない場合も、申し訳ないのですが、またよろしくお願いします

ありがとうございました!
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: カスタムテンプレート変数が動かない

投稿記事 by sama55 »

本件、0.9.Xユーザーが1.0.Xにアップグレードする際のつまづきやすいポイントに思えます。
類似問題でお困りの方に役立つと思いますので、下の公開フォーラムに移動させていただきました;)
サポート > インストール
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない

投稿記事 by かわばた »

公開フォーラムに移動させたいのですが
トピックの移動はどのような操作を行えばよいでしょうか?
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: カスタムテンプレート変数が動かない

投稿記事 by soushi »

soushiです。

一点だけ補足します。
mysql5.0.51にはGROUP BYと一緒に使う事でORDER BYが無視されるという致命的なバグがあります。
(カスタムテンプレート変数が動かない事との関連性は定かではないですが…)
modxに限らず他のアプリケーションもこのバグの影響を受ける可能性が非常に高いので、可能でしたらバージョンアップを検討したほうがいいかと思います :)

参考までにその時のバグチケットです。

http://bugs.mysql.com/bug.php?id=32202
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない

投稿記事 by かわばた »

sama55 さん
トピック移動の件ありがとうございました!

soushi さん
ありがとうございます!
この点もサーバ管理者に伝えて早めに変更できるようにしたいと思います。
かわばた
メンバー
メンバー
記事: 8
登録日時: 2009年11月12日(木) 10:36

Re: カスタムテンプレート変数が動かない  【解決済み】

投稿記事 by かわばた »

mysqlのアップグレードを行いましたが、うまく動かず、色々と確認してみたのですが、、、
manager/processorsがうまくアップされていないのが原因でした。

本当に初歩的なミスで申し訳ありませんでした。
返信する