Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 17:29

5.7を最新バージョンにアップデートしたら、トップページに「予期せぬエラーが発生しました。
Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object」
と表示され、コンテンツも消え、正常に編集さえもできなくなりました。
元に戻すことはできますでしょうか?
下層ページは正常に表示されています。

大変困っております。よろしくお願いいたします。

タグ:

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 17:47
テーマはどのようなテーマをお使いですか?

あと、いくつのバージョンから、いくつにアップデートされましたか?
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 18:06
ありがとうございます。
テーマはオリジナルです。
バージョンは、確か5.7.4.x→5.7.5.8にアップしました。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 18:22
うむむむ・・・オリジナルですか・・・。

ひとまず。
page_theme.php の namespace 宣言の後に

use Concrete\Core\Area\Layout\Preset\Provider\ThemeProviderInterface;


という文章を加えてもらえますか?

それで治らなければ、

class PageTheme extends \Concrete\Core\Page\Theme\Theme
{


という記述のところを

class PageTheme extends \Concrete\Core\Page\Theme\Theme implements ThemeProviderInterface
{


に変更してみてください。「use.....」の行もそのままで。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 18:32
上記の編集をしましたが、変わりませんでした。
プレインストールされているエレメンタルに変更すると表示はめちゃくちゃですが、エラーメッセージは出ません。
やはりテーマの問題でしょうか?
完全オリジナルではなく、何かのテーマをカスタマイズしたものですが、基にしたテーマを思い出せずにいます。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 18:54
うーん。元にしたテーマがわからないと難しいですね・・・。

こちらの方
http://mindhearts.com/concrete5/concrete57/preparation_for_elemental_customize/
が同じトラブルにあって

仕方ないので、一旦、テーマを既設のElemental テーマに戻し、カスタマイズ用を削除、再インストールすると、正常に機能しました。


だそうです
これを試していただくことは可能ですか?
 

Re: Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 19:07
拝見し、試しましたが、「page_theme.php」を入れたままインストールしようとしても
「The theme file page_theme.php does not define the class Application\Theme\Mk\PageTheme」
のメッセージが出てインストールできません。
「page_theme.php」を削除したらインストールできます。
ただし、トップページはエラーメッセージが出たままになっています。
テーマ自体はたいして難しいものではありません。

よろしくお願い致します。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 19:15
となると、page_theme.php の記述がおかしいかもですね・・・。
テーマのファイル全部をいただかないと検証できないかもですね・・・。

テーマファイルって公開できるものですか?
こちらに添付でいただけることはできますか?
 

Re: Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 19:57
公開できますし、添付もOKですが、どのように添付すればいいでしょうか?
 

Re: Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 20:00
http://www.mk-cao.co.jp/mk_theme.zipよりダウンロードしていただけますでしょうか。
お手数をおかけいたします。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 20:06
ありがとうございます!
今夜の週刊 concrete5 の放送中にで公開調査してよいですか?
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 21:27
ありがとうございます。
是非、よろしくお願い致します。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月8日 at 21:43
原因がわかりました。

どこかのページで、レイアウトを使っていますか?
それがエラーに影響していたかもしれません。

page_theme.php の

class PageTheme extends Theme
{



public function registerAssets()

の間に

protected $pThemeGridFrameworkHandle = 'bootstrap3';


を追記してください。

また 5.7.5.8 の最新版 5.7.5.9 がリリースされています。
そちらは自動アップデートは対応していませんが、
Google Map のAPI対応とかやっていますので、
アップデートもご考慮ください。

よろしくお願いします。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月9日 at 11:19
ご教示ありがとうございます。
上記のコードを入力し、アップロードしましたが、症状は変わりません。
バージョンは最新の5.7.5.9にアップしました。
お手数をお掛けしますが、再検証いただけますでしょうか。
よろしくお願い致します。
 

Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月9日 at 11:34
こちらでは、エラーが治っているのでおかしいですね。
このテーマファイルを、「urbanic」フォルダごと
/application/themes/ フォルダの中に入れてみてください。
添付: urbanic.zip
 

Re: Re: Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object

2016年9月9日 at 12:01
添付ファイルのテーマで実行したら、エラーは直りました。
添付にあったpage_theme.phpを既存のフォルダにアップしてもエラーは変わりませんでした。
他にもフォルダ名を変えたり、いろいろやってみましたが症状は変わりませんでした。
送っていただいたデータ以外は、すべてエラーがでました。
何か腑に落ちない部分はありますが、とりあえず収まって大変感謝しております。
ありがとうございました。