Rain TPL Yii View Renderer

The easy and fast template engine for PHP. Rain.TPL makes application easier to create & enables designers/developers to work better together.

Project Page
Download
Documentation
Speed Test
Github Project Page
Yii Extension Github Project Page

Requirements

- PHP 5
- Yii 1.1.10 (Tested on 1.1.10 but should work on older versions as well)

Installation

1. Download or Clone the files
2. Extract into the extensions folder
3. Edit the application config file and add the following array under the ‘components’ array:

'viewRenderer'=>array(
  'class'=>'application.extensions.RainTPLViewRenderer',
),

Configure

The available options you can set for this view renderer are:

'viewRenderer'=>array(
	'class'=>'application.extensions.RainTPLViewRenderer',
	// File extension used for views
	'fileExtension' => '.tpl',
	// is the template directory
	'tpl_dir' => null,
	// where it save compiled templates and cache
	'cache_dir' => null,
	// the absolute base url of your application (eg. http://www.raintpl.com)	
	'base_url' => null,
	// enable/disable the path replace	
	'path_replace' => false,
	// configure what to replace	
	'path_replace_list' => array(),
	//  configure what command are not allowed	
	'black_list' => array(),
	// enable/disable the control if template was modified by the last compiling	
	'check_template_update' => true,
	// enable/disable the use of php tags in your template
	'php_enabled' => false,
	// Use the latest beta version for rain tpl 3
	'useRainBeta' => false,
	// Will not cache templates
	'debug' => false,
	// Auto escape variables
	'auto_escape' => false,
),

Usage

To render a view you would call the render method the same way
——————

$this->render('someview', $params);

Template Syntax Examples

PHP Rain TPL
<?php echo $var; ?> {$var}
<?php echo CONSTANT; ?> {#CONSTANT#}
<?php $num + 10; ?> {$num + 10}
<?php echo $website['name']; ?> {$website.name}
<?php echo $GLOBALS['name']; ?> {$GLOBALS.name}
<?php if($year > 18) {echo ‘major’;}?> {if=”$year > 18″}major{/if}
<?php if($year > 18) {echo ‘major’;} else {echo ‘not major’;}?> {if=”$year > 18″}major{else}not major{/if}
<?php if() {echo ‘Hello’ . $name} else{ echo ‘Not Logged’; } ?> {if=”isLogged()”}Hello {$name}{else}Not Logged{/if}
<?php echo $is_logged ? ‘Hellow’ . $name : ‘Not logged’; ?> {$is_logged? ‘Hello $name’:'Not logged’}
<?php foreach($user_list as $key => $value) {echo $key . ‘-’ . $value['name'] . ‘
‘}?>
{loop=”user_list”}
{$key} – {$value.name}

{/loop}
<?php include ‘footer’; ?> {include=”footer”}
<?php echo cut_html($news, 0, 12); ?> {$news|cut_html:0,12}
<?php pagination( $selected_page, NEWS_PER_PAGE, URL ); ?> {function=”pagination( $selected_page, NEWS_PER_PAGE, URL )”}
<?php echo substr($string,0,5); ?> {function=”substr($string,0,5)”}
<?php /* comment */ ?> {* comment *}

For more info see [Documentation](http://www.raintpl.com/Documentation/)

Authors

Vincent Gabriel