2017-05-09 36 views
0

我正在用drupal 7中的數據表創建一個視圖。它具有'd/m/Y'格式的列日期。爲了使它排序正確,我計劃在here中引用屬性'data-order'給這些表格單元格。在數據表中排序d/m/Y日期drupal 7

我在嘗試用模板或預處理函數重寫包含日期的<td>時遇到問題。我想將數據順序屬性添加到每行的日期單元格中,以便稍後可以將其用於前端排序。

有人可以幫我嗎?

+0

請描述您面臨的「問題」,例如您嘗試重寫「​​」的代碼。 'data-order'僅適用於您在視圖和您想要訂購該列的方式上存在差異的列。在我看來,你最好用排序插件。 – davidkonrad

+0

@davidkonrad我正在尋找將數據順序屬性添加到現有列的方法...我嘗試使用模板預處理,但它允許我使用td的innerhtml而不是屬性。 – meen

+1

你是什麼意思'排序正確? Drupal視圖將排序日期就好... –

回答

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]';