Les plats clés
- Drupal est un système de gestion de contenu flexible qui permet la création de nouveaux types de n?uds en écrivant un module personnalisé; Ceci est bénéfique pour la création de sites Web plus complexes au-delà des types de n?uds par défaut et de n?uds.
- La création d'un nouveau type de n?ud implique la création d'un module avec trois fichiers: .info (contient des informations sur le module), .install (détails sur ce que le module va installer ou désinstaller) et .module (contient le code pour implémenter le Crochets drupal utilisés par le module).
- Le nouveau type de n?ud est installé à l'aide des crochets et des API Drupal, et des champs tels que le titre, la description, etc., sont définis. Le module doit également inclure du code pour nettoyer les données ou les types ajoutés lorsqu'il n'est pas entièrement.
- Des champs supplémentaires peuvent être ajoutés au nouveau type de n?ud en créant les champs et les instances de champ dans le fichier .install du module. Cela permet un contenu plus personnalisé, tel que le prix du produit et la quantité dans un type de n?ud de produit.
Création de votre module
Commen?ons par créer la structure de base d'un module dans lequel nous allons créer notre nouveau type de contenu. Pour créer un module, dans le répertoire des sites / all / modules de votre installation Drupal, créez un nouveau répertoire nommé ProductCustomType. Dans ce dossier, créez ensuite trois fichiers:- ProductCustomType.info - contiendra les informations sur le module afin que Drupal le reconnaisse et le montre dans la liste.
- ProductCustomType.install - aura des détails sur les choses que vous allez installer ou désinstaller pour le module.
- ProductCustomType.module - contiendra du code pour implémenter les crochets Drupal utilisés par le module.
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.moduleCe qui précède définit simplement certains paramètres pour notre module afin que Drupal puisse les utiliser et afficher les informations sur notre module. Une fois cela fait, nous devons voir notre module dans la liste des modules comme indiqué ci-dessous. Mais ne le permettez pas encore - nous le ferons après la prochaine étape.
Installation et désinstallant le n?ud
Une fois que nous avons en place les fichiers de base du module, nous pouvons commencer à écrire du code pour installer le type de n?ud personnalisé. Le premier crochet que nous devons implémenter est Hook_node_info. En utilisant ce crochet, un module peut définir un ou plusieurs types de n?uds dans Drupal. L'implémentation Hook renvoie un tableau définissant le nouveau type de n?ud que le module va ajouter. Pour implémenter ce crochet, ajoutez le code suivant à ProductCustomType.module:name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.moduleL'implémentation renvoie un tableau définissant un nouveau produit de type de n?ud ainsi que certaines de ses propriétés, telles que son nom, la description, si elle a un titre et une base (qui est utilisée dans différents crochets pour ce type de contenu). Comme nous avons défini que ce type de n?ud a un titre, nous devons afficher le champ de texte de titre lorsque le formulaire de ce n?ud est affiché pour ajouter du contenu. Pour ce faire, nous devrons implémenter le Hook Hook_form. Le crochet hook_form est utilisé pour afficher le formulaire utilisé pour créer / modifier les n?uds. Le crochet est implémenté dans ProductCustomType.module comme suit:
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_node_info() </span></span><span><span> */ </span></span><span><span>function productcustomtype_node_info() { </span></span><span> <span>return array( </span></span><span> <span>'product' => array( </span></span><span> <span>'name' => t('Product'), </span></span><span> <span>'base' => 'product', </span></span><span> <span>'description' => t('You can define new Products here'), </span></span><span> <span>'has_title' => TRUE, </span></span><span> <span>'title_label' => t('Product title') </span></span><span> <span>) </span></span><span> <span>); </span></span><span><span>}</span></span>Nous utilisons simplement l'API Drupal qui donne une implémentation de Hook_Form et ajoute un champ de titre à condition que la définition du n?ud ait le jeu d'attribut Has_Title (que nous avons défini dans notre cas). Une fois que nous l'avons fait, nous devons implémenter le crochet hook_install pour ajouter le champ du corps au nouveau type de n?ud. Ajoutez l'implémentation à ProductCustomType.install comme suit:
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implement hook_form() </span></span><span><span> */ </span></span><span><span>function product_form($node, $form_state) { </span></span><span> <span>return node_content_form($node, $form_state); </span></span><span><span>}</span></span>Nous enregistrons d'abord tous les nouveaux types de n?uds créés par différents modules (y compris le n?tre) en appelant la fonction Drupal API Node_types_rebuild (). Ensuite, nous obtenons tous les types de n?uds et appelons node_add_body_field () sur notre type pour ajouter le champ du corps. Une fois que nous l'avons fait, nous pouvons activer notre module qui installera notre nouveau type de n?ud. Ensuite, nous devrions pouvoir voir notre nouveau type lorsque nous cliquons sur Ajouter du contenu comme suit:
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.moduleNous découvrons d'abord tous les ID de n?ud qui sont des n?uds de notre type de contenu installé. Une fois que nous avons collecté les ID, nous utilisons la fonction API Node_Delete_Multiple () pour supprimer plusieurs n?uds. Ensuite, nous utilisons la fonction node_type_delete () pour supprimer notre type de n?ud. Maintenant, si nous désinstallons notre module, tous les n?uds de notre type et de notre type lui-même doivent être supprimés.
Création de champs supplémentaires
Une fois que nous avons ajouté le nouveau type de n?ud, nous avons des fonctionnalités similaires à celles d'un n?ud. Mais que se passe-t-il si nous voulons ajouter plus de champs en fonction du type de n?ud? Par exemple, s'il s'agit d'un type de produit, nous voulons peut-être ajouter deux autres champs comme le prix et la quantité. Pour cela, nous devons d'abord créer les champs, puis créer des instances de champ sur notre type de n?ud. Nous écrivons deux nouvelles fonctions dans le fichier ProductCustomType.install pour définir les champs et les instances de champ.<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_node_info() </span></span><span><span> */ </span></span><span><span>function productcustomtype_node_info() { </span></span><span> <span>return array( </span></span><span> <span>'product' => array( </span></span><span> <span>'name' => t('Product'), </span></span><span> <span>'base' => 'product', </span></span><span> <span>'description' => t('You can define new Products here'), </span></span><span> <span>'has_title' => TRUE, </span></span><span> <span>'title_label' => t('Product title') </span></span><span> <span>) </span></span><span> <span>); </span></span><span><span>}</span></span>Nous créons ensuite une fonction add_custom_fields () dans ProductCustomType.install qui lira le tableau et créera les champs et les instances.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implement hook_form() </span></span><span><span> */ </span></span><span><span>function product_form($node, $form_state) { </span></span><span> <span>return node_content_form($node, $form_state); </span></span><span><span>}</span></span>Maintenant, nous pouvons simplement appeler la fonction add_custom_fields () dans ProductCustomType_install () afin que les champs et les instances de champs soient installés lorsque le module est installé.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_install(). </span></span><span><span> */ </span></span><span><span>function productcustomtype_install() { </span></span><span> <span>node_types_rebuild(); </span></span><span> <span>$types = node_type_get_types();| </span></span><span> <span>node_add_body_field($types['product']); </span></span><span><span>}</span></span>Nous devons également mettre à jour notre fonction ProductCustomType_uninstall () pour supprimer les champs et les instances de champ.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_uninstall(). </span></span><span><span> */ </span></span><span><span>function productcustomtype_uninstall() { </span></span><span> <span>$ournewtype = 'product'; </span></span><span> <span>$sql = 'SELECT nid FROM {node} n WHERE n.type = :type'; </span></span><span> <span>$result = db_query($sql, array(':type' => $ournewtype)); </span></span><span> <span>$nodeids = array(); </span></span><span> <span>foreach ($result as $row) { </span></span><span> <span>$nodeids[] = $row->nid; </span></span><span> <span>} </span></span><span> <span>node_delete_multiple($nodeids); </span></span><span> <span>node_type_delete($ournewtype); </span></span><span><span>}</span></span>Installez à nouveau le module et cliquez sur le produit pour ajouter un nouveau produit et nous devrions voir les deux champs comme indiqué ci-dessous:
Conclusion
Le Drupal CMS fournit de nombreux crochets utiles et une API puissante qui nous permet d'effectuer diverses personnalisations. Dans cet article, nous avons pu créer un type de n?ud complètement nouveau qui appara?tra dans la section de contenu de Drupal. Et en utilisant l'API de Drupal, nous avons également attaché des champs à ce nouveau type de n?ud afin que n'importe qui puisse facilement ajouter du contenu à l'aide du nouveau type de n?ud. Amusez-vous donc à créer votre prochain nouveau type de n?ud pour votre site Drupal. Image via FotoliaDes questions fréquemment posées sur la création d'un nouveau type de n?ud drupal
Qu'est-ce qu'un type de n?ud drupal et pourquoi est-il important?
Un type de n?ud drupal, également appelé type de contenu, est une collection prédéfinie de types de données (champs) qui se rapportent les uns aux autres par un contexte d'information. Cela pourrait être un simple article de blog, un article, une nouvelle, un sujet de forum ou un tutoriel, entre autres. Les types de n?uds sont importants car ils fournissent un moyen structuré de saisir, d'afficher et de gérer le contenu dans Drupal. Ils permettent la personnalisation des paramètres d'entrée, de validation et d'affichage des données, ce qui peut améliorer considérablement l'expérience utilisateur et la fonctionnalité globale d'un site Drupal.
Comment puis-je créer un nouveau type de n?ud dans Drupal?
La création d'un nouveau type de n?ud dans Drupal est un processus simple. Tout d'abord, accédez au menu ?Structure? dans votre tableau de bord Drupal Admin, puis sélectionnez ?Types de contenu?. Cliquez sur le bouton ?Ajouter le type de contenu?. Vous serez invité à remplir le nom, la description et les paramètres de votre nouveau type de n?ud. Une fois que vous avez rempli les informations nécessaires, cliquez sur le bouton ?Enregistrer et gérer les champs? pour ajouter des champs à votre nouveau type de n?ud.
Puis-je personnaliser les champs dans mon type de n?ud Drupal?
Oui, vous pouvez personnaliser les champs de votre type de n?ud Drupal. Après avoir créé un nouveau type de n?ud, vous pouvez ajouter, modifier ou supprimer les champs selon les besoins. Cela vous permet d'adapter le type de n?ud à vos besoins de contenu spécifiques. Par exemple, vous pouvez ajouter un champ de texte pour un résumé d'article, un champ d'image pour une image en vedette ou un champ de date pour une date de publication.
Comment puis-je gérer les paramètres d'affichage pour mon type de n?ud Drupal?
Drupal fournit un onglet ?Gérer l'affichage? pour chaque type de n?ud. Cela vous permet de contr?ler la fa?on dont chaque champ est affiché lorsque le n?ud est affiché. Vous pouvez ajuster l'étiquette, le format et l'ordre de chaque champ. Vous pouvez également regrouper les champs dans des modes d'affichage personnalisés, tels qu'une vue de teaser ou une vue complète de contenu.
Puis-je utiliser l'API du n?ud de Drupal pour créer par programme des n?uds?
Oui, Drupal's Node API fourni Un moyen puissant de créer, mettre à jour et supprimer des n?uds par programmation. Cela peut être utile pour des taches telles que l'importation de contenu à partir d'un autre système, la génération de données de test ou la création de workflows personnalisés. L'API du n?ud fait partie du système de base de Drupal, il est donc disponible dans toutes les installations de Drupal.
Quels sont les types de n?uds de base dans Drupal?
Drupal est livré avec plusieurs types de n?uds de base, y compris l'article, la page de base, l'entrée de blog, le sujet du forum et le sondage. Ceux-ci fournissent un point de départ pour gérer le contenu dans Drupal. Cependant, vous pouvez également créer vos propres types de n?uds personnalisés pour répondre à vos besoins spécifiques.
Comment puis-je contr?ler l'accès à mes n?uds Drupal?
DRUPAL Fournit un système robuste pour contr?ler l'accès aux n?uds. Vous pouvez définir des autorisations en fonction des r?les utilisateur, vous permettant de contr?ler qui peut afficher, créer, modifier et supprimer les n?uds de chaque type. Vous pouvez également utiliser l'API d'accès au n?ud de Drupal pour créer des règles d'accès plus complexes.
Puis-je utiliser le module de vues de Drupal pour afficher mes n?uds?
Oui, le module Views de Drupal est un outil puissant pour afficher les n?uds . Vous pouvez créer des vues personnalisées qui affichent des n?uds en fonction de divers critères, tels que le type de n?ud, le statut de publication ou l'auteur. Vous pouvez également personnaliser le format d'affichage, le tri et la pagination de vos vues.
Comment puis-je thème mes n?uds Drupal?
Drupal fournit un système de thème flexible qui vous permet de contr?ler l'apparence et sensation de vos n?uds. Vous pouvez créer des modèles personnalisés pour chaque type de n?ud, et vous pouvez utiliser l'API de thème de Drupal pour ajouter CSS et JavaScript personnalisés à vos n?uds.
Puis-je étendre la fonctionnalité de mes n?uds Drupal avec des modules?
Oui, l'architecture modulaire de Drupal vous permet d'étendre la fonctionnalité de vos n?uds avec des modules. Il existe des milliers de modules contribués disponibles qui peuvent ajouter des fonctionnalités telles que des galeries d'images, des commentaires, des notes et une intégration des médias sociaux à vos n?uds. Vous pouvez également créer vos propres modules personnalisés si vous avez des besoins spécifiques qui ne sont pas satisfaits par les modules disponibles.
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

Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.

Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

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
