На сайте есть страница на которой выводится список пользователей с определенной ролью.
Сделано с помощью page и такого кода
<?php
$rid = 3;
$nlimit = 20;
$result = pager_query(db_rewrite_sql("SELECT u.uid, u.created FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = $rid ORDER BY u.created ASC"), variable_get(0, $nlimit));
$fields = array();
while ($account = db_fetch_object($result)) {
$account = user_load(array('uid' => $account->uid));
$profile = _profile_update_user_fields($fields, $account);
$output .= theme('profile_listing', $account, $profile);
}
$output .= theme('pager', NULL, $nlimit);
print ($output);
?>
Все работало нормально, но после установки taxonomy access вылезает ошибка:
Warning: Unknown table 'n' in on clause query: SELECT COUNT(*) FROM users u INNER JOIN users_roles ur ON u.uid=ur.uid INNER JOIN node_access na ON na.nid = n.nid WHERE (na.grant_view >= 1 AND ((na.gid = 0 AND na.realm = 'all') OR (na.gid = 2 AND na.realm = 'term_access') OR (na.gid = 4 AND na.realm = 'term_access'))) AND ur.rid = 3 in z:\home\site\www\includes\database.mysql.inc on line 121
Warning: Unknown table 'n' in on clause query: SELECT u.uid, u.created FROM users u INNER JOIN users_roles ur ON u.uid=ur.uid INNER JOIN node_access na ON na.nid = n.nid WHERE (na.grant_view >= 1 AND ((na.gid = 0 AND na.realm = 'all') OR (na.gid = 2 AND na.realm = 'term_access') OR (na.gid = 4 AND na.realm = 'term_access'))) AND ur.rid = 3 ORDER BY u.created ASC LIMIT 0, 20 in z:\home\site\www\includes\database.mysql.inc on line 121
Как я понял этот модуль добавляет в запрос проверку на доступ к ноде, n.nid и т.д. но т.к. у нас не список нод то это приводит к ошибке.
Как исправить ума не приложу, надеюсь на вашу поддержку.
Комментарии
Если это пользователей, то независимо от категорий они видны всем. Значит проверки taxonomy access здесь не нужны. Значит надо убрать db_rewrite_sql().
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
Огромное спасибо!