私はしばらくの間うまく機能しているスマートなテンプレートを持っていますが、理由のために、テンプレートに「割り当てる」変数の1つが$ activity_dateであり、日付情報とともに時間情報を送信するときはよくわかりません。いくつかの驚くべき効果があります(別名、「2012-12-27」が渡されると機能しますが、「2012-12-2700:00:00」が渡されると奇妙な方法で倒れます。
問題が実際にこの変数とのある種のテンプレートの相互作用に関連している場合はもう少し意味があるかもしれませんが、そうではないようです。代わりに、最終的な効果は次のような条件文です。
class="ajax-selector {if ($span)}span{$span}{/if} left"
次のエラーが発生します。
PHP Notice: Undefined index: span in /[PATH]/templates/compiled/96681eebf17717b8605c8deffb547d7e89c1ace6.file.select2-ajax.tmpl.php on line 35
私にとって、これはかなり逆説的です。コードには「$spanの存在をテストする」と記載されており、存在する場合にのみアクションを実行します。エラーメッセージは、条件付きテストの目的である未定義のインデックスについて文句を言います。
前に述べたように、これらのタイプの条件文はすべて、期待どおりに機能していましたが、すべて失敗し始めており、唯一の違いは、「activity_date」が時間レベルの精度で返されるかどうかです。ちょうど日付レベルの精度。
役立つ場合は、テンプレートを設定するコードを次に示します。
public function handler ( $request ) {
$response = new stdClass();
$response->action = $request['action'];
$response->post_type = LG_TAX_Action()->post_type($response->action);
$response->meta = LG_TAX_Action()->meta ( $response->action );
$template = FE_Template::init();
$meta = new LG_Meta();
$template->assign ( 'form' , $response );
if ( isset ($request['activity_date']) ) {
$template->assign ( 'activity_date' , $request['activity_date'] );
}
$named_days = new stdClass();
$named_days->today = new DateTime('today');
$named_days->today = $named_days->today->format('Y-m-d');
$named_days->yesterday = new DateTime('yesterday');
$named_days->yesterday = $named_days->yesterday->format('Y-m-d');
$template->assign ( 'named_days' , $named_days );
$template->assign ( 'meta' , $meta ); // provides the "template_exists()" method
$response->template = $template->fetch( 'activity_forms/master.tmpl' );
return $response;
}