ブログ記事表示プラグインのエラーについて 投稿する

投稿者:machi  投稿日時:2024-06-07 16:47:44
soyshopでブログ記事表示プラグインをインストールして、ブログ記事表示設定をクリックするとエラーが出たので、soycmsをversion: 3.15.16に soyshopを2.10.15 にバージョンアップしました。 最初はブログ記事表示設定画面が出たのですが、ページIDの選択に該当のブログが表示されていなかったので、違う操作をしたところすぐに下記のようなエラー表示がされました。

Notice: Trying to access array offset on value of type null in /home/users/0/***/web/******/soy/soyshop/webapp/src/module/plugins/parts_entry_import/config/EntryImportConfigPage.class.php on line 52

何が問題なのでしょうか。よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-06-07 17:31:06
/home/users/0/***/web/******/soy/soyshop/webapp/src/module/plugins/parts_entry_import/config/EntryImportConfigPage.class.php on line 52

$this->addLabel("site", array(
	"html" => self::getSiteForm(self::getSiteList(), $config["siteId"])
));

$this->addLabel("site", array(
	"html" => self::getSiteForm(self::getSiteList(), $siteCnfId)
));
に変更にしてください。
投稿者:machi  投稿日時:2024-06-08 08:38:26
早速お返事をいただきありがとうございます。
変更後、ブログ記事表示設定は無事完了し記事もページに反映されたのですが、ページ上部に下記のようなエラーメッセージが表示されています。

Warning: Use of undefined constant CMS_PAGE_PLUGIN - assumed 'CMS_PAGE_PLUGIN' (this will throw an Error in a future version of PHP) in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 167

Warning: scandir(CMS_PAGE_PLUGIN): failed to open dir: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 168

Warning: scandir(): (errno 2): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 168

Warning: Invalid argument supplied for foreach() in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 170

Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695

PHPの問題なのでしょうか
投稿者:齋藤毅  投稿日時:2024-06-09 05:28:26
/home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php
の167行目付近の
$dir = CMS_PAGE_PLUGIN;

$dir = (defined("CMS_PAGE_PLUGIN") && file_exists(CMS_PAGE_PLUGIN)) ? CMS_PAGE_PLUGIN : dirname(dirname(__FILE__))."/site_include/plugin/";
に変更してみてください。
投稿者:machi  投稿日時:2024-06-09 09:06:00
変更したところ、下記のような長めのメッセージが出ました。

Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 214

Warning: Use of undefined constant CMS_PAGE_PLUGIN - assumed 'CMS_PAGE_PLUGIN' (this will throw an Error in a future version of PHP) in /home/users/0/***/web/****/soy/common/site_include/func/plugin.php on line 9

Warning: scandir(CMS_PAGE_PLUGIN): failed to open dir: No such file or directory in /home/users/0/***/web/****/soy/common/site_include/func/plugin.php on line 10

Warning: scandir(): (errno 2): No such file or directory in /home/users/0/***/web/****/soy/common/site_include/func/plugin.php on line 10

Warning: Invalid argument supplied for foreach() in /home/users/0/***/web/****/soy/common/site_include/func/plugin.php on line 11

Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 214

Warning: file_put_contents(/.cache/plugin/activelist.log): failed to open stream: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 209

Warning: file_get_contents(/.cache/plugin/activelist.log): failed to open stream: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 191


この後、下記のメッセージが同じもので118行出ています。
Warning: array_search() expects parameter 2 to be array, bool given in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 185

最後少し離れたところに
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695

以上です。
投稿者:齋藤毅  投稿日時:2024-06-10 09:14:27
Warning: Use of undefined constant CMS_PAGE_PLUGIN - assumed 'CMS_PAGE_PLUGIN' (this will throw an Error in a future version of PHP) in /home/users/0/***/web/****/soy/common/site_include/func/plugin.php on line 9
上記の内容を修正したものをダウンロード出来るようにしました。
下記のページからダウンロードできますので、こちらを試していただき、残ったエラーをお伝えください。
https://saitodev.co/soycms/soycms/
投稿者:machi  投稿日時:2024-06-10 12:04:31
残っているのは

Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 214

Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 214

