Добрый день. столкнулся с такой вот проблемкой.
есть тип материала. Title генерируется автоматически с помощью auto nodetitle. title'ы исключительно целые числа.
во вьюхе нужно добавить развернутый фильтр с возможностью указать диапазон title'ов. возможно ли такое?
или может есть другие способы?
например если возможно, как-то подменить title на int поле CCK, вот по полю сск во вьювс есть фильтр диапазонов.
Может у вас будут более подходящие идеи?
Комментарии
Я уже в БД исправил title на INT, но views все ровно воспринимает это поле как varchar, и не дает нужный операторю может пачнуть views как-то можно ?
создать термины с названиями "от 0 до 100" "от 101 до 200" "от 201 до 300"
и присваивать их нодам ,а потом фильтр по терминам словаря.
Это не варинат.
title у меня генерируется php скриптом.
<?php
// Имя файла, в котором хранится счетчик
$file_counter = "counter_admin.txt"; // Читаем текущее значение счетчика
if (file_exists($file_counter)) {
$fp = fopen($file_counter, "r");
$counter = fread($fp, filesize($file_counter));
fclose($fp);
} else {
$counter = 0;
} // Увеличиваем счетчик на единицу
$counter++; // Сохраняем обновленное значение счетчика
$fp = fopen($file_counter, "w");
fwrite($fp, $counter);
fclose($fp); // Выводим значение счетчика на печать
print $counter;}?>
на каждого юзера идет отдельный счетчик.
материалов очень много, и поэтому ручками создавать словари не катит.
а если rulesom ?
Решил проблему, правда как всегда через одно место, но все же.
Задача стояла след. :
Сделать автоматическую генерацию 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($fp, filesize($file_counter));
fclose($fp);
} else {
$counter = 0;
} // Увеличиваем счетчик на единицу
$counter++;
// ........
// ______________________
if ($user->uid == 2) { // Имя файла, в котором хранится счетчик
$file_counter = "counter_moderator.txt";
?>
и т.д. всего у меня будет 5-6 юзеров. по-этому такой способ (для меня) не напряжной. (по правде говоря, другого я просто не знаю )
а чтобы было все еще лучше, я закрыл доступ к редактированию этого поля для роли.
вот такое вот решение. может кто-то подправит меня и подскажет как это еще упростить можно?
может это кому поможет http://drupal.org/project/serial
Что за люди?
Нафиг так усложнять?
Создать новое поле, например, false_title, куда записывать циферку заветную.
В autonodetitle прописать, что title == false_title.
Всё, все проблемы уходят.
если писать php код счетчика в значение по умолчанию для поля, то счетчик будет увеличиваться при каждом открытии страницы node/add
это не есть правильно, т.к. страницу можно открыть а ноду не создать.
и самое главное, почему я не могу использовать поле title как title материала, мне нужно добавить сортировку по диапазону чисел (title'ов), а это можно сделать только с числовым полем.
а модуль я посмотрю, спасибо.
Чо?
Это ты с кем сейчас разговаривал?
Почему тайтл ты можешь увеличивать на +1, а обычное числовое поле нет?
да и числовое поле я тоже могу увеличить на 1.
эх.. смотри
если я вписываю default value код счетчика, при открытии страницы node/add счетчик увеличился на 1, и значение записалось в файл. НО есть вариант НЕ создавать ноду, и получиться что следующий материал будет иметь значение не по порядку. а title сохраняет значение счетчика в файл уже после создания ноды, а не во время открытия страницы node/add
1. Делать такое на вызове формы - быдлокод. Как тогда импорт и прочий вызовы node_save()?
2. Модуль Serial
3. Type-local nids