Создал страничный View, вставил его на страницы с помощью [view:имя вида].
Но при этом не отображается список страниц внизу (предыдущая,1,2,3,следующая). Если смотреть страницу, на которую View настроен, то все гут.
Как добавить этот пейджер?
Да, указано. Если смотретьименно ту страницу на которую настраивается вид, то все показывается, а если страницу куда вставляю вид - то нет.
Вставляю вид модулем Insert_view.
<?php $view_name = 'site_photos'; // название вида $limit = 8; // number of returns - сколько элементов выводить $view_args = array($node->nid); // если есть аргументы, // в данном случае передается nid текущего материала // (грубо говоря, id страницы, куда мы вставляем вид) // если нет аргументов - ставим $view_args = array(); $view = views_get_view($view_name); print views_build_view('embed', $view, $view_args, FALSE, $limit); ?>
Не помню, кажется, "пагинатор" в таком случае работает.
Вставляем несколько видов на страницу - и модуль panels не нужен.
print views_build_view('embed', $view, $view_args, FALSE, $limit); - без разбиения на страницы.
print views_build_view('embed', $view, $view_args, TRUE, 10); - и будет вам по 10 на страницу.
Код вызова View вставляешь в файл node-"имятипаданных".tpl.php (например node-page.tpl.php, node-class.tpl.php) и при обращении к странице этого типа данных будет вызван View.
<?php
if($page){
// load the context-node's 'metadata'
global $current_view;
// * define the context-node's NID as the argument
$current_view->args[0]=$node->nid;
// * select the name of the view to embed as $view1
$view1 = views_get_view('class_products');
// * define this section for CSS
print '
';
// * display a subtitle for the view section
//print '
' . t($node->title . ' Класс продукции') . '
';
// send $args to the View's Argument Handler and display $view1 in the context-node
print (views_build_view('embed', $view1, $current_view->args, true, $view1->nodes_per_page));
print '
Подскажите пожалуйста.
Создаю ноду и вид с аргументом. По путям: taxonomy/term/11 и taxonomy/term/10 выдает то, что нужно.
Теперь, мне нужно в разные ноды вывести эти виды. В одну ноду вьюху taxonomy/term/11, а в другую соответсвенно
taxonomy/term/11.
Я делаю вот так:
Комментарии
В настройках вида указано, что надо добавлять многостраничность?
Да, указано. Если смотретьименно ту страницу на которую настраивается вид, то все показывается, а если страницу куда вставляю вид - то нет.
Вставляю вид модулем Insert_view.
Это фича модуля Insert_view, пейджера там нет, посмотрите документацию к нему.
Вариант выхода: добавте линк на ваш вид под(над) тегом [view:имя вида].
Вставлять вид можно и напрямую в *.tpl.php:
$view_name = 'site_photos'; // название вида
$limit = 8; // number of returns - сколько элементов выводить
$view_args = array($node->nid); // если есть аргументы,
// в данном случае передается nid текущего материала
// (грубо говоря, id страницы, куда мы вставляем вид)
// если нет аргументов - ставим $view_args = array();
$view = views_get_view($view_name);
print views_build_view('embed', $view, $view_args, FALSE, $limit);
?>
Не помню, кажется, "пагинатор" в таком случае работает.
Вставляем несколько видов на страницу - и модуль panels не нужен.
т.е. ссылку на страницу, где все отображается? Это не выход. Страница становится очень большой. Надо именно пейджер добавить.
там не будет всё отображаться, будет пейджер.
Поясните, плз, что значит "линк на ваш вид". Адрес страницы, на которую вид настроен? Вставить просто в тегах "а" или как?
да
так и отображается просто как ссылка на другую страницу
print views_build_view('embed', $view, $view_args, FALSE, $limit); - без разбиения на страницы.
print views_build_view('embed', $view, $view_args, TRUE, 10); - и будет вам по 10 на страницу.
Куда это вставлять?
Код вызова View вставляешь в файл node-"имятипаданных".tpl.php (например node-page.tpl.php, node-class.tpl.php) и при обращении к странице этого типа данных будет вызван View.
<?php
if($page){
// load the context-node's 'metadata'
global $current_view;
// * define the context-node's NID as the argument
$current_view->args[0]=$node->nid;
// * select the name of the view to embed as $view1
$view1 = views_get_view('class_products');
// * define this section for CSS
print '
// * display a subtitle for the view section
//print '
' . t($node->title . ' Класс продукции') . '
';
// send $args to the View's Argument Handler and display $view1 in the context-node
print (views_build_view('embed', $view1, $current_view->args, true, $view1->nodes_per_page));
print '
';
}
?>
Вид настроен для стандартного типа данных page.
А как сделать, чтобы это применялось только к определенным страницам (по именам)?
Подскажите пожалуйста.
Создаю ноду и вид с аргументом. По путям: taxonomy/term/11 и taxonomy/term/10 выдает то, что нужно.
Теперь, мне нужно в разные ноды вывести эти виды. В одну ноду вьюху taxonomy/term/11, а в другую соответсвенно
taxonomy/term/11.
Я делаю вот так:
<?php
$myvid = views_get_view('personality');
$ar = array('tid', 11);
$myvid->set_arguments($ar);
$myvid->set_items_per_page(0);
print $myvid->render('default');
?>
Пробовал вот так:
<?php
$myvid = views_get_view('personality');
$ar = array();
$ar[] = $term->tid;
$myvid->set_arguments($ar);
$myvid->set_items_per_page(0);
print $myvid->render('default');
?>
<?php
$view = views_get_view('personality');
print views_build_view('embed', $view, array('11'), FALSE, 20);
?>
Но не получается. Что я делаю не так?