【问题标题】:How i can modify $content data in Drupal 7?我如何在 Drupal 7 中修改 $content 数据?
【发布时间】:2014-08-20 16:20:50
【问题描述】:

如何在 Drupal 7 中修改 $content 数据?

我要更改/修改模块的块内容:博客

我在我的 template.php 文件中尝试过:

function blog_block_view($delta = '') {
   return "Test, yes i am here";
}

但是什么都没发生……

【问题讨论】:

    标签: drupal drupal-7 drupal-blocks


    【解决方案1】:

    要更改现有块的 $content,您需要 create a custom module,并使用 hook_block_view_alter() 实现。

    Drupal.org 示例:

    function hook_block_view_alter(&$data, $block) {
      // Remove the contextual links on all blocks that provide them.
      if (is_array($data['content']) && isset($data['content']['#contextual_links'])) {
        unset($data['content']['#contextual_links']);
      }
      // Add a theme wrapper function defined by the current module to all blocks
      // provided by the "somemodule" module.
      if (is_array($data['content']) && $block->module == 'somemodule') {
        $data['content']['#theme_wrappers'][] = 'mymodule_special_block';
      }
    }
    

    【讨论】:

      【解决方案2】:

      这是正确的格式。

      确保检查 delta 是否正确,否则您可能会更改比预期更多的块。

      /**
      * Implements hook_block_view().
      */
      function mycustom_module_block_view($delta = '') {
      
        if ($delta == "mydelta"){
          $block['subject'] = 'The Greatest Block Ever Created';
          $block['content'] = array(
            '#markup' => "<h1>Here's some content</h1>",
          );
        }
      
        return $block;
      }
      

      【讨论】:

        【解决方案3】:

        按照以下示例,您可以在 .module 文件中进行修改。

        function hook_block_view($delta = '') {
          // All of these are functionally identical.
          $block['subject'] = '';
          $block['subject'] = NULL; // Or just don't set.
          $block['title'] = '<none>'; // Undocumented, but works.
          // This will not behave as desired.
          $block['subject'] = '<none>';
          $block['content'] = array(
                '#theme' => 'feed_icon',
                '#url' => 'rss.xml',
                '#title' => t('Syndicate'),
              );
        return $block; 
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-08
          • 2012-03-06
          • 1970-01-01
          • 2021-05-17
          相关资源
          最近更新 更多