Существует ли такой модуль, который в процессе создания ноды проверял на схожесть с другими заголовками материалов
Т.е. если я создаю базу организаций, то есть вероятность что через 500 созданных я случайно начну снова создавать ту которую уже создал
На toster.ru подобное что хочу, т.е. вводя заголовок он начинает показывать похожее
Комментарии
https://www.drupal.org/project/unique_field
Как оцените модуль, дата релиза под семёрку, старовата
Так проверьте, заодно и напишите результат.
Проверил, ищет только идеальное совпадение
одну букву поменял и уже всё
ну а как вы хотели.
примерно так
duplicates.module
* Implementation of hook_menu()
*/
function duplicates_menu() {
$items = array();
$items['duplicates/check'] = array(
'title' => 'Check for duplicates',
'page callback' => 'duplicates_autocomplete',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Implementation of hook_form_alter()
*/
function duplicates_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'article_node_form') {
$form['title']['#autocomplete_path'] = 'duplicates/check';
}
}
function duplicates_autocomplete($string) {
$result = db_select('node', 'n')
->fields('n', array('title'))
->condition('title', '%' . db_like($string) . '%', 'LIKE')
->condition('type', 'article')
->range(0, 10)
->execute();
$matches = array();
foreach ($result as $row) {
$matches[$row->title] = check_plain($row->title);
}
drupal_json_output($matches);
}
ну если вместо "пример" начнете писать "прымер", то тут уже никакой модуль не спасет
Сфинкс для такого - как из пушки по мухам. Триграммный индекс и расстояние Левенштейна классика для решения задач подобного рода. Делов часов на 5-6 максимум с админкой для настройки весов.
это уже будет совсем другая история, если ТС не может добавить для поля обычный autocomplete, то данный вопрос придется перемещать в другой раздел
Тролли вы! =))))))))) я не спорю, с PHP и API у меня туго, поэтому всегда стараюсь найти какое нибудь решение из коробки
В идеале, как я это вижу, это добавление автокомплита и что то вроде русского стемминга.