サイト作成後にサンプルデータを読み込むを選ぶと、エラーが出る 投稿する

投稿者:りゅーと  投稿日時:2022-11-16 09:59:23
開発、メンテナンスの継続、ありがとうございます。

稼働環境
PHP:version: 8.1.6
SOY CMS:version: 3.7.1

サイトを作成した後に、「作りたいサイトが決まっている方」と「とにかくSOY CMSを触ってみたい方」の選択画面で、「とにかくSOY CMSを触ってみたい方」を選び、次の画面の「サンプルデータを使う」で情報を入力し「サンプルデータを読み込む」をクリックすると、以下のような「致命的なエラーが発生しました」と表示されます。

Fatal error: Uncaught TypeError: EntryLogic::setEntryLabel(): Argument # ($labelId) must be of type int, null given, called in
 /*****/soycms/common/logic/site/Init/CreateSampleLogic.class.php on line 138 and defined in
 /*****/soycms/common/logic/site/Entry/EntryLogic.class.php:295 Stack trace: #0
 /*****/soycms/common/logic/site/Init/CreateSampleLogic.class.php(138): EntryLogic->setEntryLabel(1, NULL) #1
 /*****/soycms/soycms/webapp/pages/Init/CreateSamplePage.class.php(15): CreateSampleLogic->createSampleData() #2
 /*****/soycms/common/lib/soy2_build.php(8139): CreateSamplePage->doPost() #3
 /*****/soycms/common/base/CMSWebPageBase.class.php(160): WebPage->prepare() #4
 /*****/soycms/common/lib/soy2_build.php(8126): CMSWebPageBase->prepare() #5
 /*****/soycms/soycms/webapp/pages/Init/CreateSamplePage.class.php(60): WebPage->__construct() #6
 /*****/soycms/common/lib/soy2_build.php(5548): CreateSamplePage->__construct(Array) #7
 /*****/soycms/common/lib/soy2_build.php(269): SOY2HTMLFactory::createInstance('CreateSamplePag...', Array) #8
 /*****/soycms/common/lib/soy2_build.php(236): SOY2PageController->execute() #9
 /*****/soycms/soycms/index.php(8): SOY2PageController::run() #10
 {main} thrown in /*****/soycms/common/logic/site/Entry/EntryLogic.class.php on line 295

ここでエラー画面を閉じて、「作りたいサイトが決まっている方」の「ページの新規作成」をクリックしてとりあえずページを作成すると、公開側のトップページにサンプルデータのサイトが表示されます。

サンプルデータのサイトが表示されるので不具合とは言い切れないかもしれないのですが、このエラー画面が気になってしまいました。
可能であれば、対処していただけたらと思います。
投稿者:齋藤毅  投稿日時:2022-11-16 10:21:52
エラーのご連絡をありがとうございます。
本件はPHP8.1の対応漏れです。

次のバージョンで修正を反映します。

取り急ぎ修正方法ですが、
/*****/soycms/common/logic/site/Init/CreateSampleLogic.class.php の 138行付近にあります
$entrylogic->setEntryLabel($entryid,$labelid);

$entrylogic->setEntryLabel($entryid,(int)$labelid);
にすればエラーは消えるはずです。
投稿者:りゅーと  投稿日時:2022-11-17 06:27:24
回答、ありがとうございます。

ファイルを修正したところ、サンプルデータが読み込まれました。

素早い対応、ありがとうございます。
ログインして投稿する