簡體   English   中英

Drupal:自定義塊不出現

[英]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更改了所有名稱。

所以現在的功能是:

  • menu_square_block_info()
  • menu_square_block_view($ delta ='')

文件是:

  • menu_square.info
  • menu_square.module

文件的代碼為:

信息:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM