Поле cck с подгонкой значения по правилу и поиск по нему - КАК?

Прислано: neutron

пт, 03/09/2010 - 08:50

Добрый день.
На сайте стоит CCK, пользователи добаляют материал, заполняя форму. Одно из полей формы - серийный номер.
Надо реализовать поиск (просто фильтр) по серийным номерам.

Проблема состоит в том, что пользователи вводят номера как им в голову взбредет:

S23423MK222
S-23423 MK222
S 23 423 MK-222

Подскажите пожалуйста, как привести значение поля к первому варианту - без пробелов, дефисов, тире и других небуквенно-цифровых символов?
Так же должно быть и в поиске - пользователь вводит номер как хочет, а ищет по стандартному варианту...

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано eLSe в пт, 03/09/2010 - 09:19.

Приучай юзверей к дисциплине ;)


Опубликовано neutron в пт, 03/09/2010 - 09:28.

eLSe написал(а):

Приучай юзверей к дисциплине ;)

Ну как крайний вариант... =)
но лучше, конечно, как-то сделать жесткие рамки


Опубликовано Full_acсess в пт, 03/09/2010 - 09:29.

сдалай проверку ввода символов джаваскриптом, если вводят какоенить г... чтоб оно тут же удалялось


Опубликовано eLSe в пт, 03/09/2010 - 09:33.

<?php
hook_nodeapi
(&$node$op$a3 NULL$a4 NULL){
 if ((
$op=='validate') && ($node->type=='тип материала')){
        if (
preg_match("/^[\w\d]+$/i"$node->поле[0]['value']){
                
form_set_error('поле''Поле серийного номера может содержать только буквы и цифры');
        
$ret=false;
        }
 }
}
?>


Опубликовано eLSe в пт, 03/09/2010 - 09:34.

А вот с поиском ситуацию едва ли улучшишь - пиши подсказку пользователям, чтобы при вводе серийника не вводили разделители


Опубликовано neutron в пт, 03/09/2010 - 10:24.

eLSe написал(а):

<?php
hook_nodeapi
(&$node$op$a3 NULL$a4 NULL){
 if ((
$op=='validate') && ($node->type=='тип материала')){
        if (
preg_match("/^[\w\d]+$/i"$node->поле[0]['value']){
                
form_set_error('поле''Поле серийного номера может содержать только буквы и цифры');
        
$ret=false;
        }
 }
}
?>

а куда этот хук прописывать? Я с друпалом недавно общаюсь, ни разу не использовал хуки ещё((


Опубликовано eLSe в пт, 03/09/2010 - 10:26.

Почитайте как создать свой модуль.
А, кстати, ошибочку допустила: вместо $ret= надо return


Новое на сайте

Ссылки партнёров