Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在bean模板中使用变量_Php_Drupal_Drupal 7_Hook_Drupal Modules - Fatal编程技术网

Php 如何在bean模板中使用变量

Php 如何在bean模板中使用变量,php,drupal,drupal-7,hook,drupal-modules,Php,Drupal,Drupal 7,Hook,Drupal Modules,我对drupal\u preprocess\u块(&$variables)和bean模板有问题。 我有一个模块: function kcc_related_releases_preprocess_block(&$variables) { // select Bean Blocks and ignore other Blocks if (!empty($variables['block']->module) && isset($variables['e

我对drupal
\u preprocess\u块(&$variables)
和bean模板有问题。 我有一个模块:

    function kcc_related_releases_preprocess_block(&$variables) {
  // select Bean Blocks and ignore other Blocks
  if (!empty($variables['block']->module) && isset($variables['elements']['bean'])) {
    $bean_array      = $variables['elements']['bean'];
    $child_key_array = element_children($bean_array);
    if(isset($child_key_array)&&!empty($child_key_array)) {
      $bean = $bean_array[$child_key_array[0]];
      if(!empty($bean['#bundle'])&&$bean['#bundle']=='related_press_releases_block') {
        $bean_entity = $bean['#entity'];
        $bean = bean_load($bean_entity->bid);
        $tax_terms = $bean->field_tax_term;
        $related_array = array();
        foreach ($tax_terms as $tax_term) {
          $name = $tax_term[0]['taxonomy_term']->name;
          $tid = $tax_term[0]['tid'];
          $tax_term_links[] = theme('tax_term_link',
            array(
              'name' => $name,
              'tid' => $tid,
            ));
          // Get related content.
          $query = db_select('node', 'n');
          $query->join('field_data_field_tax_term', 'fc', 'n.nid = fc.entity_id');
          $query->fields('n', array('nid', 'title', 'uid'))
                ->condition('fc.field_tax_term_tid', $tid)
                ->condition('n.status', 1)
                ->range(0,5);
          $result = $query->execute()->fetchAllAssoc('nid');
          if ($result) {
            $related_array = array_merge($related_array, $result);
          }
        }
        // Tags rendered array.
        $variables['tax_term_links'] = implode(', ', $tax_term_links);
        // Related rendered array.
        foreach ($related_array as $key => $related) {
          $related_links_array[$key]['title'] = l($related->title, url('node/' . $related->nid));
        }
        if (isset($related_links_array) && !empty($related_links_array)) {
          $variables['related_terms'] = $related_links_array;
        }
        else {
          $variables['related_terms'] = NULL;
        }
      }
    }
  }

}
和模板:

if (!empty($related_terms)): ?>
  <h4 class="related-title"><?php print render($title); ?></h4>
  <div class="related">
    <?php foreach($related_terms as $rel_item): ?>
      <div class="item">
        <div class="title"><?php print render($rel_item['title']); ?></div>
      </div>
    <?php endforeach; ?>
  </div>
<?php endif; ?>
if(!empty($related_terms)):?>
但在模板中,当我使用
print\r($variables)时,它不起作用我可以找到$related\u术语

请帮助我

经过几次检查和搜索,我找到了这个钩子函数
钩子进程实体(&$variables){
这解决了我的问题,在我的模板变量中添加了正确的变量。希望它能帮助别人

我知道它不是很干净,但你可以直接将代码移动到模板文件中。为什么不使用视图模块呢?这比编写自定义查询容易得多…经过几次检查和搜索后,我找到了这个钩子
函数在HOOK_process_entity(&$variables){
上,这解决了我的问题,之后在我的模板中正确添加了变量。希望它能帮助其他人冷静下来。你应该现在回答你的问题并标记为已解决。