彙整

Posts Tagged ‘incorrect’

[drupal] 解決views_tabs 排序不正常的問題

二月 18, 2008 CrazyLion 留言

views_tabs 是一個drupal 的擴充套件。它可以讓view中的元素以tab的方式呈現出來。不過它有一個問題:

總是不願意依照view中的設定來好好排序。 怎麼勸都勸不聽。

這幾天追了一下,發現主要的原因應該是它所使用到的jstool tab模組中的:

function tabs_process_tabset($element)

裡面又對元素呼叫了一次 uasort($element, “_element_sort”) ; (77行附近)

而drupal中的_element_sort函式主要會根據每個$element的成員”#weight” (如果沒設定就取用#title成員)來排序。

views_tabs 在產生元素陣列的時候沒把這個成員給放進去(不過這要算誰的錯呢?)。所以解決方法很簡單,就是我們自己加進去。

底下是最簡單的方式:

在 function theme_views_tabs_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE)函式中的

foreach ($nodes as $node) {

改成

$i =0;
foreach ($nodes as $node) {

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 );

改成

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 '#weight' =>$index,
116 );
117 $index++;

即可。

Categories: Open Source, php 標籤:, , ,