Поле cck с подгонкой значения по правилу и поиск по нему - КАК?
Прислано: neutron
пт, 03/09/2010 - 08:50
Добрый день.
На сайте стоит CCK, пользователи добаляют материал, заполняя форму. Одно из полей формы - серийный номер.
Надо реализовать поиск (просто фильтр) по серийным номерам.
Проблема состоит в том, что пользователи вводят номера как им в голову взбредет:
S23423MK222 S-23423 MK222 S 23 423 MK-222
Подскажите пожалуйста, как привести значение поля к первому варианту - без пробелов, дефисов, тире и других небуквенно-цифровых символов?
Так же должно быть и в поиске - пользователь вводит номер как хочет, а ищет по стандартному варианту...
- neutron's blog
- Для комментирования войдите или зарегистрируйтесь
Приучай юзверей к дисциплине ;)
- Для комментирования войдите или зарегистрируйтесь
Приучай юзверей к дисциплине ;)
Ну как крайний вариант... =)
но лучше, конечно, как-то сделать жесткие рамки
- Для комментирования войдите или зарегистрируйтесь
сдалай проверку ввода символов джаваскриптом, если вводят какоенить г... чтоб оно тут же удалялось
- Для комментирования войдите или зарегистрируйтесь
<?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;
}
}
}
?>- Для комментирования войдите или зарегистрируйтесь
А вот с поиском ситуацию едва ли улучшишь - пиши подсказку пользователям, чтобы при вводе серийника не вводили разделители
- Для комментирования войдите или зарегистрируйтесь
<?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;
}
}
}
?>а куда этот хук прописывать? Я с друпалом недавно общаюсь, ни разу не использовал хуки ещё((
- Для комментирования войдите или зарегистрируйтесь
Почитайте как создать свой модуль.
А, кстати, ошибочку допустила: вместо $ret= надо return
- Для комментирования войдите или зарегистрируйтесь



Комментарии