2017-05-09 3 views
0

私はdrupal 7のdatatablesでビューを作成しています。 'd/m/Y'の形式の列の日付を持っています。正しくソートするために、hereから参照されるように、これらの表のセルに属性 'データ順序'を追加する予定です。datatablesのd/m/Y日付をソートdrupal 7

<td>に日付を含むテンプレートまたは前処理機能を書き直そうとすると、問題が発生します。後でフロントエンドのソートに使用できるように、すべての行の日付セルにデータオーダー属性を追加します。

誰かが私を助けることができますか?

+0

"​​"を書き換えようとしているコードのように、あなたが直面している「問題」を記述してください。 'data-order'は、ビューとカラムをどのように並べ替えるかの違いがあるカラムの場合にすぎません。それはあなたがソートプラグインでより良いと私には思われる。 – davidkonrad

+0

@davidkonrad私は既存の列にデータオーダー属性を追加する方法を探しています...私はテンプレートの前処理を試みましたが、それはtdのinnerhtmlと属性ではありません。 – meen

+1

「正しく並べ替える」とはどういう意味ですか? drupalビューは日付を整列します。 –

答えて

1

'data-order'属性を追加する代わりに、日付列に隠された範囲を追加することで問題を解決しました。私が前に試したのと同じことだが、テンプレートの前処理がうまくいかなかった。

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