Warning: file_put_contents(/.cache/plugin/activelist.log): failed to open stream: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 209

Warning: file_get_contents(/.cache/plugin/activelist.log): failed to open stream: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 191

Warning: array_search() expects parameter 2 to be array, bool given in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 185 (これが102個)

最後少し離れたところに
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695

以上です。
投稿者:齋藤毅  投稿日時:2024-06-10 12:34:21
/CMSインストールディレクトリ/soyshop/webapp/src/module/plugins/parts_entry_import/soyshop.site.beforeoutput.php
の18行目の
$site = EntryImportUtil::getSite($siteId);

$site = EntryImportUtil::getSite($siteId);

// 連携したショップの_SITE_ROOT_を定義しておく
if(strlen($siteId) && !defined("_SITE_ROOT_") && file_exists($_SERVER["DOCUMENT_ROOT"].$siteId."/index.php")){
	define("_SITE_ROOT_", $_SERVER["DOCUMENT_ROOT"].$siteId);
}
のように三行のコードを追加してみてください。
投稿者:machi  投稿日時:2024-06-10 13:44:12
前回と同じ状態です。

Warning: array_search() expects parameter 2 to be array, bool given in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 185 は 112行になりました。
投稿者:齋藤毅  投稿日時:2024-06-10 14:36:37
/home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php
の214行目にあります
if(!file_exists($dir)) mkdir($dir);
の上に
var_dump($dir);
if(!file_exists($dir)) mkdir($dir);
を追加して、エラーメッセージよりも上に表示される値をお伝え下さい。
新たに表示された値が確認できましたら、今回追加したコードを削除して、値を表示されないようにしてください。
投稿者:machi  投稿日時:2024-06-10 15:03:09
215と216が出ました。
投稿者:齋藤毅  投稿日時:2024-06-10 15:09:16
想定していない値でした。

想定していた値は
/home/users/0/***/web/****/サイトID/.cache/
になるのですが、このような値が何処かに出力されていませんか?
投稿者:machi  投稿日時:2024-06-10 15:28:47
すみません。
string(15) "/.cache/plugin/"
というのが2か所に出ていました。
このような状態です。
string(15) "/.cache/plugin/"
Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 215

/home/users/0/***/web/****/サイトID/.cache/ は出ていません。
投稿者:齋藤毅  投稿日時:2024-06-10 15:31:59
string(15) "/.cache/plugin/"
上記の値が得られたことで原因がわかりました。

上記の値であれば、先程対応していただきました
// 連携したショップの_SITE_ROOT_を定義しておく
if(strlen($siteId) && !defined("_SITE_ROOT_") && file_exists($_SERVER["DOCUMENT_ROOT"].$siteId."/index.php")){
	define("_SITE_ROOT_", $_SERVER["DOCUMENT_ROOT"].$siteId);
}
で解決するはずですが、こちらのコードは間違いなく挿入されていますか?

もし、このコードを挿入しても問題が解決しない場合は、ブログ記事表示プラグインのサイトの設定が未設定のままである可能性があります。
投稿者:machi  投稿日時:2024-06-10 16:00:17
soyshop.site.beforeoutput.php の 指定されたコードは間違っていませんでした。

ブログ記事表示設定のサイトIDの選択、ページIDの選択もされていましたが、

12:04:31の投稿内容が表示されています。
投稿者:齋藤毅  投稿日時:2024-06-10 17:31:22
soyshop.site.beforeoutput.php の 指定されたコードは間違っていませんでした。
上記のご確認をありがとうございます。

こちらでは想定していない設定をされているかもしれませんので、確度を上げたコードに書き換えてみます。
対応できましたら、改めて投稿します。
投稿者:machi  投稿日時:2024-06-10 17:45:37
よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-06-10 17:48:13
/CMSインストールディレクトリ/soyshop/webapp/src/module/plugins/parts_entry_import/soyshop.site.beforeoutput.php
上記のファイルで先程挿入しました
// 連携したショップの_SITE_ROOT_を定義しておく
if(strlen($siteId) && !defined("_SITE_ROOT_") && file_exists($_SERVER["DOCUMENT_ROOT"].$siteId."/index.php")){
	define("_SITE_ROOT_", $_SERVER["DOCUMENT_ROOT"].$siteId);
}

