2012-02-17 3 views
0

Я пытаюсь изменить запрос в целях использования mymodule_views_pre_execute и использовал Devel найти запрос SQL это в настоящее время используется, что ниже:Drupal 7 изменяющего запрос в режиме

SELECT node.nid AS nid FROM node node LEFT JOIN field_data_field_date 
field_data_field_date ON node.nid = field_data_field_date.entity_id AND 
(field_data_field_date.entity_type = :views_join_condition_0 AND 
field_data_field_date.deleted  = :views_join_condition_1) 
WHERE ((
(DATE_FORMAT(field_data_field_date.field_date_value, '%Y-%m-%d\T%H:%i') > :node_date_filter))AND 
(((node.status = :db_condition_placeholder_2))))  
LIMIT 10 OFFSET 0 

И тогда я повторно делать это с помощью следующих действий:

$query = db_select("node", "n"); 
      $query->addField("n", "nid"); 
      $query->leftJoin("{field_data_field_date}", "{field_data_field_date}", 
      "n.nid = field_data_field_date.entity_id AND field_data_field_date.entity_type = 'node' 
      AND field_data_field_date.deleted = '0'"); 

      $query->where("(DATE_FORMAT(field_data_field_date.field_date_value, '%Y-%m-%d\T%H:%i') > NOW())"); 
      $query->where("n.status = '1'"); 

Я должен был заменить: views_join_condition_0 с «node»,: views_join_condition_1 с «0» и: node_date_filter к NOW() хотя я не s если это правильный путь? Если я уйду: views_join_condition_0,: views_join_condition_1 и: node_date_filter, хотя он не работает ?!

ответ

0

Вместо этого использовать hook_view_query_alter(&$view, &$query).

Смежные вопросы