[英]Drupal: custom block doesn't appear
我是Drupal 7的新手,並且按照本教程的內容通過代碼創建Block。
因此,我在drupal / sites / all / modules中創建了一個新的模塊文件夾,並創建了兩個文件:
block_square_menu.info:它具有模塊的信息:
name = Block Square Menu
description = Module that create a Block for Square menu, menu shown only in home page
core = 7.x
package = custom
block_square_menu.module:它包含PHP代碼:
<?php
/**
* Implements hook_block_info().
*/
function block_square_block_info() {
$blocks = array();
$blocks['block_square'] = array(
'info' => t('Block Square'),
'cache' => DRUPAL_CACHE_PER_ROLE,
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function block_square_block_view($delta = '') {
$block = array();
switch ($delta) {
case 'block_square':
$block['subject'] = t('block Title');
$block['content'] = t('Hello World!');
break;
}
return $block;
}
保存文件后,我轉到Admin / Modules ,激活新模塊並保存配置。 現在,我轉到“ 結構/塊” ,它應該列出我的新塊,但是沒有。
我已經按照所有教程步驟進行操作,並且清理了Drupal緩存,但是仍然遇到問題。
首先解決您的錯誤:在實現hook_block_view()的位置更改函數名稱,您需要將其更改為功能blocks_square_block_view()
/ ** *實現hook_block_view()。 * /
function blocks_square_block_view($delta = '') {
$block = array();
......
如果還不能解決,則從hook_block_info()中刪除' cache '屬性,這是可選的。
如果錯過了,請按照2個步驟進行。
1)清除所有緩存(/ admin / config / development / performance) 。
2)啟用您的自定義模塊(/ admin / modules) 。
再次嘗試后,您的塊應顯示在(/ admin / structure / block)中 。
解決了,問題出在函數的名稱上。 因此,名稱以“ block_square”開頭,其名稱為“ block”,這會造成一些麻煩,因此我用menu_square更改了所有名稱。
所以現在的功能是:
文件是:
文件的代碼為:
信息:
name = Menu Square
description = Module that create a Block for Square menu, menu shown only in home page
core = 7.x
package = custom
模塊:
<?php
/**
* Implements hook_block_info().
*/
function menu_square_block_info() {
$blocks['menu_square'] = array(
'info' => t('Block Square'),
//'cache' => DRUPAL_CACHE_PER_ROLE,
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function menu_square_block_view($delta = '') {
$block = array();
switch ($delta) {
case 'menu_square':
$block['subject'] = t('block Title');
$block['content'] = t('Hello World!');
break;
}
return $block;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.