国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

drupal將Date表單元素月日年的順序改造為年月日的方法

2024-08-30 19:07:48
字體:
來源:轉載
供稿:網友

本文實例講述了drupal將Date表單元素月日年的順序改造為年月日的方法。分享給大家供大家參考。具體實現方法如下:

我們在表單元素中,很多時候都會使用date這樣的元素,但是,你會發現,這個元素由3個select組成,他們的順序為月,日,年,這是不符合中國的習慣的。

我在幫人指導建站的時候,就遇到了這樣的問題,但是找不到答案。我判斷,可以通過theme層搞定這個問題,這樣就去找了對應的theme函數。這個問題在網上好像是找不到答案的,我google了多次,但是都找不到,也有人遇到了同樣的問題,但是都是繞道而行。

我決定嘗試著解決這樣的問題,因為我相信,一定存在一個方法,將月日年的順序調整為年月日。先看系統生成的默認元素里面的markup。然后就去找對應的主題函數,這樣就找到了theme_date。

具體代碼如下:

function theme_date($element) {
return theme('form_element', $element, '<div class="container-inline">'. $element['#children'] .'</div>');
}

container-inline就是這里生成。但是3個子元素的順序不是這里決定的。我的第一個想法是,覆寫這個函數,print_r($element['#children']),這樣就可以到定這個順序問題了。

不過我很想知道,核心代碼中,哪部分決定了3個子元素的順序,這樣,就找到了expand_date($element)。其具體代碼如下:

function expand_date($element) {
// Default to current date
if (empty($element['#value'])) {
$element['#value'] = array('day' => format_date(time(), 'custom', 'j'),
'month' => format_date(time(), 'custom', 'n'),
'year' => format_date(time(), 'custom', 'Y'));
}

$element['#tree'] = TRUE;

// Determine the order of day, month, year in the site's chosen date format.此處決定日期格式:
$format = variable_get('date_format_short', 'm/d/Y - H:i');
$sort = array();
$sort['day'] = max(strpos($format, 'd'), strpos($format, 'j'));
$sort['month'] = max(strpos($format, 'm'), strpos($format, 'M'));
$sort['year'] = strpos($format, 'Y');
asort($sort);
$order = array_keys($sort);

// Output multi-selector for date.
foreach ($order as $type) {
switch ($type) {
case 'day':
$options = drupal_map_assoc(range(1, 31));
break;
case 'month':
$options = drupal_map_assoc(range(1, 12), 'map_month');
break;
case 'year':
$options = drupal_map_assoc(range(1900, 2050));
break;
}
$parents = $element['#parents'];
$parents[] = $type;
$element[$type] = array(
'#type' => 'select',
'#value' => $element['#value'][$type],
'#attributes' => $element['#attributes'],
'#options' => $options,
);
}

return $element;
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香河县| 武隆县| 慈利县| 成武县| 温宿县| 洛隆县| 台前县| 宝丰县| 福海县| 资溪县| 康乐县| 凤翔县| 武胜县| 邹城市| 金塔县| 稷山县| 同德县| 丘北县| 孟津县| 同仁县| 安庆市| 铅山县| 昭平县| 沭阳县| 高雄县| 乌审旗| 宣恩县| 沐川县| 新竹市| 水城县| 海原县| 策勒县| 中山市| 红原县| 奉化市| 安乡县| 八宿县| 犍为县| 丘北县| 武冈市| 莆田市|