Views用來「列資料」很棒,可是如果要做一些統計、計算,雖然有些模組可以用(像是Views Cul等等),但其實都不是很好的解決方案。不過Views的API非常齊全,所以只要了解Views的寫法,也是可以不需要自己寫query喔!
以下範例是算出某個Views的total rows,也就是該Views的總數。
實際應用舉例:
獎金獵人的「目前進行中比賽有XXX件」這樣的區塊。
<?php
$view = views_get_view( 'VIEWS_NAME' );
$view->get_total_rows = TRUE;
$view->execute();
$count = $view->total_rows;
print '目前進行中比賽有' . $count . 'XXX件';
?>
如果你的狀況需要設參數的話:
<?php
$view = views_get_view( 'VIEWS_NAME' );
$view->set_arguments( array( 1, 2, 3 ) ); //參數設在這
$view->get_total_rows = TRUE;
$view->execute();
$count = $view->total_rows;
print $count;
?>
如果希望最後輸出可以依照總數改變的話:
<?php
$view = views_get_view( 'VIEWS_NAME' );
$view->set_arguments( array( 1, 2, 3 ) ); //參數設在這
$view->get_total_rows = TRUE;
$view->execute();
$count = $view->total_rows;
if ($count > 0) {
$output = format_plural($count,
'只有 1 個',
'總共有 @count 個');
print $output;
}
?>