Maison développement back-end tutoriel php Explore block module in Drupal_PHP教程

Explore block module in Drupal_PHP教程

Jul 14, 2016 am 10:07 AM
Block drupal explore module the

block.info is the block module description file and the "package" property tells us that block is Drupal core module and it can be configured by menu "admin/structure/block".

 
block.install is executed when block is installed. The purpose of this file is to create the necessary tables: block, block_custom, block_role
 
Table block is used to store the block information declared by code statements;
Table block_custom is used to store the block information created by administration interface;
Table block_role is used to control the visibility of blocks.
The main logic are defined in the block.module file. Let us go around this file.There are lots of functions in block.module,but they can be categorized into two types: hook function and block module internal-used function.hook function includes block_menu, block_theme, block_theme_initialize, block_themes_enable.
Function block_menu:block configuration, block management, block list by theme
[html]   
  $default_theme = variable_get('theme_default', 'bartik');  
  $items['admin/structure/block'] = array(  
    'title' => 'Blocks',  
    'description' => 'Configure what block content appears in your site\'s sidebars and other regions.',  
    'page callback' => 'block_admin_display',  
    'page arguments' => array($default_theme),  
    'access arguments' => array('administer blocks'),  
    'file' => 'block.admin.inc',  
  );  
  $items['admin/structure/block/manage/%/%'] = array(  
    'title' => 'Configure block',  
    'page callback' => 'drupal_get_form',  
    'page arguments' => array('block_admin_configure', 4, 5),  
    'access arguments' => array('administer blocks'),  
    'file' => 'block.admin.inc',  
  );  
  $items['admin/structure/block/manage/%/%/configure'] = array(  
    'title' => 'Configure block',  
    'type' => MENU_DEFAULT_LOCAL_TASK,  
    'context' => MENU_CONTEXT_INLINE,  
  );  
  $items['admin/structure/block/manage/%/%/delete'] = array(  
    'title' => 'Delete block',  
    'page callback' => 'drupal_get_form',  
    'page arguments' => array('block_custom_block_delete', 4, 5),  
    'access arguments' => array('administer blocks'),  
    'type' => MENU_LOCAL_TASK,  
    'context' => MENU_CONTEXT_NONE,  
    'file' => 'block.admin.inc',  
  );  
  $items['admin/structure/block/add'] = array(  
    'title' => 'Add block',  
    'page callback' => 'drupal_get_form',  
    'page arguments' => array('block_add_block_form'),  
    'access arguments' => array('administer blocks'),  
    'type' => MENU_LOCAL_ACTION,  
    'file' => 'block.admin.inc',  
  );  
  foreach (list_themes() as $key => $theme) {  
    $items['admin/structure/block/list/' . $key] = array(  
      'title' => check_plain($theme->info['name']),  
      'page arguments' => array($key),  
      'type' => $key == $default_theme ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,  
      'weight' => $key == $default_theme ? -10 : 0,  
      'access callback' => '_block_themes_access',  
      'access arguments' => array($theme),  
      'file' => 'block.admin.inc',  
    );  
    if ($key != $default_theme) {  
      $items['admin/structure/block/list/' . $key . '/add'] = array(  
        'title' => 'Add block',  
        'page callback' => 'drupal_get_form',  
        'page arguments' => array('block_add_block_form'),  
        'access arguments' => array('administer blocks'),  
        'type' => MENU_LOCAL_ACTION,  
        'file' => 'block.admin.inc',  
      );  
    }  
    $items['admin/structure/block/demo/' . $key] = array(  
      'title' => check_plain($theme->info['name']),  
      'page callback' => 'block_admin_demo',  
      'page arguments' => array($key),  
      'type' => MENU_CALLBACK,  
      'access callback' => '_block_themes_access',  
      'access arguments' => array($theme),  
      'theme callback' => '_block_custom_theme',  
      'theme arguments' => array($key),  
      'file' => 'block.admin.inc',  
    );  
  }  
  return $items;  
}  
Function block_theme: offers two theme options: block is for front-end and block_admin_display_form is for administration interface
[html]  
function block_theme() {  
  return array(  
    'block' => array(  
      'render element' => 'elements',  
      'template' => 'block',  
    ),  
    'block_admin_display_form' => array(  
      'template' => 'block-admin-display-form',  
      'file' => 'block.admin.inc',  
      'render element' => 'form',  
    ),  
  );  
}  
Function block_theme_initialize: assign the blocks to theme's regions
[php]  
function block_theme_initialize($theme) {  
  // Initialize theme's blocks if none already registered.  
  $has_blocks = (bool) db_query_range('SELECT 1 FROM {block} WHERE theme = :theme', 0, 1, array(':theme' => $theme))->fetchField();  
  if (!$has_blocks) {  
    $default_theme = variable_get('theme_default', 'bartik');  
    // Apply only to new theme's visible regions.  
    $regions = system_region_list($theme, REGIONS_VISIBLE);  
    $result = db_query("SELECT * FROM {block} WHERE theme = :theme", array(':theme' => $default_theme), array('fetch' => PDO::FETCH_ASSOC));  
    foreach ($result as $block) {  
      // If the region isn't supported by the theme, assign the block to the theme's default region.  
      if ($block['status'] && !isset($regions[$block['region']])) {  
        $block['region'] = system_default_region($theme);  
      }  
      $block['theme'] = $theme;  
      unset($block['bid']);  
      drupal_write_record('block', $block);  
    }  
  }  
}  
Function block_themes_enable: iterate the theme list and assign block list to its regions. 
[html]  
function block_themes_enabled($theme_list) {  
  foreach ($theme_list as $theme) {  
    block_theme_initialize($theme);  
  }  
}  
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477871.htmlTechArticleblock.info is the block module description file and the package property tells us that block is Drupal core module and it can be configured by menu admin/structure/block. block.inst...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Moondrop lance de véritables écouteurs sans fil Block avec un mode de jeu à faible latence Moondrop lance de véritables écouteurs sans fil Block avec un mode de jeu à faible latence Aug 10, 2024 pm 03:31 PM