// 連携したショップの_SITE_ROOT_を定義しておく
if(!defined("_SITE_ROOT_") && strlen($siteId)){
	$shopSiteRoot = dirname(SOYSHOP_SITE_DIRECTORY)."/".$siteId;
	if(file_exists($shopSiteRoot."/index.php")){
		define("_SITE_ROOT_", $shopSiteRoot);
	}
}
に変更したら如何でしょうか?
投稿者:machi  投稿日時:2024-06-10 18:12:27
長い警告メッセージは消えて、ページ上に青い文字で下記の警告メッセージが残りました。

Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
投稿者:齋藤毅  投稿日時:2024-06-11 05:20:11
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
こちらは少し離れたところでエラーが表示されているということでしたが、block:idもしくは、shop:moduleで囲っている箇所でエラーになっていると予想しています。

テンプレートから該当する箇所のHTMLをピックアップしてお伝えください。
投稿者:machi  投稿日時:2024-06-11 07:01:52
お手数をお掛けします。

該当のHTMLは
<div>
<h2>○○にゅーす</h2>
<section>
<!-- block:id="entry_list" -->
<h2 cms:id="title">タイトルを表示します</h2>
<div cms:id="content">本文を表示します</div>
<div cms:id="more">追記を表示します</div>
<div cms:id="create_date" cms:format="Y-m-d">日付を表示します</div>
<!-- /block:id="entry_list" -->
</section>
</div>

今、ページを確認したところ、どうした訳か投稿日時:2024-06-10 12:04:31の内容に戻っていました。
そこで、ブログ記事表示プラグインをアンインストールしてからページのソースを確認してみると下記の通りでした。
<div>
	<h2>○○にゅーす</h2>
			 <section>
<br />
<b>Notice</b>:	Undefined index: entry_list in <b>/home/users/0/takix/web/matsuhashi-ringoen/shop/.cache/cache__home_page__page_1abd861832ac9a82df114ce64f4e5cff_.html.php</b> on line <b>250</b><br />
<br />
<b>Warning</b>:	Invalid argument supplied for foreach() in <b>/home/users/0/takix/web/matsuhashi-ringoen/shop/.cache/cache__home_page__page_1abd861832ac9a82df114ce64f4e5cff_.html.php</b> on line <b>250</b><br />

	
	</section>
</div>
よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-06-11 09:08:54
<div>
	<h2>○○にゅーす</h2>
			 <section>
<br />
<b>Notice</b>:	Undefined index: entry_list in <b>/home/users/0/takix/web/matsuhashi-ringoen/shop/.cache/cache__home_page__page_1abd861832ac9a82df114ce64f4e5cff_.html.php</b> on line <b>250</b><br />
<br />
<b>Warning</b>:	Invalid argument supplied for foreach() in <b>/home/users/0/takix/web/matsuhashi-ringoen/shop/.cache/cache__home_page__page_1abd861832ac9a82df114ce64f4e5cff_.html.php</b> on line <b>250</b><br />

	
	</section>
</div>
こちらはブログ記事表示プラグインをアンインストールした状態でキャッシュを削除せずにページを表示すると発生するエラーです。

Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
の方ですが、SOY CMSでページカスタムフィールドかSOY CMSいいねボタンを有効にしていますか?
投稿者:machi  投稿日時:2024-06-11 15:14:57
キャッシュ削除の件 確認できました。

SOY CMSでページカスタムフィールドかSOY CMSいいねボタンを有効にしていますか?
これはどのように確認したらよろしいのでしょうか
投稿者:齋藤毅  投稿日時:2024-06-11 15:26:57
連携しているSOYCMSの方のサイトの管理画面に入り、プラグインの画面を開き、有効になっているプラグインをご確認ください
投稿者:machi  投稿日時:2024-06-11 17:28:42
ページカスタムフィールドはアクティブにはなっていません。SOY CMSいいねボタンはどのプラグインでしょうか。

又、ちょっとおかしなところが出てきたのですが、お問い合わせフォームのページに下記のようなものが出ていました。
Notice: Trying to access array offset on value of type null in /home/users/0/***/web/****/soy/app/webapp/inquiry/src/columns/TelephoneColumn.class.php on line 30

Notice: Trying to access array offset on value of type null in /home/users/0/***/web/****/soy/app/webapp/inquiry/src/columns/TelephoneColumn.class.php on line 32
Notice: Trying to access array offset on value of type null in /home/users/0/***/web/****/soy/app/webapp/inquiry/src/columns/TelephoneColumn.class.php on line 34

ちょっと何が何だか分からなくなっています。
すみません。
投稿者:齋藤毅  投稿日時:2024-06-11 18:23:44
SOY CMSいいねボタンはどのプラグインでしょうか
SOY CMSの方のサイトにあります。
わからなければ有効になっていないと思います。

Notice: Trying to access array offset on value of type null in /home/users/0/***/web/****/soy/app/webapp/inquiry/src/columns/TelephoneColumn.class.php on line 30
上記のエラーはSOY Inquiryを最新版にすれば消えるはずです。
投稿者:齋藤毅  投稿日時:2024-06-11 18:35:46
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
の件ですが、上のパスのファイルを編集して、エラーが出ないようにしてみます。
投稿者:齋藤毅  投稿日時:2024-06-11 20:12:02
/home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php
の2695行目に
if(session_status() == PHP_SESSION_NONE) session_start();
というコードがありまして、この箇所を
var_dump(session_status());
var_dump(PHP_SESSION_DISABLED);
var_dump(PHP_SESSION_NONE);
var_dump(PHP_SESSION_ACTIVE);
if(session_status() == PHP_SESSION_NONE) session_start();
にした後、ページを開き
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
この行の上に出力される値を教えてください。
投稿者:machi  投稿日時:2024-06-12 07:27:15
ページにエラーメッセージだけが出ていて
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
の部分は無いので、一番下に出ている部分を張り付けてみます。
Fatal error: Uncaught Error: Class 'EntryAttribute' not found in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php:138 Stack trace: #0 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(6813): EntryListComponent->populateItem(Object(Entry), NULL, -1, 1) #1 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(6778): HTMLList->populateItemImpl(Object(HTMLList_DummyObject), NULL, -1, 1) #2 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(7007): HTMLList->execute() #3 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(7025): HTMLPage->add('entry_list', Object(EntryListComponent)) #4 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/soyshop.site.beforeoutput.php(37): HTMLPage->createAdd('entry_list', 'EntryListCompon...', Array) #5 /home/users/0/***/web/**** in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php on line 138
以上です。
投稿者:machi  投稿日時:2024-06-12 07:33:36
次にSOY Inquiryの件ですが、1.297.51 から 2.8.7 へバージョンアップしました。
ページには以下のエラーが出ていました。
Warning: Use of undefined constant SOYSHOP_SITE_DSN - assumed 'SOYSHOP_SITE_DSN' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 89

Warning: Use of undefined constant SOYSHOP_SITE_USER - assumed 'SOYSHOP_SITE_USER' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 90

Warning: Use of undefined constant SOYSHOP_SITE_PASS - assumed 'SOYSHOP_SITE_PASS' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 91
そこで、「SOY Inquiry2.3以降のバージョンにバージョンアップする際の注意点」の修正するファイルを探したのですが有りません。
/CMSインストールディレクトリ/app/webapp/inquiry/src/template/custom/form.php
/CMSインストールディレクトリ/app/webapp/inquiry/src/template/custom/confirm.php
/template の下には customフォルダーは無く、_sample  bootstrap  default  mobile  responsive の5つのフォルダーしかありません。
投稿者:齋藤毅  投稿日時:2024-06-12 09:09:55
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
session_start関連のエラーの件ですが、指定の通りにファイルを編集すれば上のエラーの上に必ず整数値が4個以上出力されることになっています。

