『エリアの追加』時にJavaScriptエラーが発生してしまう

2019年3月4日 at 15:22

現在、公開済のサーバーを確認中なのですが、
『エリアの追加』をすると、下記JavaScriptエラーが発生してしまいます……。

https://www.example.com/index.php/ccm/system/dialogs/page/add_block?btask=edit&cID=7825&arGridMaximumColumns=12&arEnableGridContainer=1&arHandle=Main&btID=1&arCustomTemplate%5Bcontent%5D=wysiwyg


サイト内で複数のテーマがあって、その中の一部だけでエラーが発生しているので、テーマ側の問題かと思いますが、何が原因かご存じの方いらっしゃるでしょうか?

タグ:

Re: 『エリアの追加』時にJavaScriptエラーが発生してしまう

2019年3月25日 at 11:24
どんなエラーですか?
 

Re: 『エリアの追加』時にJavaScriptエラーが発生してしまう

2019年3月25日 at 16:45
上記、エラーよく見直しましたが、JavaScriptエラーではないようです……。
このようなエラーが出ていました。

VM17:1 GEThttp://www.example.co.jp/index.php/ccm/system/dialogs/page/add_block?btask=edit&cID=8017&arGridMaximumColumns=&arEnableGridContainer=0&arHandle=Main&am... 500
 

Re: 『エリアの追加』時にJavaScriptエラーが発生してしまう

2019年3月25日 at 17:29
500なんで、PHP側のエラーですね。エラーログを確認してみてください
 

Re: Re: 『エリアの追加』時にJavaScriptエラーが発生してしまう

2019年3月26日 at 15:56
こちら、解決しました。ありがとうございました。

以下、解決に至った手順です。

concrete5のレポート→ログを確認した所、下記エラーが発生していました。

Exception Occurred: /home/sites/heteml/users/****/web/******/updates/concrete5-8.3.2/concrete/src/Area/Layout/Preset/Provider/ThemeProvider.php:19 Invalid argument supplied for foreach() (2)


該当のソースを確認した所、
http://github.com/concrete5/concrete5/blob/develop/concrete/src/Area/Layout/Preset/Provider/ThemeProvider.php#L19

$arrayPresets が空になっているのが原因のようだと推測できました。

上の行で

$arrayPresets = $interface->getThemeAreaLayoutPresets();


となっていたので、getThemeAreaLayoutPresetsが空という推測が出来たので、
どこで使用しているのかを探してみた所、テーマのpage_theme,phpにたどり着きました。

エラーが出ている方とエラーが出ていない方のpage_theme,phpを比較した所、エラーが出ている方は下記のようにgetThemeAreaLayoutPresets()が空になっていました……。
適切な値を入れる事でエラー解消しました。


public function getThemeAreaLayoutPresets()
{
}


参考:http://concrete5-japan.org/help/5-7/developer/designing-for-concrete5/adding-complex-custom-layout-presets-in-your-theme/