original_string: public function block(block_contents $bc, $region) {
          $bc = clone($bc); // Avoid messing up the object passed in.
          if (empty($bc->blockinstanceid) || !strip_tags($bc->title)) {
              $bc->collapsible = block_contents::NOT_HIDEABLE;
          }
  
          $id = !empty($bc->attributes['id']) ? $bc->attributes['id'] : uniqid('block-');
          $context = new stdClass();
          $context->skipid = $bc->skipid;
          $context->blockinstanceid = $bc->blockinstanceid;
          $context->dockable = $bc->dockable;
          $context->id = $id;
          $context->hidden = $bc->collapsible == block_contents::HIDDEN;
          $context->skiptitle = strip_tags($bc->title);
          $context->showskiplink = !empty($context->skiptitle);
          $context->arialabel = $bc->arialabel;
          $context->ariarole = !empty($bc->attributes['role']) ? $bc->attributes['role'] : 'complementary';
          $context->type = $bc->attributes['data-block'];
          $context->title = $bc->title;
          $context->content = $bc->content;
          $context->annotation = $bc->annotation;
          $context->footer = $bc->footer;
          $context->hascontrols = !empty($bc->controls);
          if ($context->hascontrols) {
              $context->controls = $this->block_controls($bc->controls, $id);
          }
  
          return $this->render_from_template('core/block', $context);
      }
code: public function block(block_contents $bc, $region) {
          $bc = clone($bc); // Avoid messing up the object passed in.
          if (empty($bc->blockinstanceid) || !strip_tags($bc->title)) {
              $bc->collapsible = block_contents::NOT_HIDEABLE;
          }
  
          $id = !empty($bc->attributes['id']) ? $bc->attributes['id'] : uniqid('block-');
          $context = new stdClass();
          $context->skipid = $bc->skipid;
          $context->blockinstanceid = $bc->blockinstanceid;
          $context->dockable = $bc->dockable;
          $context->id = $id;
          $context->hidden = $bc->collapsible == block_contents::HIDDEN;
          $context->skiptitle = strip_tags($bc->title);
          $context->showskiplink = !empty($context->skiptitle);
          $context->arialabel = $bc->arialabel;
          $context->ariarole = !empty($bc->attributes['role']) ? $bc->attributes['role'] : 'complementary';
          $context->type = $bc->attributes['data-block'];
          $context->title = $bc->title;
          $context->content = $bc->content;
          $context->annotation = $bc->annotation;
          $context->footer = $bc->footer;
          $context->hascontrols = !empty($bc->controls);
          if ($context->hascontrols) {
              $context->controls = $this->block_controls($bc->controls, $id);
          }
  
          return $this->render_from_template('core/block', $context);
      }
code_tokens: public function block ( block_contents $ bc , $ region ) { $ bc = clone ( $ bc ) ; // Avoid messing up the object passed in. if ( empty ( $ bc -> blockinstanceid ) || ! strip_tags ( $ bc -> title ) ) { $ bc -> collapsible = block_contents :: NOT_HIDEABLE ; } $ id = ! empty ( $ bc -> attributes [ 'id' ] ) ? $ bc -> attributes [ 'id' ] : uniqid ( 'block-' ) ; $ context = new stdClass ( ) ; $ context -> skipid = $ bc -> skipid ; $ context -> blockinstanceid = $ bc -> blockinstanceid ; $ context -> dockable = $ bc -> dockable ; $ context -> id = $ id ; $ context -> hidden = $ bc -> collapsible == block_contents :: HIDDEN ; $ context -> skiptitle = strip_tags ( $ bc -> title ) ; $ context -> showskiplink = ! empty ( $ context -> skiptitle ) ; $ context -> arialabel = $ bc -> arialabel ; $ context -> ariarole = ! empty ( $ bc -> attributes [ 'role' ] ) ? $ bc -> attributes [ 'role' ] : 'complementary' ; $ context -> type = $ bc -> attributes [ 'data-block' ] ; $ context -> title = $ bc -> title ; $ context -> content = $ bc -> content ; $ context -> annotation = $ bc -> annotation ; $ context -> footer = $ bc -> footer ; $ context -> hascontrols = ! empty ( $ bc -> controls ) ; if ( $ context -> hascontrols ) { $ context -> controls = $ this -> block_controls ( $ bc -> controls , $ id ) ; } return $ this -> render_from_template ( 'core/block' , $ context ) ; }
docstring: Prints a nice side block with an optional header.
  
  @param block_contents $bc HTML for the content
  @param string $region the region the block is appearing in.
  @return string the HTML to be output.
docstring_tokens: Prints a nice side block with an optional header .