出力されていないのであれば、管理画面でキャッシュの削除を行ってから再度表示のご確認をお願いします。
投稿者:齋藤毅  投稿日時:2024-06-12 09:10:52
Fatal error: Uncaught Error: Class 'EntryAttribute' not found in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php:138 Stack trace: #0 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(6813): EntryListComponent->populateItem(Object(Entry), NULL, -1, 1) #1 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(6778): HTMLList->populateItemImpl(Object(HTMLList_DummyObject), NULL, -1, 1) #2 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(7007): HTMLList->execute() #3 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(7025): HTMLPage->add('entry_list', Object(EntryListComponent)) #4 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/soyshop.site.beforeoutput.php(37): HTMLPage->createAdd('entry_list', 'EntryListCompon...', Array) #5 /home/users/0/***/web/**** in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php on line 138
の件ですが、
/home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php
の135行目の
$objects = (is_numeric($entity->getId())) ? self::_getThumbnailValues($entity->getId()) : array();

$objects = (is_numeric($entity->getId())) ? self::_getThumbnailValues($entity->getId()) : array();
if(!class_exists("EntryAttribute")) SOY2::import("domain.cms.EntryAttribute");
に修正してください。
投稿者:齋藤毅  投稿日時:2024-06-12 09:13:17
「SOY Inquiry2.3以降のバージョンにバージョンアップする際の注意点」の修正するファイルを探したのですが有りません。
ですが、customの箇所をご利用中のフォームIDに変えてファイルを探してください。

フォームIDというのは、フォーム箇所のテンプレートの修正【要PHP】 - SOY Inquiryを使ってみように記載されているデザインのセレクトボックスを指します。
投稿者:齋藤毅  投稿日時:2024-06-12 09:29:55
Warning: Use of undefined constant SOYSHOP_SITE_DSN - assumed 'SOYSHOP_SITE_DSN' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 89
上記のエラーですが、SOY CMSのサイトでSOY Shop連携プラグインを使用していますか?
投稿者:machi  投稿日時:2024-06-12 12:15:11
留守にしておりました。
申し訳ありません。
午後、順次作業してまいります。
投稿者:machi  投稿日時:2024-06-12 15:25:56
まず
Fatal error: Uncaught Error: Class 'EntryAttribute' not found in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php:138 Stack trace: #0 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(6813): EntryListComponent->populateItem(Object(Entry), NULL, -1, 1) #1 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(6778): HTMLList->populateItemImpl(Object(HTMLList_DummyObject), NULL, -1, 1) #2 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(7007): HTMLList->execute() #3 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php(7025): HTMLPage->add('entry_list', Object(EntryListComponent)) #4 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/soyshop.site.beforeoutput.php(37): HTMLPage->createAdd('entry_list', 'EntryListCompon...', Array) #5 /home/users/0/***/web/**** in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/component/EntryListComponent.class.php on line 138
の件ですが無事消えました。 そのおかげで
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
の前に
int(1) int(0) int(1) int(2)
となっているのが見えました。
投稿者:齋藤毅  投稿日時:2024-06-12 15:32:37
出力された数字から、セッション自体は動作しているようですが、値の保持ができていないかもしれません。

エラーが出ているページで、SOY Inquiryのフォームも一緒に設置していませんか?
投稿者:machi  投稿日時:2024-06-12 15:43:05
次に
Warning: Use of undefined constant SOYSHOP_SITE_DSN - assumed 'SOYSHOP_SITE_DSN' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 89

Warning: Use of undefined constant SOYSHOP_SITE_USER - assumed 'SOYSHOP_SITE_USER' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 90
Warning: Use of undefined constant SOYSHOP_SITE_PASS - assumed 'SOYSHOP_SITE_PASS' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 91
の件なのですが、これはCMSの方に組み込んだもので、SOY Shop連携プラグインは使用していませんでした。
改めてアクティブにしたのですが、何も変わりはありませんでした。
投稿者:machi  投稿日時:2024-06-12 16:01:50
出力された数字から、セッション自体は動作しているようですが、値の保持ができていないかもしれません。
エラーが出ているページで、SOY Inquiryのフォームも一緒に設置していませんか?

