Node.tpl.phpファイル内にレンダリングされたカスタム領域が期待どおりに機能しますが、viewsモジュールによって作成されたブロックがそれらに配置されると、phpエラーが発生します。
[:error] [pid 2563] [client 127.0.0.1:35606] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /filepath/sites/all/modules/devel_themer/devel_themer.module on line 333
他のブロックはすべて領域で正常に機能し、ビューブロックはpage.tpl.php
によって呼び出されるすべての領域で正常に機能します。このエラーは、2つを組み合わせた場合にのみ発生します。他のログメッセージはなく、ページは空白の画面を返すだけなので、問題が何であるか、それを修正する方法はよくわかりません。以下のコードをtemplate.phpで使用して、page.tpl.php
の外部で領域を使用できるようにします
function smark_design_theme_preprocess(&$variables) {
if (block_get_blocks_by_region('region_name')) {
$variables['region_name'] = block_get_blocks_by_region('region_name');
} else { $variables['region_name'] = FALSE; }
}
そして、これはnode.tpl.php
のリージョンを呼び出すためのものです
<?php if ($page): ?>
<?php if ($region_name): ?>
<div id="region-name">
<?php print render($region_name); ?>
</div>
<?php endif; ?>
<?php endif; ?>
ノードテンプレート内の領域をレンダリングすることは正常ではありません。これが理由の1つです。これらの領域の1つにあるブロック内のノードを表示すると、node.tpl.phpがそれ自体を(他のいくつかのテーマ呼び出しを介して)間接的に呼び出すという無限回帰が発生します。
テーマの構造を見直してください。
Php.iniを検索し、max_execution_time
の値を次のように変更します。
max_execution_time = 300
デフォルトでは、php.iniは30秒で、PHPは処理にさらに時間が必要です。この場合、300秒です。
EDIT:問題が解決しないと your comment で言うように、次の解決策を使用できますが、あなたのサイトはあなたのリクエストを処理するのに長い時間がかかる場合があります。
ファイルYOUR_SITE/sites/default/settings.php
を編集して、2行目にこれを追加し、ファイルを保存します。
set_time_limit(0);
この関数の詳細については php.net をご覧ください。