Plugins

Plugins function as stand alone classes that have access to a healthy number of functions to do various things like access/process block_options, interact with a database, etc. Usage involves using the dynamic php loader, $myparse->$class_name->function_name('string') within a block_content field.

How templates work

Think of blocks as elements on your page, you simply create a block, define a url in which it is to appear, and type in the name of the template you would like to use inside of the block.

Depending on the template, whatever fields exist within the template will override whatever you have written, but will not replace any existing data. You can define nothing as the template to return to the data inside of the block.

Templates are basically setup like blocks except it is missing the urls, hide_urls, block_order, status, and obviously the block_template field

Templates usually will define a different master select and block content, and occasionally a 'dynamic' title. They may also use user defined markup (inside of system/user_vars.php). Advanced php programmers could put php code inside of user generated vars.