新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

質問全般・改善要望
返信する
yamada-pon
メンバー
メンバー
記事: 22
登録日時: 2012年9月06日(木) 15:54

新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yamada-pon »

いつもお世話になっております。

modxのインストール時にtinymceやmetaタグなどのテンプレート変数を同時にインストールするか
選べるのですが、それを選択しても、インストール後のサイトに反映されておりません。

MODX Evolution 1.0.14J-r6 、そして最新のベータ版で同様の症状がでております。

なお、/assets/plugins にはしっかりとtiny_mce等も転送されておりました。

-----
ご利用のサーバ:
MODXのバージョン:MODX Evolution 1.0.14J-r6
PHPのバージョン:PHP Version 5.3.3
MySQLのバージョン:5.1.73
ブラウザ:
-----
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yama »

サーバは何をお使いでしょうか?試用できるレンタルサーバであれば実際に試して修正してみます。
yamada-pon
メンバー
メンバー
記事: 22
登録日時: 2012年9月06日(木) 15:54

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yamada-pon »

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

サーバーについては専用サーバーを使用しており、ディストリはScientific Linux 6.2です。
既に以前から稼働させているMODX 1.0.12Jでは正常にインストールできておりましたので、
もう一度勘違いでないか確かめて、同様の症状がでる場合にテスト環境を用意させていただき
内容確認をお願いしたいと思います。
yamada-pon
メンバー
メンバー
記事: 22
登録日時: 2012年9月06日(木) 15:54

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yamada-pon »

やはり同様の現象が再現されます。

MODX 1.0.12J以前のバージョンでは問題が再現されないようなので
少し緊急的な案件を抱えておりますので、こちらで制作を進めたいと思います。

直ぐにでもテスト環境をご用意したいのですが、年末年始は余裕がないので、落ち着きましたら
再度こちらでご連絡いたしますので、その際はよろしくお願いいたします。
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by noka »

本トピックスの症状に私も遭遇したので、(本来はバグ報告かとは思いますが)便乗します。
本件、

◎インストール実行前のフォルダ書き込み属性チェックでエラーが出た場合

に限って発生するようです。
ワークアラウンドは「もう一度インストーラーを実行して、エラー表示を出さずにインストールする」です。

新規インストール時、ディレクトリの書き込み権限や、configの用意を忘れることが多く、
新しく利用する人のほとんどはひっかかる感じになるかと思います。
※アップーデート時は(既に旧版などがインストールされているので)気付かずにそのままいっちゃう感じかもしれません。

で、原因ですが、チェック画面でインクルードされる
/install/action/summary.php
の5〜11行目で、

コード: 全て選択

$_SESSION['installdata'] = isset($_POST['installdata']) ? $_POST['installdata'] : '';
$_SESSION['template']    = isset($_POST['template'])    ? $_POST['template'] : '';
$_SESSION['tv']          = isset($_POST['tv'])          ? $_POST['tv'] : '';
$_SESSION['chunk']       = isset($_POST['chunk'])       ? $_POST['chunk'] : '';
$_SESSION['snippet']     = isset($_POST['snippet'])     ? $_POST['snippet'] : '';
$_SESSION['plugin']      = isset($_POST['plugin'])      ? $_POST['plugin'] : '';
$_SESSION['module']      = isset($_POST['module'])      ? $_POST['module'] : '';
とインストールする各種データを格納するのですが、POSTが無い場合は空になります。
再チェック時にはこれらはPOSTされていないので空っぽになってしまうために最終のインストールステップでスキップされているように思われます。

お役に立てば幸いです。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yama »

ありがとうございます、今回の情報をヒントに修正できそうに思いますので、修正できたら次のリリースに積み込みます
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by noka »

yama さま

いつもありがとうございます。
よろしくお願い致します。

フォーラムの過去トピックスをみたところ、
http://forum.modx.jp/viewtopic.php?f=7&t=1481
http://forum.modx.jp/viewtopic.php?f=7&t=1449
あたりも解消されるのではないかという気がします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yama »

