it-swarm-eu.dev

Jak zjistím ID bloků?

$block = module_invoke('menu_block', 'block', 'view', 26); 
print $block['content'];

Snažím se použít tento kód k vytištění bloku, ale nevím, jak získat ID pro poslední parametr.

6
Remy

Musíte jen hledat implementaci hook_block () z modulu, pro který vyvoláváte module_invoke(). Posledním argumentem ve volání funkce, který jste nahlásili, je parametr $delta, Který se používá od Drupal) k identifikaci bloku v modulu.

Například při pohledu na kód forum_block () , část kódu, která implementuje operaci "list", 0 je parametr delta pro blok "Aktivní témata fóra" a 1 je parametr delta pro blok „Nová témata fóra“.

Kód, který jste ve své otázce napsali, vyvolává implementaci hook_block Vytvořeného z modulu, jehož zkrácený název je menu_block (což znamená, že funkce implementující háček je menu_block_block()). Pokud jste chtěli vyvolat implementaci hook_block() vytvořenou z menu.module, pak kód by měl být následující:

$block = module_invoke('menu', 'block', 'view', 26); 
print $block['content'];

Funkce implementující hook_block() je menu_block () . Hodnoty použité jako $delta Z této funkce jsou hodnoty pole "jméno_pole" použitého v tabulce "menu_custom".

2
kiamlaluno

Jak vložit blok do tpl nebo do obsahu programově pomocí Drupal

Viz část „Kde získám tyto informace pro blok, který se pokouším zavolat?“ dole ...

Vzhledem k tomu, že byl odstraněn z webu, vkládám text z mezipaměti historie webu:


Kde získám tyto informace pro blok, který se pokouším zavolat?

Nejjednodušší cestou je přejít na stránku bloků a umístit kurzor na odkaz „nakonfigurovat“. Aniž byste klikli na odkaz, podívejte se do levého dolního rohu vašeho prohlížeče (alespoň u Firefoxu), kde byste měli vidět URL, na kterou budete přesměrováni po kliknutí. Důležité informace, které potřebujete, jsou v posledních dvou prvcích adresy URL. Pokud je tedy adresa URL odkazu admin/build/block/configure/jquerymenu/0, pak modul, který tento blok vytvořil, je blok jquerymenu a $ delta (nebo číslo bloku) je 0.

Abychom si to mohli prohlédnout, příklad kódu volá module_invoke s následujícími argumenty: 'jquerymenu', 'block', 'view', 0. Co to dělá, je zavolat jquermenu modul, volá jeho hook_block, řekne mu, že chce informace, které jsou vráceny pod $ op = 'view', a že chce pouze informace z bloku s $ delta 0.

Nyní, když máte blok $ (což je pole), musíte z něj získat prvek 'content' voláním $ block ['content']. Titul můžete také nazvat pomocí $ block ['title'].

Doufám, že vám tento fragment kódu dává smysl. Více informací o modu_invoke najdete na http://api.drupal.org/api/function/module_invoke .

1
Nikit