需求:
因為上載的圖片太多, 又會分開數次上載/更新圖片, 編輯們想要知道上載某圖片的日期, 以決定刪除/更新某圖片
使用 devel 參考 filefield 的參數, 發覺 filefield 是有將 timestamp 儲存的, 只要在合適的 form 處顯示就可以了
顯示 timestamp 的代碼參考了 imsgefield extended module 的代碼, 使用 hook_element 的方式將 timestamp 加到 form API 之中:
<?php
function ge_filefield_timestamp_elements() {
return array(
'imagefield_widget' => array(
'#process' => 'ge_filefield_timestamp_widget_process',
);
}
?>
以上的代碼在 form API 處理/顯示表單 imagefield widget 的時候會呼叫一次, 而將 timestamp 加到表單的代碼:
<?php
if(isset($element['#value']['timestamp']))
{
$element['data']['timestamp']['body'] = array(
'#type' => 'markup',
'#title' => 'timestamp',
'#default_value' => '123',
'#value' => 'Timestamp: ' .date('Y-m-d H:i', $element['#value']['timestamp']),
'#prefix' => '<div>',
'#suffix' => '</div>',
);
}
return $element;
?>
就更簡單, 其中, $element['#value']['timestamp']
可以取得 timestamp, 轉換為編輯們可讀的日期格式就可以了
Attachment | Size |
---|---|
hook_element_timestamp.PNG | 25.26 KB |