Moondrop a lancé les véritables écouteurs sans fil Block pour les amateurs d'audio qui s'assoient confortablement dans l'oreille externe. Contrairement aux écouteurs coincés dans les conduits auditifs, le Block ne provoque pas de sensation d’oreille bouchée et ne collecte pas de cérumen. Le pilote de 13 mm est inclus

Après 2 mois, le robot humanoïde Walker S peut plier les vêtements Après 2 mois, le robot humanoïde Walker S peut plier les vêtements Apr 03, 2024 am 08:01 AM

Rédacteur en chef du Machine Power Report : Wu Xin La version domestique de l'équipe robot humanoïde + grand modèle a accompli pour la première fois la tâche d'exploitation de matériaux flexibles complexes tels que le pliage de vêtements. Avec le dévoilement de Figure01, qui intègre le grand modèle multimodal d'OpenAI, les progrès connexes des pairs nationaux ont attiré l'attention. Hier encore, UBTECH, le « stock numéro un de robots humanoïdes » en Chine, a publié la première démo du robot humanoïde WalkerS, profondément intégré au grand modèle de Baidu Wenxin, présentant de nouvelles fonctionnalités intéressantes. Maintenant, WalkerS, bénéficiant des capacités de grands modèles de Baidu Wenxin, ressemble à ceci. Comme la figure 01, WalkerS ne se déplace pas, mais se tient derrière un bureau pour accomplir une série de tâches. Il peut suivre les commandes humaines et plier les vêtements

ModuleNotFoundError : Comment résoudre l'erreur de module Python introuvable ? ModuleNotFoundError : Comment résoudre l'erreur de module Python introuvable ? Jun 25, 2023 pm 09:30 PM

Au cours du processus de développement de Python, nous rencontrons souvent des erreurs de module introuvable. La manifestation spécifique de cette erreur est que Python signale l'une des deux erreurs suivantes : ModuleNotFoundError ou ImportError lors de l'importation du module. Cette erreur est très ennuyeuse et peut empêcher le programme de fonctionner correctement, c'est pourquoi dans cet article, nous explorerons les causes de cette erreur et comment la résoudre. ModuleNotFoundError et ImportError dans Pyth

Java9Nouvelle fonctionnalitéMéthode de programmation modulaire du module Java9Nouvelle fonctionnalitéMéthode de programmation modulaire du module May 19, 2023 pm 01:51 PM

