Tôi đang cố gắng thay thế tìm kiếm mặc định bằng mệnh đề THÍCH trong Drupal 7. Tôi đã cố gắng thay đổi truy vấn theo Thêm điều kiện OR vào truy vấn hiện có :
function MYMODULE_query_node_access_alter(QueryAlterableInterface $query) {
foreach ($query->getTables() as $table) {
// LIKE for search results.
if ($table['table'] == 'search_index') {
// Get the query args and then the search term
$args =& $query->getArguments();
$search = $args[':db_condition_placeholder_1'];
// Get a reference to the existing query conditions.
$conditions =& $query->conditions();
// Save the former conditions
$former_conditions = $conditions;
// Reset the condition array. It needs a default #conjunction for which AND is fine
$conditions = array('#conjunction' => array_shift($former_conditions));
// Replace the search condition in the query
foreach ($former_conditions as $key => $condition) {
if ($key != 1) {
$query->condition($condition['field'], $condition['value'], $condition['operator']);
}
else {
$query->condition('i.word', '%' . db_like($search) . '%', 'LIKE');
}
}
}
}
}
Tìm kiếm với từ "khai báo" hiển thị các kết quả giống như tìm kiếm drupal mặc định, nhưng tìm kiếm với "Dec" không tìm thấy bất kỳ kết quả nào.
Bất cứ ý tưởng tại sao mã của tôi không hoạt động?