soyshop 商品詳細ページで子商品 の情報が表示されなくなる 投稿する

投稿者:kaiya  投稿日時:2021-12-01 09:15:23
お世話になります。

SOYSHOPの商品詳細ページで 親ページで 子商品の情報を表示させていたのですが、バージョンアップの際に表示されなくなっていたのに気が付きました。

手元のファイルで順番にバージョンを下げてテストしたところ
soyshop_2.3.4.55 までは子商品の情報が表示されますが、soyshop_2.3.4.68 をアップロードすると 子商品の情報が消えてしまいます。
soyshop_2.3.4.55を再度アップロードすると表示されます。

原因らしき条件を もう少し特定しようと思ったのですが、特定ができないので
なにか 上記 ファイルで 該当部分の改変ありましたでしょうか・・

<!-- cms:id="type_group*" -->
<!-- block:id="child_item_list*" -->
<div><a cms:id="item_link*"><!-- cms:id="item_name*" -->商品名(表示されなくなる)<!-- /cms:id="item_name*" --></a></div>

<!-- /block:id="child_item_list*" -->
<!-- /cms:id="type_group*" -->
投稿者:齋藤毅  投稿日時:2021-12-01 13:21:38
子商品周りはしばらく触れていないので、何らかのプラグインが干渉している可能性がありそうです。
サーバを操作できるアカウントを直接連絡を頂ければ確認します。
投稿者:齋藤毅  投稿日時:2021-12-02 10:36:12
アカウントをありがとうございます。
即席のコードになりますが、表示されるようにしてあります。

次期バージョンで修正内容を反映します。
投稿者:kaiya  投稿日時:2021-12-02 20:54:22
ありがとうございます!

最新バージョンもありがとうございます!ただ、該当のサイトで最新バージョンをアップロードしたところ、
トップページに下記エラーが表示されました。
プラグインなどの問題のため、プラグインを外したりバージョンダウンして対応しますが、一応 出た警告をお伝えします。
Fatal error: Uncaught TypeError: Argument 1 passed to soyshop_get_page_url() must be of the type string, null given, called in /ルート/soyshop/webapp/src/module/plugins/common_sort_button/soyshop.site.beforeoutput.php on line 20 and defined in /ルート/soyshop/webapp/src/base/func/common.php:6 Stack trace: #0 /ルート/soyshop/webapp/src/module/plugins/common_sort_button/soyshop.site.beforeoutput.php(20): soyshop_get_page_url(NULL) #1 /ルート/soyshop/webapp/src/logic/plugin/extensions/soyshop.site.beforeoutput.php(30): SOYShopSortButtonBeforeOutput->beforeOutput(Object(_home_page)) #2 /ルート/soyshop/webapp/lib/soy2_build.php(8693): SOYShopSiteBeforeOutputDelegateAction->run('soyshop.site.be...', 'common_sort_but...', Object(SOYShopSortButtonBeforeOutput)) #3 /ルート/soyshop/we in /ルート/soyshop/webapp/src/base/func/common.php on line 6

別のナビゲーションページ(カテゴリーTOP)
Warning: Declaration of AffiliateA8flyOnOutput::onOutput(string $html) should be compatible with SOYShopSiteOnOutputAction::onOutput($html) in /ルート/soyshop/webapp/src/module/plugins/affiliate_a8fly/soyshop.site.onoutput.php on line 8

Warning: Declaration of CommonNoticeArrivalOnOutput::onOutput(string $html) should be compatible with SOYShopSiteOnOutputAction::onOutput($html) in /ルート/soyshop/webapp/src/module/plugins/common_notice_arrival/soyshop.site.onoutput.php on line 16

Warning: Declaration of GoogleAnalyticsOnOutput::onOutput(string $html) should be compatible with SOYShopSiteOnOutputAction::onOutput($html) in /ルート/soyshop/webapp/src/module/plugins/parts_google_analytics/soyshop.site.onoutput.php on line 12

Warning: Declaration of PartsItemDetailOnOutput::onOutput(string $html) should be compatible with SOYShopSiteOnOutputAction::onOutput($html) in /ルート/soyshop/webapp/src/module/plugins/parts_item_detail/soyshop.site.onoutput.php on line 13

あと、SOYSHOPの特定のカスタムフィールドのチェックボックスでチェックしている商品のみ ナビゲーションページに 商品の画像とリンクを表示させていたのですが、何も表示されなくなりました。

以上、最新バージョンのエラートピックを作成しようかと思いましたが、該当サイトがわかるので、ここにエラー内容を記載させて頂きました。
バージョンアップ対応 毎度感謝しております
投稿者:齋藤毅  投稿日時:2021-12-03 05:14:37
先に
Warning: Declaration of AffiliateA8flyOnOutput::onOutput(string $html) should be compatible with SOYShopSiteOnOutputAction::onOutput($html) in /ルート/soyshop/webapp/src/module/plugins/affiliate_a8fly/soyshop.site.onoutput.php on line 8
上記のようなエラーですが、
/soyshop/webapp/src/logic/plugin/extensions/soyshop.site.onoutput.php
の14行目付近にある
function onOutput($html){

function onOutput(string $html){
に修正すればエラーはなくなりますが、これは相当前のバージョンで対応していた内容になりまして、FTPでアップロードする時にアップロードに失敗している可能性がありそうです。

この対応で今回挙げている大半のエラーは消えます。
Fatal error: Uncaught TypeError: Argument 1 passed to soyshop_get_page_url() must be of the type string, null given, called in /ルート/soyshop/webapp/src/module/plugins/common_sort_button/soyshop.site.beforeoutput.php on line 20 
ですが、エラーメッセージに記載されているパスの該当する行で
$pageUrl = soyshop_get_page_url(null);

$pageUrl = soyshop_get_page_url("");
にすれば良いです。

こちらはPHP8.1の対応漏れでした。
ログインして投稿する