http://forum.modx.jp/viewtopic.php?p=8075#p8075
ありがとうございます。たぶん上記のベータで解決できていると思うので、もしできれば確認いただけると助かります
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by noka »

Yamaさま

早速ありがとうございました。

確認したところ、インストールされない問題は解消されていました。
ただ、意図しないオプションがインストールされてしまうケースはありそうです。

●再現手順
------------------------------
1)インストールを進めて、オプションで全部選択する
2)チェック画面に進み、一度オプション選択画面へ戻る(気が変わった場合ですね)
3)テンプレートか、テンプレート変数か、チャンクか、モジュールのチェックを外す
4)再度チェック画面に進み、インストールを完了する
×)外したはずのテンプレートかテンプレート変数か、チャンク、モジュールがインストールされてしまっている。
(プラグイン/スニペットの場合は大体大丈夫ですが、一度何かにチェックを入れると「すべてのチェックを外すことはできなくなる」感じです)
------------------------------
★4)の後に、再度オプション選択画面に戻ると、外したはずのオプションが復活していることを確認できると思います。

これは、選択肢が一つだけ(テンプレート、テンプレート変数、チャンク、モジュール)のオプションにおいて、チェックボックスにチェックが無いと、そもそも$_POST['template']などがセットされないので$_SESSION['template']などがそのまま利用されるという、フォーム処理でよくハマる現象ではないかと思います。


以上、よろしくお願い致します。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yama »

summary.zip
(2.89 KiB) ダウンロード数: 563 回
検証ありがとうございます。あまりきれいな書き方じゃないですが、こちらに差し替えてみるとどうでしょう?
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by noka »

yamaさま

アップ頂いたsummary.phpを差替えてみましたところ、今度は最初の問題が再発してしまうようです。
アップファイルをお間違えかもしれません。
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by noka »

yamaさま

アップいただいたsummary.phpを拝見しまして、ちょっと考えてみましたが、
遷移元がoptionsの時だけ$_POSTを再取得すれば良いのでしたら、

コード: 全て選択

if($prevAction ==="options"){
	$_SESSION['installdata'] = isset($_POST['installdata']) ? $_POST['installdata'] : '';
	$_SESSION['template']    = isset($_POST['template'])    ? $_POST['template']    : '';
	$_SESSION['tv']          = isset($_POST['tv'])          ? $_POST['tv']          : '';
	$_SESSION['chunk']       = isset($_POST['chunk'])       ? $_POST['chunk']       : '';
	$_SESSION['snippet']     = isset($_POST['snippet'])     ? $_POST['snippet']     : '';
	$_SESSION['plugin']      = isset($_POST['plugin'])      ? $_POST['plugin']      : '';
	$_SESSION['module']      = isset($_POST['module'])      ? $_POST['module']      : '';
}
とif文追加したら、いけそうな気がしました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by yama »

そのほうが分かりやすくてよいですね。

コード: 全て選択

if($prevAction ==='options'){
	$_SESSION['installdata'] = isset($_POST['installdata']) ? $_POST['installdata'] : array();
	$_SESSION['template']    = isset($_POST['template'])    ? $_POST['template']    : array();
	$_SESSION['tv']          = isset($_POST['tv'])          ? $_POST['tv']          : array();
	$_SESSION['chunk']       = isset($_POST['chunk'])       ? $_POST['chunk']       : array();
	$_SESSION['snippet']     = isset($_POST['snippet'])     ? $_POST['snippet']     : array();
	$_SESSION['plugin']      = isset($_POST['plugin'])      ? $_POST['plugin']      : array();
	$_SESSION['module']      = isset($_POST['module'])      ? $_POST['module']      : array();
}
一部修正しました。これでどうでしょう?
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

Re: 新規インストール時、プラグインや変数等のプリインストールオプションが反映されない

投稿記事 by noka »

yamaさま

再度、summary.phpを差替えて試したところ、問題無いようです。

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