これはありません。
投稿者:齋藤毅  投稿日時:2024-06-12 17:12:43
Warning: Use of undefined constant SOYSHOP_SITE_DSN - assumed 'SOYSHOP_SITE_DSN' (this will throw an Error in a future version of PHP) in /home/users/0/takix/web/matsuhashi-ringoen/soy/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php on line 89
上記の件ですが、設置しているフォームでSOY Shop連携の設定が外れていないか?の確認をしてみてください。

もし、連携の設定がされていた場合は、
/CMSインストールディレクトリ/app/webapp/inquiry/src/util/SOYInquiryUtil.class.php
の66行目の
if(!defined("SOYSHOP_SITE_DIRECTORY")) {

if(!defined("SOYSHOP_SITE_DIRECTORY") || !defined("SOYSHOP_SITE_DSN")) {
にしてみてください。
投稿者:齋藤毅  投稿日時:2024-06-12 17:17:47
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
の件ですが、
/home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php
の2695行目の
if(session_status() == PHP_SESSION_NONE) session_start();

if(session_status() == PHP_SESSION_NONE && strlen(session_id()) === 0) session_start();
に変更したら如何でしょうか?
投稿者:machi  投稿日時:2024-06-12 17:41:50
フォームでSOY Shop連携されていなかったので連携させました。
無事に問題解決です。
お手数をお掛けしました。
次の問題に向かいます。
投稿者:machi  投稿日時:2024-06-12 18:05:33
Warning: session_start(): Cannot start session when headers already sent in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.php on line 2695
の件ですが、2695行目となっていましたが、入ってみましたら2699行目に該当部分が有りましたので変更しました。
只、lineの部分が 2699となっただけで変化はありません。
投稿者:齋藤毅  投稿日時:2024-06-12 18:22:42
今回のコードで解決しないのであれば、テンプレートの記述で何処かに誤りがありそうです。
エラーメッセージだけでは判断出来ませんので、テンプレートの方で記述に誤りがないか?を探してみてください。

今回のエラーの原因については下記の記事がわかりやすいです。
【PHP_エラー】session_start前に何かを出力した際に発生するエラー #PHP - Qiita
投稿者:machi  投稿日時:2024-06-12 19:04:06
問題解決まで、時間をかけてじっくりと探ってみます。

ご丁寧に対応していただき本当にありがとうございました。

今後もよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-06-17 12:29:11
今回の内容と直接関係ないですが、モジュール版ブログ記事表示プラグインを作成しました。
詳しくは下記のURLに記載がありますが、既存のブログ記事表示プラグインはブログ記事用のブロックを設置していないページでも何らかの処理が実行されるという仕様になっていまして、モジュール版では解決されています。
SOY Shopでモジュール版ブログ記事表示プラグインを作成しました - saitodev.co

もし、モジュール版に切り替える場合は、テンプレートに記述するタグが異なりますので、プラグインの詳細画面に記載されている内容をご確認ください。
投稿者:machi  投稿日時:2024-06-18 16:35:19
ご連絡いただきましてありがとうございます。

モジュール版ブログ記事表示プラグインを利用したところ下記のエラーが表示されています。
Fatal error: Uncaught TypeError: Argument 1 passed to SOY2DAOConfig::user() must be of the type string, null given, called in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/soycms_connector/component/SOYShop_SOYCMSPageModulePlugin.class.php on line 51 and defined in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.min.php:1353 Stack trace: #0 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/soycms_connector/component/SOYShop_SOYCMSPageModulePlugin.class.php(51): SOY2DAOConfig::user(NULL) #1 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/soycms_connector/soyshop.site.onload.php(18): SOYShop_SOYCMSPageModulePlugin::prepare(true) #2 /home/users/0/***/web/****/soy/soyshop/webapp/src/logic/plugin/extensions/soyshop.site.onload.php(22): SOYCMSConnectorOnLoad->onLoad(Object(_home_page)) #3 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.min.php(8290): SOYShop in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.min.php on line 1353

先の問題を解決しようと、順番を前後して書き換えをしていましたが、その中で問題が有ったのかもしれません。
又、お手数をお掛けして申し訳ありませんがよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2024-06-18 17:40:29
今回のエラーはSOY CMS連携プラグインのエラーになります。

/home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/soycms_connector/component/SOYShop_SOYCMSPageModulePlugin.class.php
の46行目にあります
$user = null;
$pass = null;

$user = "";
$pass = "";
に変更してください
投稿者:machi  投稿日時:2024-06-18 20:51:58
$user = "";
$pass = "";
に変更したところ下記のようなメッセージが出ています。
Fatal error: Uncaught TypeError: Argument 1 passed to SOY2DAOConfig::user() must be of the type string, null given, called in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/util/EntryImportUtil.class.php on line 57 and defined in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.min.php:1353 Stack trace: #0 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/util/EntryImportUtil.class.php(57): SOY2DAOConfig::user(NULL) #1 /home/users/0/***/web/****/soy/soyshop/webapp/src/module/site/common/entry_list_import.php(40): EntryImportUtil::switchSiteDsn('sqlite:/home/us...') #2 /home/users/0/***/web/****/shop/.cache/cache__home_page__page_1abd861832ac9a82df114ce64f4e5cff_.html.php(255): soyshop_entry_list_import('<!-- block:id="...', Object(_home_page)) #3 /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.min.php(4735): include('/home/users/0/t. in /home/users/0/***/web/****/soy/soyshop/webapp/lib/soy2_build.min.php on line 1353
投稿者:齋藤毅  投稿日時:2024-06-19 05:47:36
/home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/util/EntryImportUtil.class.php 
の52行目の
$user = null;
$pass = null;

$user = "";
$pass = "";
に変更してください。
投稿者:machi  投稿日時:2024-06-19 07:53:22
Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 214

Warning: mkdir(): No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 214

Warning: file_put_contents(/.cache/plugin/activelist.log): failed to open stream: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 209

Warning: file_get_contents(/.cache/plugin/activelist.log): failed to open stream: No such file or directory in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 191
Warning: array_search() expects parameter 2 to be array, bool given in /home/users/0/***/web/****/soy/common/util/CMSPlugin.class.php on line 185	 (この行が108個)

以上が表示されました。
投稿者:齋藤毅  投稿日時:2024-06-19 08:46:08
/home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/soycms_connector/component/SOYShop_SOYCMSPageModulePlugin.class.php
の70行目にあります
if(!defined("_SITE_ROOT_")) define("_SITE_ROOT_", $site->getPath());

// 連携したショップの_SITE_ROOT_を定義しておく
if(!defined("_SITE_ROOT_") && strlen($siteId)){
	$shopSiteRoot = dirname(SOYSHOP_SITE_DIRECTORY)."/".$siteId;
	if(file_exists($shopSiteRoot."/index.php")){
		define("_SITE_ROOT_", $shopSiteRoot);
	}
}
に変更したら如何でしょうか?
投稿者:machi  投稿日時:2024-06-19 18:22:28
Fatal error: Cannot declare class SOYCMSThumbnailPlugin, because the name is already in use in /home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/class/SOYCMSThumbnailPlugin.class.php on line 3
になりました。
投稿者:齋藤毅  投稿日時:2024-06-19 18:37:59
/home/users/0/***/web/****/soy/soyshop/webapp/src/module/plugins/parts_entry_import/util/EntryImportUtil.class.php
の184行目にあります
include_once(dirname(dirname(__FILE__)) . "/class/.class.php");

if(!class_exists("SOYCMSThumbnailPlugin")) include_once(dirname(dirname(__FILE__)) . "/class/.class.php");
に変更してみてください。
投稿者:machi  投稿日時:2024-06-20 06:34:45
成功です。
エラーメッセージはすべて消え、問題なく記事が表示されました。
懇切丁寧にご対応していただき本当にありがとうございました。感謝いたします。
今後ともどうぞよろしくお願いします。
ログインして投稿する