国产探花免费观看_亚洲丰满少妇自慰呻吟_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;
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永顺县| 辽宁省| 罗定市| 克山县| 五家渠市| 大足县| 池州市| 霸州市| 松滋市| 怀化市| 平陆县| 平遥县| 青阳县| 新邵县| 怀化市| 绥阳县| 巴塘县| 神农架林区| 东方市| 孟州市| 昌吉市| 绿春县| 湘乡市| 巴里| 望都县| 扶风县| 南平市| 城市| 抚远县| 都昌县| 汉阴县| 长子县| 六盘水市| 城步| 共和县| 广州市| 平安县| 会昌县| 翼城县| 长寿区| 镇安县|