aggregator_block_info |
Agrégateur : Bloc d'informations |
---|---|
PHP | Drupal |
Syntaxe
function aggregator_block_info() |
Description
Cette fonction permet d'intégrer la fonction hook_block_info().
Remarques
- Fonction spécifique au module Aggregator : La fonction aggregator_block_info appartient au module Aggregator de Drupal, utilisé pour récupérer et afficher des flux RSS ou Atom. Elle sert à déclarer les blocs que le module peut fournir, ce qui permet aux administrateurs d'afficher des résumés de flux d'actualités sur leur site.
- Utilisation dans Drupal 7 : Dans Drupal 7, cette fonction retourne un tableau de blocs disponibles pour l'Agrégateur. Chaque entrée du tableau contient un identifiant de bloc et une description. Ces blocs peuvent ensuite être activés et configurés dans l'interface d'administration des blocs.
- Remplacement dans Drupal 8 et 9 : À partir de Drupal 8, aggregator_block_info n'existe plus, car le système de blocs a été entièrement réécrit pour utiliser l'API des Plugiciels de blocs. Désormais, les blocs sont définis en créant des classes implémentant BlockBase, ce qui permet une meilleure extensibilité et modularité.
- Exemple de sortie de la fonction: Dans Drupal 7, aggregator_block_info() pourrait retourner un tableau similaire à ceci :
- Fonction dépendante du hook_block_info() : Cette fonction est un hook (hook_block_info()), ce qui signifie que Drupal l'appelle automatiquement lorsque la liste des blocs disponibles est générée. Les modules utilisent cette approche pour déclarer leurs blocs dynamiquement et les rendre configurables dans l'interface d'administration.
- Limites du système de blocs de Drupal 7 : Le système de blocs dans Drupal 7 est limité en termes de flexibilité, car aggregator_block_info() ne permet pas de définir facilement des contrôles avancés sur l'affichage. Il faut utiliser d'autres crochets (hook_block_view(), hook_block_configure(),...) pour gérer l'affichage et la configuration.
- Migration vers le système de Plugiciels de Drupal 8+ : En Drupal 8 et 9, au lieu d'utiliser aggregator_block_info(), il faut créer une classe de bloc en PHP, par exemple :
- namespace Drupal\aggregator\Plugin\Block;
- use Drupal\Core\Block\BlockBase;
- /**
- * Fournit un bloc de flux d'agrégateur.
- *
- * @Block(
- * id = "aggregator_feed",
- * admin_label = @Translation("Aggregator feed")
- * )
- */
- class AggregatorFeedBlock extends BlockBase {
- public function build() {
- return [
- '#markup' => $this->t('Aggregator feed content'),
- ];
- }
- }
- Impact sur les mises à jour et la compatibilité : Les modules personnalisés utilisant aggregator_block_info() en Drupal 7 doivent être complètement réécrits lors d'une migration vers Drupal 8+. Il est essentiel d'adopter la nouvelle API des Plugins de blocs, sous peine de voir les fonctionnalités de blocs disparaître après la mise à jour.
Ce qui signifie que le module fournit un bloc pour afficher un flux et un autre pour une catégorie de flux.
Cette approche est plus puissante et permet de mieux contrôler l'affichage et la mise en cache.
Dernière mise à jour : Mardi, le 2 décembre 2014