Drupal 7自定义块未显示在阻止列表中

时间:2012-09-03 18:25:57

标签: php drupal-7 block

这里有一个Drupal 7新手,有以下问题。

我已使用它的依赖项启用了我的块,但未在阻止列表中显示

有人能在我的代码中发现我可能错过的任何内容吗?

任何有助于指明我正确方向的帮助都将深表感谢!

提前致谢!

代码如下。

.info文件

name = Bloque para el buscador - INMO
description = Bloque para mostrar el buscador geográfico de InmoAnuncios.
package = Modulos de Inmo Anuncios  
core = 7.x

scripts[] = bloque_buscador.js // exist in folder

dependencies[] = inmo_node_form // enabled 

.module file

<?php

/**
 * @file 
 * Modulo para el buscador de inmuebles
 * 
 * Este modulo provee de un bloque donde se despliega un buscador de inmuebles en el sitio
 */


/**
 * Implementa el hook_block_info() 
 * Este hook le dice a DRUPAL que este bloque se puede desplegar tanto en el home page como en el sidebar
 */
function bloque_buscador_block_info() {

    $blocks = array();

    $blocks['bloque_home'] = array(
        'info' => t('Inmo Buscador (home)'),
        'cache' => DRUPAL_NO_CACHE,
    );

    $blocks['bloque_sidebar'] = array(
        'info' => t('Inmo Buscador (sidebar)'),
        'cache' => DRUPAL_NO_CACHE,
    );

    return $blocks;
}

/**
 * 
 * @param type $delta
 * @return type
 * Implementa el hook_block_view()
 * 
 * 
 */
function bloque_buscador_block_view($delta = '') {

    $estados = db_query("SELECT * FROM estados WHERE enabled = 1;");
    $inmuebles = db_query("SELECT * FROM tipo_inmueble WHERE enabled = 1;");

    $optEstados = '';

    foreach ($estados as $estado) {
        $optEstados .= "<option value=\"{$estado->id}\">{$estado->nombre}</option>\n";
    }

    $optInmuebles = '<option value=\"0\">--Todos--</option>';

    foreach ($inmuebles as $inmueble) {
        $optInmuebles.= "<option value=\"{$inmueble->tipo_inmueble}\">{$inmueble->tipo_inmueble}</option>\n";
    }

    $contenido = <<<EOSTR
      <div class="jsrequired {$delta}" id="bloque_buscador">
        <header class="title">
          <h2>Encuentra tu inmueble ideal!</h2>
        </header>
        <div class="filtros">

          <form action="/filtro" method="GET">
            <table  border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td><label for="operacion">Busco inmuebles en:</label></td>
                    <td>
                        <label class="vc">Venta <input type="radio" name="operacion" id="operacion" value="venta"/></label>
                        <label class="vc">Renta <input type="radio" name="operacion" id="operacion" value="renta" /></label> 
                    </td>
                </tr>
                <tr>
                    <td><label for="tipo_inmueble">Tipo de inmueble?</label></td>
                    <td><select name="inmueble" id="inmueble" style="width:150px;"> $optInmuebles </select></td>
                </tr>
                <tr>
                    <td><label for="estado">En donde?</label></td>
                    <td><select name="estado" id="estado" style="width:150px;"> $optEstados </select></td>
                </tr>
                <tr>
                    <td colspan="2"><input type="submit" value="Buscar"></td>
                </tr>
          </table>
            </form>
        </div>
        <div class="mapa"><a href="#" class="mapa_buscador"></a></div>

      </div>
EOSTR;

    $bloque = array(
    "subject" => NULL,
    "content" => $contenido
  );
  return $bloque;
}

?>

1 个答案:

答案 0 :(得分:0)

bloque_buscador_block_view应指定返回哪个块显示,如hook_block_view

文档中的示例所示

所以你应该有类似的东西:

  switch ($delta) {
    case 'bloque_home':
      $block['subject'] = NULL;
      $block['content'] = $contenido;
      break;

    case 'bloque_sidebar':
      // Insert appropriate code/logic here to display the sidebar block
      break;
  }
  return $block;