0
点赞
收藏
分享

微信扫一扫

如何将Date表单元素的月日年的顺序…


老葛的Drupal培训班 ​​http://zhupou.cn​​



我们在表单元素中,很多时候都会使用date这样的元素,但是,你会发现,这个元素由3个select组成,他们的顺序为月,日,年,这是不符合中国的习惯的。



     



     



     



function theme_date($element) {



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



}



container-inline就是这里生成。但是3个子元素的顺序不是这里决定的。我的第一个想法是,覆写这个函数,print_r($element['#children']),这样就可以到定这个顺序问题了。



     



function expand_date($element) {



// Default to current date



if (empty($element['#value'])) {



  



                          



                          



}






$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) {



  



    



      



      



    



      



      



    



      



      



  



  



  



  



    



    



    



    



  



}






return $element;



}



注意代码中红色的部分,3个子元素的顺序,是由日期格式决定的,我猜测,调整日期格式,就可以改变3个子元素的顺序,我尝试着将日期格式都改为了年月日:导航到admin/settings/date-time,将3中长,中,短的日期格式都调整为自定义格式,Y/m/d(D) H:i。



这样,date元素中的顺序,就从“月,日,年”调整为了“年,月,日”。

举报

相关推荐

0 条评论