| Class | Tags::BlockTag |
| In: |
lib/webgen/plugins/tags/block.rb
|
| Parent: | DefaultTag |
Substitutes the tag with an actual content block.
# File lib/webgen/plugins/tags/block.rb, line 40
40: def process_tag( tag, chain )
41: block_node = (chain.length > 1 ? chain[1] : chain[0])
42: block_name = param( 'blockName' )
43: if block_node.node_info[:pagedata].blocks.has_key?( block_name )
44: if block_node['useERB']
45: node = chain.last
46: ref_node = block_node
47: begin
48: content = block_node.node_info[:pagedata].blocks[block_name].render_with_erb( binding )
49: rescue
50: log(:error) { "Error while running ERB on <#{block_node.node_info[:src]}> (block '#{block_name}'): #{$!.message}" }
51: content = ''
52: end
53: else
54: content = block_node.node_info[:pagedata].blocks[block_name].content
55: end
56: [content, (chain[1..-1].empty? ? chain : chain[1..-1]) ]
57: else
58: log(:error) { "Node <#{block_node.node_info[:src]}> does not contain a block called '#{block_name}'" }
59: ''
60: end
61: end