Concepts clés
Ce didacticiel montre comment intégrer les tables de base de données Drupal 7 personnalisées avec le module Views, permettant de puissantes capacités de requête et de présentation de données. Nous couvrirons la prise de vue de la structure de table de votre module, la définition de gestionnaires de champs pour l'affichage, le filtrage et le tri et l'établissement de relations entre les tables à l'aide de jointures. Le processus exploite les gestionnaires de vues - classes gérant les opérations d'affichage, de tri et de filtrage - permettant la personnalisation au-delà des fonctionnalités par défaut.
Ce guide se concentre sur les tables non représentées comme des entités Drupal. Pour l'intégration d'entité avec les vues, veuillez vous référer à d'autres ressources.
Un exemple de module, "Expose", est disponible (détails du référentiel omis pour la concision). Le tableau exposed
(structure détaillée ci-dessous) sera utilisé pour la démonstration. Les exemples de données peuvent être insérés à l'aide de cette commande MySQL:
INSERT INTO `exposed` (`id`, `name`, `deadline`, `node_id`) VALUES (1, 'Danny', 1399477939, 1), (2, 'Peter', 1399477957, 2);
Intégration de votre table avec les vues
L'intégration implique deux étapes clés: information des vues sur votre module et définition de la structure de votre table.
étape 1: Informer les vues sur votre module
implémenter hook_views_api()
dans le fichier .module
de votre module:
/** * Implements hook_views_api(). */ function expose_views_api() { return array( 'api' => 3, 'path' => drupal_get_path('module', 'expose') . '/includes/views', ); }
Cela spécifie la version API des vues et l'emplacement de vos fichiers liés aux vues.
étape 2: Définition de la structure de votre table
Créer expose.views.inc
(dans le répertoire spécifié ci-dessus) et implémenter hook_views_data()
:
/** * Implements hook_views_data(). */ function expose_views_data() { $data = array(); $data['exposed']['table']['group'] = t('Exposed'); $data['exposed']['table']['base'] = array( 'title' => t('Exposed'), 'help' => t('Contains records exposed to Views.'), ); // Field definitions (see below) return $data; }
Ce code définit le groupe de la table et le désigne comme une table de base, ce qui la rend disponible dans l'interface des vues. Les définitions de champ (détaillées suivantes) seront ajoutées ici.
étape 3: Définition des champs
Dans hook_views_data()
, ajoutez des définitions de champ pour chaque colonne:
// ... (previous code) ... // ID field $data['exposed']['id'] = array( 'title' => t('ID'), 'help' => t('Record ID'), 'field' => array('handler' => 'views_handler_field_numeric'), 'sort' => array('handler' => 'views_handler_sort'), 'filter' => array('handler' => 'views_handler_filter_numeric'), ); // Name field $data['exposed']['name'] = array( 'title' => t('Name'), 'help' => t('Record name'), 'field' => array('handler' => 'views_handler_field'), 'sort' => array('handler' => 'views_handler_sort'), 'filter' => array('handler' => 'views_handler_filter_string'), ); // Deadline field $data['exposed']['deadline'] = array( 'title' => t('Deadline'), 'help' => t('Record deadline'), 'field' => array('handler' => 'views_handler_field_date'), 'sort' => array('handler' => 'views_handler_sort_date'), 'filter' => array('handler' => 'views_handler_filter_date'), ); // ... (Node ID field and join definition - see below) ... return $data;
Cela spécifie les gestionnaires pour l'affichage (field
), le tri (sort
) et le filtrage (filter
) pour chaque colonne. Les gestionnaires appropriés (par exemple, numérique, cha?ne, date) sont sélectionnés en fonction des types de données.
étape 4: Gestion des relations (rejoindre)
pour rejoindre le tableau node
en utilisant la colonne node_id
:
// ... (previous code) ... // Join definition $data['exposed']['table']['join'] = array( 'node' => array( 'left_field' => 'nid', 'field' => 'node_id', ), ); // Node ID field $data['exposed']['node_id'] = array( 'title' => t('Node ID'), 'help' => t('Node ID'), 'field' => array('handler' => 'views_handler_field_node'), 'sort' => array('handler' => 'views_handler_sort'), 'filter' => array('handler' => 'views_handler_filter_numeric'), 'relationship' => array( 'base' => 'node', 'field' => 'node_id', 'handler' => 'views_handler_relationship', 'label' => t('Node'), ), 'argument' => array( 'handler' => 'views_handler_argument_node_nid', 'numeric' => TRUE, 'validate type' => 'nid', ), ); return $data;
Ceci définit la jointure et spécifie le gestionnaire views_handler_field_node
pour l'affichage, permettant l'accès aux champs liés au n?ud. Une relation et un argument sont également définis pour le filtrage et le filtrage contextuel basé sur l'ID de n?ud.
Après implémentation de ces étapes, effacez le cache de Drupal. Votre table personnalisée doit désormais être accessible dans l'interface des vues.
Conclusion
Cette explication détaillée fournit un guide complet pour intégrer les tables personnalisées avec le module Views de Drupal 7. N'oubliez pas d'adapter les sélections de gestionnaires à vos types de données spécifiques et de tirer parti de la flexibilité des gestionnaires personnalisés pour les fonctionnalités avancées. La section FAQ de l'entrée d'origine a été omise car elle est largement couverte dans cette réponse raffinée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20

La méthode d'installation de PHP varie d'un système d'exploitation au système d'exploitation. Voici les étapes spécifiques: 1. Les utilisateurs de Windows peuvent utiliser XAMPP pour installer des packages ou les configurer manuellement, télécharger XAMPP et les installer, sélectionner des composants PHP ou ajouter PHP aux variables d'environnement; 2. Les utilisateurs de MacOS peuvent installer PHP via Homebrew, exécuter la commande correspondante pour installer et configurer le serveur Apache; 3. Les utilisateurs de Linux (Ubuntu / Debian) peuvent utiliser le gestionnaire de package APT pour mettre à jour la source et installer des extensions PHP et communes, et vérifier si l'installation est réussie en créant un fichier de test.

TovalidateUserInputinPhp, usebuilt-invalidationfunctions likeFilter_var () etFilter_Input (), appliquerareArexpressionsforcustomFormatsSuchasUserNameSorphonEnombers

Pour détruire complètement une session dans PHP, vous devez d'abord appeler Session_Start () pour démarrer la session, puis appeler session_destroy () pour supprimer toutes les données de session. 1. Utilisez d'abord session_start () pour s'assurer que la session a commencé; 2. Ensuite, appelez session_destroy () pour effacer les données de session; 3. Facultatif mais recommandé: Réflexion manuelle $ _Session Tableau pour effacer les variables globales; 4. En même temps, supprimez les cookies de session pour empêcher l'utilisateur de conserver l'état de session; 5. Enfin, faites attention à la redirection de l'utilisateur après la destruction et évitez de réutiliser immédiatement les variables de session, sinon la session doit être redémarrée. Cela garantira que l'utilisateur quitte complètement le système sans laisser d'informations résiduelles.

ThePhpFunctionSerialize () andUnserialize () sont utilisés pour le stobercomplexdatasterDestoRoSintOsTorasandAbackAgain.1.Serialize () C onvertsDatalikECarraysorObjectSraystringContainingTypeandStructureInformation.2
