Вывод определенного количества нод на страницу термина

Главные вкладки

Аватар пользователя elarovetz elarovetz 6 июня 2012 в 21:29

Доброго дня!

Если вам необходимо отрегулировать выводимое количество нод на странице термина, то могу предложить не совсем однозначное решение, которое все же имеет право на жизнь.

За количество, выводимых нод, как на главной, так и на странице термина отвечает переменная default_nodes_main, вот ее-то вам и нужно поменять. Здесь следует уточнить одну маленькую, но важную деталь, эта переменная изменит количество выводимых нод на всем сайте. Дизайн моего сайта, например, предполагает, что нужно выводить по 12 нод, друг за другом, а не списком. Если вам этот вариант подойдет - хорошо, если нет, то придется использовать [module=Views] или другие варианты.

Вариант 1. Заходите в админку на страницу "Информация о сайте" по адресу /admin/config/system/site-information, находите выпадающий список "Количество сообщений на главной странице", ставите там необходимое вам число. Есть нюанс, список предлагает варианты от 1 до 10, а далее до 30 с шагом 5.

Вариант 2. Если у вас есть доступ к phpMyAdmin, и вы умеете всем этим добром пользоваться, найдите в вашей БД таблицу variable, а в ней строку default_nodes_main, и поставьте любое нужное вам значение.

Вариант 3.
Для тех, кто понимает:
drush vset имя_переменной значение_переменной

Вариант 4.
Один раз исполнить строчку кода:

<?php
variable_set
('default_nodes_main'XXX); // XXX количество нод, выводимых на страницу термина
?>

Это можно сделать в template.php, например, в функции theme_preprocess_html. После того, как строчка кода исполнится, ее можно закомментировать или даже удалить.

За 1-й, 2-й, 3-й варианты решения спасибо drupby

Комментарии

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 1:00

Mufanu wrote:
А нельзя без конструкции if?

taxonomy_term_page отвечает за вывод нод на странице термина


Я из тех, кто считает, что лучше перебдеть, чем недобдеть. Пожалуй, с if я перебдел. Допускаю, что можно и без if.

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 1:02

"xxandeadxx" wrote:
и оно до дебилизма дебильное

Будьте так любезны, расскажите в чем его (решения) дебилизм? Предложите более простое решение. Зачем вы скрываете его от мира? Я полдня зря потерял, а вы его знаете, как вам не стыдно? Smile

Аватар пользователя Mufanu Mufanu 7 июня 2012 в 7:11

"elarovetz" wrote:
Я из тех, кто считает, что лучше перебдеть, чем недобдеть. Пожалуй, с if я перебдел. Допускаю, что можно и без if.

Если я правильно понимаю, переменная устанавливает при каждом посещении страниц термина, можно после установки переменной закоментировать функцию.

"xxandeadxx" wrote:

http://drupal.org/project/views[/quote]

Стоит ли из-за изменения одной переменной ставить views?

Аватар пользователя Mufanu Mufanu 7 июня 2012 в 7:58

Согласен, что Views мощная вещь (хотя для одного проекта обошелся taxonomy + темизация + небольшой самописный модуль). Но для изменения одной переменной...

Аватар пользователя drupby drupby 7 июня 2012 в 8:34

"elarovetz" wrote:
default_nodes_main

так это же переменная , которая отвечает за вывод
"Количество сообщений на главной странице"
и она назначается в админке
/admin/config/system/site-information

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 8:34

"xxandeadxx" wrote:
я хочу сказать, что лучше использовать готовые и проверенные решения, чем не обдуманно писать такие мемы

Ради того, чтобы увеличить количество нод, выводимых на странице термина на 2, я должен поставить Chaos Tools + Views? О_о

Вам по существу есть, что сказать? Чем приведенное мной решение действительно плохо? А то назвав чье-либо решение дебильным, не обосновав этого, вы характеризируете самого себя с очень бледной стороны.

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 8:38

"Mufanu" wrote:
Если я правильно понимаю, переменная устанавливает при каждом посещении страниц термина, можно после установки переменной закоментировать функцию.

Да, вы правы.

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 9:02

"drupby" wrote:
так это же переменная , которая отвечает за вывод
"Количество сообщений на главной странице"
и она назначается в админке
/admin/config/system/site-information

Вот за это спасибо. Связь с количеством выводимых терминов была не очевидна, но она действительно работает. Поиск ничего не давал, кроме использования Views, а решение с variable_set('default_nodes_main', XXX) я нашел на drupal.org, и там его никто не ругал, поэтому подумал, что оно имеет право на жизнь.

Был не прав признаю.

UPD: Вообще-то поторопился я признавать вашу правоту. Мне нужно именно 12 нод, а в админке в выпадающем списке предлагается от 1 до 10, а далее с шагом в 5. Мои искомые 12 нод на странице термина из админки никак не получить.

Аватар пользователя drupby drupby 7 июня 2012 в 9:04

"elarovetz" wrote:
UPD: Вообще-то поторопился я признавать вашу правоту. Мне нужно именно 12 нод, а в админке в выпадающем списке предлагается от 1 до 10, а далее с шагом в 5. Мои искомые 12 нод на странице термина из админки никак не получить.

в базе данных есть таблица variables - найдите нужное значение и замените .
а вообще drush vset имя_переменной значение_переменной

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 9:08

"drupby" wrote:
в базе данных есть таблица variables - найдите нужное значение и замените .

Я так понял, что variable_set можно вставить в любое исполняемое место, а потом просто функцию закомментировать или вообще удалить, а можно и так как предлагаете вы, через базу.

"drupby" wrote:
а вообще drush vset имя_переменной значение_переменной

Для меня это пока сложно. Пока нет времени разбираться с drush.

Аватар пользователя elarovetz elarovetz 7 июня 2012 в 9:24

2xxandeadxx: Я своего разрешения, обращаться ко мне на "ты", не давал. Мы на брудершафт не пили и в одной канаве не валялись. Не способны на элементарное уважение в комментариях, то может рано из детского сада вылезли? Smile

Аватар пользователя Orion76 Orion76 7 июня 2012 в 12:35

а еще в settings.php есть массив:

<?php
# $conf = array(
#   'site_name' => 'My Drupal site',
#   'theme_default' => 'minnelli',
#   'anonymous' => 'Visitor',
?>

при помощи которого можно задавать свои значения переменным...