Comment puis-je remplacer une requête Views 3 par une requête SQL personnalisée dans le code?Comment remplacer une requête Drupal Views?
Répondre
Si vous souhaitez exécuter un SQL personnalisé (que Views ne peut pas générer), par exemple des champs calculés ou des jointures SQL compliquées, ce que vous recherchez est un module personnalisé.
Voir drupal un guide pour vous aider à démarrer
Compris. Je cherchais plus pour quelles vues je peux utiliser pour remplacer la requête SQL. – markdorison
D'après ce que je comprends, vous pouvez utiliser hook_views_query_alter pour modifier la requête. Je suppose que vous pourriez également l'utiliser pour remplacer la requête. Voici quelques exemples de hook_views_query_alter, pour vous aider à démarrer:
Ce ne peut plus être pertinent pour vous, mais il y a ce qui semble être une discussion très utile sur Drupal.org à Implementing custom SQL query for Views/Filters qui ressemble à cela répondre à ma question similaire.
En particulier, l'affiche initiale a suggéré la fixation à crochet views_views_pre_execute
, qui quelqu'un d'autre mentionné peut être mis dans un module personnalisé comme:
function mymodulename_views_pre_execute(&$view) {
if($view->name=="groups_list2") {
// ...
$view->build_info['query'] = "SELECT node.nid AS nid ".
"FROM node WHERE node.type='%s'"; // wrapped for legibility
}
}
Et une autre affiche mentionné mySQL Views et Table Wizard (direct link), bien qu'ils J'ai mentionné que cela valait la peine de garder à l'esprit this article about mySQL Views performance
Cela vaut la peine de lire tout le fil sur Drupal.org, car je l'ai trouvé vraiment utile; J'espère que quelqu'un d'autre aussi.
Mise à jour: En effet, c'est précisément ce que nous sommes en train de faire - remplaçant dans un module views_views_pre_execute
personnalisé pour injecter une nouvelle SQL avant qu'il arrive à la base de données. J'avais ouvert une question similaire (mais plus spécifique) sur Drupal.SE au Slow query with large dataset in Drupal views — better to process in SQL or PHP?, que vous pourriez trouver utile.
- 1. Drupal Views relation
- 2. Drupal Views Arguments
- 3. Drupal: problème CCK/Views
- 4. Drupal Views Relations
- 5. Drupal Views Relations et arguments
- 6. Drupal Views Ajax lignes d'actualisation
- 7. Drupal Views api, ajouter un argument simple
- 8. Comment mettre à jour la requête Drupal Views 2 avec une expression OR?
- 9. Drupal: Drupal6 views: Restriction de filtre
- 10. Drupal Exposed Views Filtrer la date personnalisée
- 11. Drupal Views: Générer un fichier xml
- 12. Drupal, Views: l'en-tête n'accepte pas PHP
- 13. Drupal, Views: multiselection et recherche nécessaire
- 14. Drupal 6 & Views 2 - Champ DISTINCT
- 15. Drupal Views 3 réanalyser les fichiers modèles
- 16. Comment supprimer des noeuds de Views dans drupal 6
- 17. Comment filtrer par champ personnalisé Profil utilisateur dans Drupal Views?
- 18. Drupal Views Question: Affichage des résultats dans deux colonnes?
- 19. Drupal vues par défaut contre Views contrib module
- 20. Comment remplacer une action de formulaire dans Drupal?
- 21. Drupal, Views: utiliser AJAX pour charger le noeud complet?
- 22. Drupal Views filtre exposé du nom de l'auteur
- 23. Drupal - Remplacer la page d'accueil
- 24. Requête pour remplacer une virgule dans SQL?
- 25. Remplacer plusieurs chaînes dans une requête SQL
- 26. Drupal effectuant une requête sur la base de données
- 27. Drupal db_query_range Requête SQL
- 28. Drupal: Filtrage/tri complexe à l'aide du module Views Fast Search
- 29. Linq remplacer champ pour une sous-requête
- 30. comment utiliser comme requête dans drupal
Les vues 3 sont toujours en alpha. Êtes-vous sûr que Views 2 ne peut pas faire ce que vous voulez? –
Oui, Views 3 est une exigence. Vues 3 semble être relativement mature à ce stade de mon expérience. – markdorison
Pouvez-vous élaborer? Je veux dire - si vous allez complètement remplacer la requête, alors pourquoi utiliser des vues du tout? – marcvangend