[РЕШЕНО]Views Expouse Filter - диапазон по title

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

Аватар пользователя Dorian76453 Dorian76453 8 ноября 2011 в 13:33

Добрый день. столкнулся с такой вот проблемкой.
есть тип материала. Title генерируется автоматически с помощью auto nodetitle. title'ы исключительно целые числа.
во вьюхе нужно добавить развернутый фильтр с возможностью указать диапазон title'ов. возможно ли такое?
или может есть другие способы?
например если возможно, как-то подменить title на int поле CCK, вот по полю сск во вьювс есть фильтр диапазонов.
Может у вас будут более подходящие идеи?

Комментарии

Аватар пользователя Dorian76453 Dorian76453 8 ноября 2011 в 15:48

Я уже в БД исправил title на INT, но views все ровно воспринимает это поле как varchar, и не дает нужный операторю может пачнуть views как-то можно ?

Аватар пользователя drupby drupby 8 ноября 2011 в 15:45

создать термины с названиями "от 0 до 100" "от 101 до 200" "от 201 до 300"
и присваивать их нодам ,а потом фильтр по терминам словаря.

Аватар пользователя Dorian76453 Dorian76453 8 ноября 2011 в 15:53

Это не варинат.
title у меня генерируется php скриптом.

<?php
// Имя файла, в котором хранится счетчик
$file_counter "counter_admin.txt";

// Читаем текущее значение счетчика
if (file_exists($file_counter)) {
    
$fp fopen($file_counter"r");
    
$counter fread($fpfilesize($file_counter));
    
fclose($fp);
} else {
    
$counter 0;
}

// Увеличиваем счетчик на единицу
$counter++;

// Сохраняем обновленное значение счетчика
$fp fopen($file_counter"w");
fwrite($fp$counter);
fclose($fp); 

// Выводим значение счетчика на печать
print $counter;}?>

на каждого юзера идет отдельный счетчик.
материалов очень много, и поэтому ручками создавать словари не катит.

Аватар пользователя drupby drupby 8 ноября 2011 в 15:55

"Dorian76453" wrote:
на каждого юзера идет отдельный счетчик.
материалов очень много, и поэтому ручками создавать словари не катит.

а если rulesom ?

Аватар пользователя Dorian76453 Dorian76453 9 ноября 2011 в 14:18

Решил проблему, правда как всегда через одно место, но все же.
Задача стояла след. :
Сделать автоматическую генерацию title для каждого юзера отдельно по порядку.
нужны модули auto node title; cck ; views.
код счетчика я приводил выше.
от поля title приходитсья отказаться совсем. функцию title будет исполнять int полу cck.
была идея вставить код счетчика в поле cck как значение по умолчанию, но в таком случае при каждом открытии страницы node/add/type счетчик увеличивается на 1.

Я решил это так:
в auto node title я вставляю php который открывает файл, увеличивает счетчик на 1 и сохраняет файл. а выводит он число с счетчика + имя юзера (это для удобства редактирования материалов админу)
в поле cck как дефаул значение я вставил код который открывает файл счетчика и выводит значение.
вот и все.
для каждого юзера я сделал след. образом:

<?php
 
global $user;
if (
$user->uid == 1) {

// Имя файла, в котором хранится счетчик
$file_counter "counter_admin.txt";

// Читаем текущее значение счетчика
if (file_exists($file_counter)) {
    
$fp fopen($file_counter"r");
    
$counter fread($fpfilesize($file_counter));
    
fclose($fp);
} else {
    
$counter 0;
}

// Увеличиваем счетчик на единицу
$counter++;
// ........
// ______________________
if ($user->uid == 2) {

// Имя файла, в котором хранится счетчик
$file_counter "counter_moderator.txt";
?>

и т.д. всего у меня будет 5-6 юзеров. по-этому такой способ (для меня) не напряжной. (по правде говоря, другого я просто не знаю Smile )
а чтобы было все еще лучше, я закрыл доступ к редактированию этого поля для роли.

вот такое вот решение. может кто-то подправит меня и подскажет как это еще упростить можно?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 9 ноября 2011 в 18:53

Что за люди?
Нафиг так усложнять?
Создать новое поле, например, false_title, куда записывать циферку заветную.
В autonodetitle прописать, что title == false_title.
Всё, все проблемы уходят.

Аватар пользователя Dorian76453 Dorian76453 9 ноября 2011 в 20:15

RxB wrote:
Что за люди?
Нафиг так усложнять?
Создать новое поле, например, false_title, куда записывать циферку заветную.
В autonodetitle прописать, что title == false_title.
Всё, все проблемы уходят.

если писать php код счетчика в значение по умолчанию для поля, то счетчик будет увеличиваться при каждом открытии страницы node/add
это не есть правильно, т.к. страницу можно открыть а ноду не создать.
и самое главное, почему я не могу использовать поле title как title материала, мне нужно добавить сортировку по диапазону чисел (title'ов), а это можно сделать только с числовым полем.

а модуль я посмотрю, спасибо.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 9 ноября 2011 в 21:19

"Dorian76453" wrote:
если писать php код счетчика в значение по умолчанию для поля, то счетчик будет увеличиваться при каждом открытии страницы node/add

Чо?
Это ты с кем сейчас разговаривал?
Почему тайтл ты можешь увеличивать на +1, а обычное числовое поле нет?

Аватар пользователя Dorian76453 Dorian76453 10 ноября 2011 в 9:19

да и числовое поле я тоже могу увеличить на 1.
эх.. смотри
если я вписываю default value код счетчика, при открытии страницы node/add счетчик увеличился на 1, и значение записалось в файл. НО есть вариант НЕ создавать ноду, и получиться что следующий материал будет иметь значение не по порядку. а title сохраняет значение счетчика в файл уже после создания ноды, а не во время открытия страницы node/add