Dans la version Java9, le langage Java a introduit un concept très important : le module. Si vous êtes familier avec la gestion modulaire du code JavaScript, vous devriez vous sentir familier lorsque vous verrez la gestion modulaire de Java 9. 1. Qu'est-ce que le module Java ? Un peu similaires aux packages Java, les modules introduisent un autre niveau de regroupement du code Java. Chacun de ces groupes (modules) contient de nombreux sous-packages. Déclarez le dossier et ses sous-dossiers en tant que module en ajoutant le fichier module-info.java à la racine du package de fichiers de code source d'un module. La syntaxe du fichier

Comment analyser la configuration Drupal Comment analyser la configuration Drupal May 15, 2023 pm 09:22 PM

Configuration de Drupal Drupal est un système de gestion de contenu PHP open source avec une architecture assez complexe. Il dispose également d’un modèle de sécurité solide. Grâce aux contributions et au maintien des développeurs de la communauté, il existe de nombreuses documentations détaillées et méthodes pour renforcer la configuration de sécurité des sites Drupal. N'oubliez pas que Drupal est requis pour faire fonctionner votre site Web. Pour protéger l’ensemble du système contre les pirates informatiques, nous devons nous occuper de l’ensemble du système. Il comprend certains paramètres de serveur courants, la configuration des serveurs Web, PHP et des bases de données. De plus, tous les autres services sur le serveur doivent être configurés correctement. Il fournit des conseils et des points clés qui peuvent aider les administrateurs de serveurs et de sites Web à auditer la sécurité de l'ensemble de leur système. Nous devons comprendre que créer un absolu

Quelle est LA devise ? LA pièce dans laquelle vaut-elle la peine d'investir ? Quelle est LA devise ? LA pièce dans laquelle vaut-elle la peine d'investir ? Feb 21, 2024 pm 03:49 PM

Quelle monnaie est THE ? THE (Tokenized Healthcare Ecosystem) est une monnaie numérique qui utilise la technologie blockchain pour se concentrer sur l'innovation et la réforme dans le secteur de la santé. La mission de THE coin est d'utiliser la technologie blockchain pour améliorer l'efficacité et la transparence de l'industrie médicale et promouvoir une coopération plus efficace entre toutes les parties, y compris les patients, le personnel médical, les sociétés pharmaceutiques et les institutions médicales. La valeur et les caractéristiques de THE Coin Tout d'abord, THE Coin, en tant que monnaie numérique, présente les avantages de la blockchain - décentralisation, haute sécurité, transactions transparentes, etc., permettant aux participants de faire confiance et de s'appuyer sur ce système. Deuxièmement, le caractère unique de LA pièce est qu'elle se concentre sur l'industrie médicale et de la santé, en utilisant la technologie blockchain pour transformer le système médical traditionnel et améliorer

Comment résoudre le problème du « fusible de module introuvable » lors du montage d'un disque ntfs sous le système Linux ? Comment résoudre le problème du « fusible de module introuvable » lors du montage d'un disque ntfs sous le système Linux ? Dec 31, 2023 pm 03:17 PM

1. Confirmez d'abord le noyau du système Linux [root@localhost~]#uname-r-p2.6.18-194.el5i6862. Accédez à http://sourceforge.net/projects/linux-ntfs/files/ pour télécharger le package RPM. du noyau correspondant. Si vous ne trouvez pas exactement le même, vous pouvez trouver le plus proche. Je n'ai pas trouvé exactement le même. Ce que j'ai téléchargé est : kernel-module-ntfs-2.6.18-128.1.1.el5-2.1.27-0.rr.10.11.i686.rpm3 Installez le package rpm rpm. -ivhkernel -m

Golang learning Développement d'applications Web basées sur Drupal Golang learning Développement d'applications Web basées sur Drupal Jun 24, 2023 am 11:16 AM

Avec le développement de l'Internet mobile, la demande d'applications Web continue d'augmenter et Golang, en tant que langage de programmation efficace, rapide et sûr, est progressivement devenu le nouveau favori pour le développement d'applications Web. Cet article expliquera comment utiliser Golang pour développer des applications Web basées sur Drupal. 1. Qu'est-ce que Drupal ? Drupal est un framework de gestion de contenu open source basé sur PHP qui peut être utilisé pour créer une variété d'applications Web, telles que des sites Web de commerce électronique, des portails d'entreprise et des portails communautaires. Dru

See all articles