您在這裡

計算資料筆數以及上一筆\下一筆的模組?

tky's 的頭像
tky 在 2007-10-06 (週六) 12:38 發表

各位好,沒被颱風吹走吧?

這幾天一直在找有沒有可以計算資料筆數的模組,或者views的設定。
各位知道,就是那種顯示在表格上方,說「資料總共有幾筆,目前為第n-m筆」的那種功能。

還有,雖然在很久以前有問過說,有沒有顯示同類文件的上一筆\下一筆資料的方法,而確實也有人提供要怎麼編寫才能實現。不過這麼久了說,不曉得是否已經有人寫過相關的模組了?

如果這兩個功能可以搭配起來的話,應該是一個不錯的副資訊,可以讓使用者瞭解他要面對多少資料。而如果感覺太多的話,應該會讓使用者圖早放棄一頁一頁翻找,而使用搜尋的功能。

有點類似一般人如果搭電梯時看到電梯還在56那邊徘徊,就會想說那我乾脆爬個兩三樓節省時間算了。

TKY

ㄟ?Hipfox這麼一說,TKY想起來自己也有裝這個模組,只是一直沒有好好去研究過。遠在天邊、近在眼前就是這個道理啊!

TKY玩了一下,只是很奇怪,為什麼Hipfox網頁中都可以顯示上一筆\下一筆node的標題,但TKY的網頁卻只有上一筆、下一筆的顯示而已。這是不是要插什麼php snip進去呢?

tky

tky

那個模組裡頭有一個 theme_sample.php ,要把它寫到你的 template.php 裡面。

sample code:

// $Id: theme_sample.php,v 1.1.2.1 2007/02/28 08:46:55 eaton Exp $

// This function is an alternative to the standard Custom Pager theming function. It was used in
// earlier versions of the module, but was removed to eliminate the node_load() calls for each
// page in on high-traffic sites. Now, it provides an example of yet-another-way the pagers can
// be themed.

function my_theme_custom_pager($nav_array, $node, $pager) {
drupal_add_css(drupal_get_path('module', 'custom_pagers') .'/custom_pagers.css');

if (is_numeric($nav_array['prev'])) {
$prev = node_load($nav_array['prev']);
}
if (is_numeric($nav_array['next'])) {
$next = node_load($nav_array['next']);
}

if ($prev || $next) {
if ($prev) {
$links[] = l(t('‹ ') . $prev->title, 'node/'. $prev->nid, array('class' => 'pager-previous', 'title' => $prev->title));
}

// Word break (a is an inline element)
$links[] = ''. ($nav_array['current_index'] + 1) .' of '. count($nav_array['full_list']) .'';

if ($next) {
$links[] = l($next->title . t(' ›'), 'node/'. $next->nid, array('class' => 'pager-next', 'title' => $next->title));
}

$output .= '

type . '">' . implode(' ', $links) . '

';
}

return $output;
}

在第一個 Pager visibility -> By PHP snippet:
是根據 $node 中的變數來判斷要不要顯示 Custom Pagers 的 links.
但填了 php code 之後,它上面的 By node type 選單就沒作用。

第二個 Pager node list -> Use PHP snippet:
這裡的 php code, 結果要輸出一個帶有 node ids 的陣列,以便抓上、下一筆,但有填寫的話,它下面的 Use a view, Views arguments 就失效。

在此地最好先設一個 views 再配合 token module 傳入參數會比較方便設定。

想請教一些問題:
sample 加進去 template.php 後不知道為什麼沒反應?
我是用 itheme 這個版型,常常會有這種沒反應的時候,總覺得他的 template.php 跟別的版型好似不大一樣。
這是剛開封時的 template.php 內容:

?php
drupal_add_js(drupal_get_path('theme', 'itheme') . '/js/jquery.cookie.js', 'theme');
drupal_add_js('cookiePath = "' . base_path() . '";', 'inline');
drupal_add_js(drupal_get_path('theme', 'itheme') . '/js/itheme.ui.js', 'theme');
?>

然後我把 sample 加進 ?> 之前,試來試去,沒反應就是沒反應....(??)

另外這 custom pagers 如果在有用 Content templates 編輯過的內容類型,就不能顯示了。content template 裡也沒有 pagers 的啟動選項,僅是包含在 body 內...
有用 block 以外的解決方式嗎?
想做到像此討論版一樣,介於主題內容與回覆之間、顯示下一主題或上一主題的名稱、除去文章總數計算。

感謝指教!