User login

Making a block example done live at WesternMassDrupalCamp 2011

The most fun lesson learned– passing in a pure integer to the $block['content'] in the implementation of hook_block_view causes an unsupported operand error so deep in the block rendering system the stack trace doesn't even know where it came from.

<?php
/**
 * Implements hook_block_info().
 */
function dgd7glue_block_info() {
  $blocks = array();
  $blocks['twoplustwo'] = array(
    'info' => t('Two plus two.'),
  );
  return $blocks;
}

/**
 * Implements hook_block_view().
 */
function dgd7glue_block_view($delta = '') {
  $block = array();
  switch ($delta) {
    case 'twoplustwo':
      $block['subject'] = t('Two plus two equals');
      $result = 2 + 2;
      $content = t('This is a string of the number ') . $result;
      $build = array();
      $build['main_content'] = array(
        '#markup' => $content,
        '#weight' => 15,
      );
      $build['morehere'] = array(
        '#type' => 'link',
        '#title' => t('Exit block region demonstration'),
        '#href' => 'admin/structure/block',
        '#options' => array('attributes' => array('class' => array('block-demo-backlink', 'overlay-restore'))),
        '#weight' => -10,
      );
      $block['content'] = $build;
      break;
  }
  return $block;
}
?>

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • You can use Markdown syntax to format and style the text. Also see Markdown Extra for tables, footnotes, and more.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <blockquote> <small> <h2> <h3> <h4> <h5> <h6> <sub> <sup> <p> <br> <strike> <table> <tr> <td> <thead> <th> <tbody> <tt> <output>
  • Lines and paragraphs break automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.