【问题标题】:How to send data to custom block content如何将数据发送到自定义块内容
【发布时间】:2013-07-28 14:35:43
【问题描述】:

我正在尝试创建一个模块,该模块将显示数据库中的一些最后条目。我想将最后一个条目对象发送到模板文件(guestbook-last-entries.tpl.php),看起来像这样

<p><?php render($title); ?></p>
<?php echo $message; ?>

我有一个实现 hook_theme 的函数

function guestbook_theme() {
  return array(
    'guestbook_last_entries' => array(
      'variables' => array(
        'entries' => NULL,
      ),
      'template' => 'guestbook-last-entries'
    ),
  );
}

做预处理的人

function template_preprocess_guestbook_last_entries(&$variables) {
  $variables = array_merge((array) $variables['entries'], $variables);
}

以及实现 hook_block_view 的函数

function guestbook_block_view($delta = '') {
  switch ($delta) {
    case 'guestbook_last_entries':
      $block['subject'] = t('Last entries');
      $block['content'] = array();
      $entries = guestbook_get_last_entries(variable_get('guestbook_m', 3));
      foreach ($entries as $entry) {
        $block['content'] += array(
          '#theme' => 'guestbook_last_entries',
          '#entries' => $entry,
        );
      }
      break;
  }
  return $block;
}

从数据库中获取数据的函数

function guestbook_get_last_entries($limit = 3) {
  $result = db_select('guestbook', 'g')
    ->fields('g')
    ->orderBy('posted', 'DESC')
    ->range(0, $limit)
    ->execute();
  return $result->fetchAllAssoc('gid');
}

但在这种情况下,我只显示一个条目。谁能告诉我如何解决这个问题,我应该如何构建 $block['content']? 谢谢

【问题讨论】:

    标签: drupal-7 block drupal-theming


    【解决方案1】:

    这里不行:

    $block['content'] += array(
        '#theme' => 'guestbook_last_entries',
        '#entries' => $entry,
    );
    

    如果你需要一个数组作为结果,也许你想要这个:

    // note that I replaced += with a simple = and added two brackets that will create a new element in that array $block['content']
    $block['content'][] = array(
        '#theme' => 'guestbook_last_entries',
        '#entries' => $entry,
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 2019-12-28
      • 2018-07-15
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多