Непонятно (view, voting api)

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

Аватар пользователя glintwine glintwine 9 июля 2008 в 9:25

Задача:
Сделать ленту материалов, типа блог (в том числе и коллективные), отсортированную по дате добавления, критерий вхождения рейтинг равный, либо больший 0.

Проблема:
Создал вьюшку, страницу тизеров, фильтр по типу материалов и voting result (sum) больше либо равное 0. Сортировка по дате добавления. Непонятки в том, что в ленте отбражаются лишь материалы за которые уже был отдан голос.

Тоесть если материал новый и рейтинг у него ноль, он туда не попадает, но если за материал были голоса (например 1+ и 1-) он входит с рейтингом ноль в эту вьюшку.

Необходимо же чтоб материалы новые за которые еще не голосовали так же там отображались. Как побороть? Сталкивался кто нибудь с такой проблемой?

Комментарии

Аватар пользователя glintwine glintwine 9 июля 2008 в 14:30

Огромное спасибо.

По ссылке следующее решение в файле votingapi_views.inc меняем строку:
$query->add_where("%s %s %d", $field, $filter['operator'], $filter['value']);

на

if (( $filter['value'] == "0") || ( $filter['value'] === NULL) ){
$query->add_where("$field is NULL OR %s %s %d", $field, $filter['operator'], $filter['value']);
} else {
$query->add_where("%s %s %d", $field, $filter['operator'], $filter['value']);
}

Теперь выставляя во вьюшке значение greater than or equal to 0 будут отображаться материалы от нуля и выше.

Эта заплатка правда не решает проблемы если нам надо вывести greater than or equal to -1
пока не пробывал но думаю это можно побороть составной вьюшкой о которой писал Ромка . Выставляя в одной значение greater than or equal to -1, а в другой equal to 0 в итоге на страницы должны отобразиться все материалы от -1 и выше, включае те за которые не голосовали.

Поправте, если не правильно мыслю.

Аватар пользователя glintwine glintwine 9 июля 2008 в 16:56

Задачу описанную в топике решает. Но если идти дальше и как я написал выше сделать сортировку от -1 то нулевые ноды идут стороной. Помоему это даже видно из кода, который проверяет есть ли ноль в поле, иначе работает стандарт.

могу ошибаться, проверю дома более тщательно.