ページ雛形の作成で、2つ目を作成しようとするとエラーになる 投稿する
投稿者:りゅーと
投稿日時:2022-12-10 11:49:34
いつも開発、メンテナンスの継続、ありがとうございます。
稼働環境
PHP8.1.12
SOY CMS:version: 3.8.9
ページ雛形の新規作成をしていました。
このときのSOY CMSのバージョンは3.7.2です。
最初に、ブログページで作成したらエラーになりませんでした。
ところが、続けて標準ページで作成しようと思い、ページ雛形の新規作成 (1/5)で情報を入力し、
ページ雛形の種類で標準ページを選択して「次へ」をクリックしたところ、エラーになってしまいました。
バージョンが低いからかなと思い、バージョンアップして、SOY CMSのバージョンを3.8.9にしました。
これで、ページ雛形の新規作成で標準ページを作成したらエラーになりませんでした。
しかし、続けて標準ページで作成しようと思い、ページ雛形の新規作成 (1/5)で情報を入力し、
ページ雛形の種類で標準ページを選択して「次へ」をクリックしたところ、エラーになってしまいました。
エラー内容は下記になります。
多忙だと思いますので、おてすきのときに対処していただけたらと思います。
よろしくお願いいたします。
稼働環境
PHP8.1.12
SOY CMS:version: 3.8.9
ページ雛形の新規作成をしていました。
このときのSOY CMSのバージョンは3.7.2です。
最初に、ブログページで作成したらエラーになりませんでした。
ところが、続けて標準ページで作成しようと思い、ページ雛形の新規作成 (1/5)で情報を入力し、
ページ雛形の種類で標準ページを選択して「次へ」をクリックしたところ、エラーになってしまいました。
バージョンが低いからかなと思い、バージョンアップして、SOY CMSのバージョンを3.8.9にしました。
これで、ページ雛形の新規作成で標準ページを作成したらエラーになりませんでした。
しかし、続けて標準ページで作成しようと思い、ページ雛形の新規作成 (1/5)で情報を入力し、
ページ雛形の種類で標準ページを選択して「次へ」をクリックしたところ、エラーになってしまいました。
エラー内容は下記になります。
Fatal error: Uncaught Error: Attempt to assign property "template" on null in
/******/soycms/webapp/pages/Template/Create/_stage/StartStage.class.php:64 Stack trace: #0
/******/soycms/webapp/pages/Template/Create/IndexPage.class.php(17): StartStage->checkNext() #1
/******/common/lib/soy2_build.php(8139): IndexPage->doPost() #2
/******/common/base/CMSWebPageBase.class.php(160): WebPage->prepare() #3
/******/common/lib/soy2_build.php(8126): CMSWebPageBase->prepare() #4
/******/soycms/webapp/pages/Template/Create/IndexPage.class.php(50): WebPage->__construct() #5
/******/common/lib/soy2_build.php(5548): IndexPage->__construct(Array) #6
/******/common/lib/soy2_build.php(269): SOY2HTMLFactory::createInstance('IndexPage', Array) #7
/******/common/lib/soy2_build.php(236): SOY2PageController->execute() #8
/******/soycms/index.php(8): SOY2PageController::run() #9 {main} thrown in
/******/soycms/webapp/pages/Template/Create/_stage/StartStage.class.php on line 64
多忙だと思いますので、おてすきのときに対処していただけたらと思います。
よろしくお願いいたします。
投稿者:齋藤毅
投稿日時:2022-12-11 06:42:18
動作確認不十分の為、対処法のみお伝えします。
これで問題なければコードを整形して公開します。
の174目付近にあります/CMSインストールディレクトリ/soycms/webapp/pages/Template/Create/IndexPage.class.php
private function getWizardObject(){
$wizObj = SOY2ActionSession::getUserSession()->getAttribute("Template.Create.WizardObject");
if(is_null($wizObj)){
$wizObj = new StdClass();
}else{
$wizObj = unserialize($wizObj);
}
return $wizObj;
}
を
private function getWizardObject(){
$wizObj = SOY2ActionSession::getUserSession()->getAttribute("Template.Create.WizardObject");
if(is_string($wizObj) && strlen($wizObj) < 3) $wizObj = null; //変な文字列が入っている場合はnullにする
if(is_null($wizObj)){
$wizObj = new StdClass();
}else{
$wizObj = unserialize($wizObj);
}
return $wizObj;
}
に変更します。
これで問題なければコードを整形して公開します。
投稿者:りゅーと
投稿日時:2022-12-11 17:16:59
ありがとうごさいます。
早速コードを修正して検証したところ、問題なく動作確認できました。
お忙しい中、対応して頂きありがとうございました。
早速コードを修正して検証したところ、問題なく動作確認できました。
お忙しい中、対応して頂きありがとうございました。