доброе время суток!
имеется артикул АААА, но пользователь может ввести АА-АА но при этом найти АААА
подскажите, пожалуйста, как реализовать такой поиск по артикулу в Ubercart?
Это я понимаю, но как это делать?
как именно прикрутить этот php код или как это сделать иначе? <?php$st = preg_replace ("/[^a-zA-ZА-Яа-я0-9\s]/","",$st);?>
function mymodule_form_alter(&$form, $form_state, $form_id){ switch($form_id){ case'views_exposed_form': //добавляем свой сабмит перед уже имеющимся $form['#submit'] = array('mymodule_filter_submit', 'views_exposed_form_submit'); break; } }
function mymodule_filter_submit($form, &$form_state){ //т.к. используется ajax, то var_dump()'ом не получится посмотреть, что лежит в $form_state['values'] //логируем в базу с помощью watchdog(). логи можно посмотреть по адвесу admin/reports/dblog watchdog('fuck', var_export($form_state['values'], true));
//после того, как посмотрели какое поле передается, его можно заменить (допустим это поле field_bla_bla_bla) $form_state['values']['field_bla_bla_bla'] = str_replace('-','', $form_state['values']['field_bla_bla_bla']);
Комментарии
Вырезать всё что не является буквой и делать поиск, вопрос собственно в чём?
Это я понимаю, но как это делать?
как именно прикрутить этот php код или как это сделать иначе?
<?php$st = preg_replace ("/[^a-zA-ZА-Яа-я0-9\s]/","",$st);?>
Давайте лучше начнём с того, каким образом у вас вообще поиск по артикулу сделан, или вы хотите его прикрутить к сферическому поиску в вакууме?
в настоящий момент он реализован через views - фильтры
Меня тоже интересует похожий вопрос. Только начал осваивать drupal. Облазил весь интернет в поисках ответа.
Стоит задача убирать (пропускать) любые спецсимволы при запросе. Т.е. в запросе вводим 'aa-bb-cc' или 'aa/bb/cc' ,а получаем в ответ 'aabbcc'.
Фильтрацию делаю: представления -> фильтры.
switch ($form_id) {
case 'views_exposed_form':
//добавляем свой сабмит перед уже имеющимся
$form['#submit'] = array('mymodule_filter_submit', 'views_exposed_form_submit');
break;
}
}
function mymodule_filter_submit($form, &$form_state){
//т.к. используется ajax, то var_dump()'ом не получится посмотреть, что лежит в $form_state['values']
//логируем в базу с помощью watchdog(). логи можно посмотреть по адвесу admin/reports/dblog
watchdog('fuck', var_export($form_state['values'], true));
//после того, как посмотрели какое поле передается, его можно заменить (допустим это поле field_bla_bla_bla)
$form_state['values']['field_bla_bla_bla'] = str_replace('-','', $form_state['values']['field_bla_bla_bla']);
}
надеюсь понятно объяснил:)
спасибо
большое спасибо))...
Можно эту тему подробнее как для новичка?