_db_rewrite_sql
includes/database.inc, строка 268
- Версии
- 5 – 6
_db_rewrite_sql($query = '', $primary_table = 'n', $primary_field = 'nid', $args = array())
Вспомогательная функция для db_rewrite_sql()
.
Collects JOIN and WHERE statements via hook_db_rewrite_sql()
Decides whether to select primary_key or DISTINCT(primary_key)
Параметры
$query
Запрос, который будет перезаписан.
$primary_table
Name or alias of the table which has the primary key field for this query.
Typical table names would be: {blocks}, {comments}, {forum}, {node},
{menu}, {term_data} or {vocabulary}. However, in most cases the usual
table alias (b, c, f, n, m, t or v) is used instead of the table name.
$primary_field
Имя основного поля.
$args
Массив дополнительных аргументов.
Возвращаемое значение
An array: join statements, where statements, field or DISTINCT(field).
Связанные темы
Код
<?php
function _db_rewrite_sql($query = '', $primary_table = 'n', $primary_field = 'nid', $args = array()) {
$where = array();
$join = array();
$distinct = FALSE;
foreach (module_implements('db_rewrite_sql') as $module) {
$result = module_invoke($module, 'db_rewrite_sql', $query, $primary_table, $primary_field, $args);
if (isset($result) && is_array($result)) {
if (isset($result['where'])) {
$where[] = $result['where'];
}
if (isset($result['join'])) {
$join[] = $result['join'];
}
if (isset($result['distinct']) && $result['distinct']) {
$distinct = TRUE;
}
}
elseif (isset($result)) {
$where[] = $result;
}
}
$where = empty($where) ? '' : '('. implode(') AND (', $where) .')';
$join = empty($join) ? '' : implode(' ', $join);
return array($join, $where, $distinct);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии