* class htmlBlocks implements ezcTemplateCustomBlock * { * public static function getCustomBlockDefinition( $name ) * { * switch ( $name ) * { * case "link": * $def = new ezcTemplateCustomBlockDefinition(); * $def->class = __CLASS__; * $def->method = 'link'; * $def->hasCloseTag = false; * $def->startExpressionName = 'from'; * $def->requiredParameters = array( 'title' ); * $def->optionalParameters = array( 'from', 'to' ); * return $def; * } * return false; * } * * public static function link( $parameters ) * { * $title = ""; * if ( isset( $parameters['title'] ) ) * { * $title = "title=\"{$parameters['title']}\""; * } * return "<" . "a href=\"{$parameters['to']}\" {$title}>{$parameters['from']}"; * } * } * * * 2. Assign the class to the Template configuration in your application. * * $config = ezcTemplateConfiguration::getInstance(); * $config->addExtension( "htmlBlocks" ); * * * 3. Use the custom block in the template. * * {link "Google" to "http://www.google.com" title "Google search engine"} * * The generated html code for this will be a hyperlink. * * @package Template * @version 1.4 * @mainclass */ class ezcTemplateCustomBlockDefinition extends ezcTemplateCustomExtension { /** * Holds the (static) class that implements the function to be executed. * * @var string */ public $class; /** * Holds the (static) method that should be run. * * @var string */ public $method; /** * Specifies whether the class has an open and close tag or only a open tag. * * @var bool */ public $hasCloseTag; /** * Holds the first parameter of a custom block without a name. * * If the custom block should have a start expression then this variable * specifies a name for it. The name should reappear in either the * {@link optionalParameters} or the {@link requiredParameters}. * * @var string */ public $startExpressionName; /** * Holds the optional named parameters for this custom block. * * @var array(string) */ public $optionalParameters = array(); /** * Holds the required named parameters for this custom block. * * @var array(string) */ public $requiredParameters = array(); public $isStatic = false; /** * Whether or not the Template object is available in the custom block. * * Be aware that if you change this, your custom block's signature * changes as the first argument will then be the template object. * * @var bool */ public $sendTemplateObject = false; /** * When excessParameters is set to true, the custom block accepts any amount of * parameters over the required parameters. * * @var bool */ public $excessParameters = false; } ?>