在数据表drupal 7中排序d / m / Y日期
Posted
技术标签:
【中文标题】在数据表drupal 7中排序d / m / Y日期【英文标题】:sorting d/m/Y date in datatables drupal 7 【发布时间】:2017-10-07 18:53:38 【问题描述】:我在 drupal 7 中创建一个带有数据表的视图。它有一个格式为“d/m/Y”的列日期。为了使其正确排序,我计划将属性“数据顺序”添加到这些表格单元格中,如here 所引用的那样。
我在尝试使用模板或预处理函数重写包含日期的<td>
时遇到问题。我想在每一行的日期单元格中添加 data-order 属性,以便以后可以将其用于前端排序。
有人可以帮我吗?
【问题讨论】:
请描述您面临的“问题”,例如您尝试重写<td>
s 的代码。 data-order
仅适用于您在视图和您希望如何排序列之间存在差异的列。在我看来,使用排序插件会更好。
@davidkonrad 我正在寻找将数据顺序属性添加到现有列的方法...我尝试使用模板预处理,但它允许我使用 td 的 innerhtml 而不是属性。
“正确排序”是什么意思? drupal 视图可以很好地对日期进行排序...
如果你想为每一行添加一些属性,以便以后可以将其用于前端排序(JS/jQuery),你应该提到这一点。如果是这种情况,您应该使用像“Ymd”这样的格式,所以首先是年份,然后是月份和日期,然后您可以将其排序为任何字符串或数字 - 它应该可以工作。
@BartHofma,仅视图就完美了。我在合并视图和数据表时遇到问题。
【参考方案1】:
不是添加“数据顺序”属性,而是通过在日期列中添加隐藏跨度来解决问题。我以前尝试过同样的事情,但使用模板预处理,但没有奏效。
/* This did not work */
function template_preprocess_views_view_field__viewname__date_field(&$vars)
$vars['output'] = "<span class='hidden'>".$vars['row']->date."</span>".$vars['row']->date;
/* THIS WORKED */
/* Field: Content: date */
$handler->display->display_options['fields']['date_h']['id'] = 'date_h';
$handler->display->display_options['fields']['date_h']['table'] = 'node';
$handler->display->display_options['fields']['date_h']['field'] = 'created';
$handler->display->display_options['fields']['date_h']['exclude'] = TRUE;
$handler->display->display_options['fields']['date_h']['date_format'] = 'custom';
$handler->display->display_options['fields']['date_h']['custom_date_format'] = 'U';
$handler->display->display_options['fields']['date_h']['second_date_format'] = 'long';
/* Field: Content: Post date */
$handler->display->display_options['fields']['date']['id'] = 'date';
$handler->display->display_options['fields']['date']['table'] = 'node';
$handler->display->display_options['fields']['date']['field'] = 'created';
$handler->display->display_options['fields']['date']['label'] = 'Date';
$handler->display->display_options['fields']['date']['date_format'] = 'short_date_only';
$handler->display->display_options['fields']['date']['alter']['alter_text'] = TRUE;
$handler->display->display_options['fields']['date']['alter']['text'] = '<span class="hidden">[date_h]</span>[date]';
【讨论】:
以上是关于在数据表drupal 7中排序d / m / Y日期的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Drupal 7 的视图中对自定义字段进行排序或过滤