您在這裡

views 的 arguments 是怎样搞??

adrianmak's 的頭像
adrianmak 在 2009-02-02 (週一) 11:30 發表

最近要建一个产品展示网站, 每个产品会给一个taxonmy term 以作产品分类

因此要用到views 来将各分类的所有产品展示出来, 但如果有50 种分类,岂不是要建50个views ?? , 要加taxonmy term, 又岂不是要加新views?? 我想应该不会这样做吧

看到views 有个什么arguments 的东西, 但看了一些文档仍然不懂得怎样使用

请问有人会用吗?

小弟用5.x 版的Views
arguments 就是你要傳入什麼變數
Step1. Create Views
Step2. 勾選 Provide Page View
網址就填入 $arg/anystring ($arg 就是指要傳入的變數)
Views 的顯示方式就不多說了
Step3. Argument Type -> 選擇 Term ID -> Add Argument (表示你要傳入的是分類的 ID )
這樣就OK了~ 要測試的話就可以用
5/anystring => 分類ID 5 的顯示出來
29/anystring => 分類ID 29 的顯示出來

謝謝!!!!我在drupal 5.x 跟着做也行

我在view 的block 设了之显示3个node, 但出来的效果是全部node也显示
一下是那段code

<?php
$view = views_get_view('raw_block');
$abc= 'Jasper';
$myview_args = array(0 => $abc);
print views_build_view('block', $view, $myview_args, false, false);

?>

在 node-product.tpl.php template 里面用一下这段php code
product 是自建的cck content type


<?php
$view = views_get_view('raw_block');
$abc= 'Jasper';
$myview_args = array(0 => $abc);
print views_build_view('block', $view, $myview_args, false, false);

?>

在node-product.tpl.php

<?php phptemplate_comment_wrapper(NULL, $node->type); ?>

nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">

<?php if ($page == 0): ?>

" title="<?php print $title ?>"><?php print $title ?>

<?php endif; ?>

<?php print $content ?>

<?php
$path = drupal_get_path_alias($_GET['q']); //get alias of URL
$path = explode('/', $path); //break path into an array
//print $path[0];

$view = views_get_view('raw_block');
$args = 'Jasper';
$view_args = array(0 => $args);
print views_build_view('block', $view, $view_args, false, $limit=3, false);

?>

但server 就出现error。

Connection Interrupted

The connection to the server was reset while the page was loading.
The network link was interrupted while negotiating a connection. Please try again.

其实是想在product node page 时, 在现实另一个views 的
请问是什么问题? 是不是node page 内不能显示另一个views ?

同一段php code, 放在一般content body内( ie php input filter) 是可以正常执行的