2013-12-13 29 views
0

我在使用smarty的html_select_date自定義函數時遇到問題。在這裏,我使用它來在配置文件編輯頁面上顯示出生日期選擇字段,並且大多數情況下它工作正常,但是我的問題是當我試圖告訴smarty將一個或多個字段設置爲空值。我有這樣的:Smarty空字段html_select_date

{assign var="dateofbirth" value="`$errors['DOB']['year']`-`$errors['DOB']['month']`-`$errors['DOB']['day']`"} 
{html_select_date prefix="birthday" time=$dateofbirth start_year="-75" field_order="DMY" reverse_years="true" all_extra="onChange='saneDates()'" year_empty="Year" month_empty="Month" day_empty="Day"} 

$ errors數組被填充在PHP - 在這裏我的目標是建立一個字符串,像醫生說,可以通過省略缺失值顯示空字段,例如「2013-12-」。這部分工作,我已經傾銷了輸出,我設置了這一點,但聰明的是設置日期字段爲「13」(即今天的日期),而不是我期望的空值。

我錯過了什麼?

+0

''00- $ errors ['DOB'] ['month'] - $ errors ['DOB'] ['year']「'',它是否顯示當前日期? –

+0

不,這樣做會構建一個字符串「00-12-2013」​​ - 這會導致11月30日正在生成(PHP的預期行爲)。 – Xyon

+0

我將不得不解決這個問題,因爲我有最後期限會面,但如果有人能解釋爲什麼smarty會這樣做,我仍然會給予賞金。 – Xyon

回答

1

你不能用字符串時間值做到這一點。 Smarty正在嘗試創建一個有效的時間戳(有關更多信息,請參閱插件目錄中的shared.make_timestamp.php)。當我看看function.html_select_date.php時,我注意到您必須將time屬性作爲關聯數組傳遞。數組鍵必須是前綴+年/月/日。我曾與一些虛擬數據(Smarty的3.1.15)

{assign 'dateofbirth' ['birthdayYear' => $errors.DOB.year,'birthdayMonth' => $errors.DOB.month, 'birthdayDay' => 0]}

希望這有助於測試這個!

+0

夠公平的。我認爲這會是一件愚蠢的事情,我做得不對。 – Xyon