Yii 1.1: rain-tpl-view-renderer

Rain.TPL makes application easier to create & enables designers/developers to work better together.
7 followers

Rain TPL Yii View Renderer

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.

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

Authors

Vincent Gabriel http://vadimg.com

Total 3 comments

#9460 report it
letsjump at 2012/08/13 06:46am
Getting Yii::app() values

You can get Yii::App() values by using {$Yii->property}

Example: {$Yii->params['adminEmail']}
#9459 report it
letsjump at 2012/08/13 06:32am
How to use $this in view?

Can't get $this values! Example:

$this->widget('CCaptcha')

{this.property} doesn't seem to work!

#8849 report it
zainiafzan at 2012/07/03 02:32pm
Add Widget

How to add widget in view?

Leave a comment

Please to leave your comment.

Create extension