Pug render variable twice


recently, I want to pass this variable to the view

passedVars.metaOgUrl = '<meta property="og:url" content="' + originalUrl + '">';

and use the usual way of rendering variable in pug

#{metaOgUrl}

but it render the tag twice, a simple googling then found the answer, use != character as prefix

!=metaOgUrl

it’s rendered normal now

 

source:

https://stackoverflow.com/questions/23076881/jade-renders-my-html-twice

 

Advertisements

Yii : CGridView – Create Custom Column


I have a field which contains one character to represent project status (eg: F=Finished, S=Start, P=Pending, etc)

By default, CGridView will display one character value, but we want CGridView to display its description taken from other table, this is what I did:

First, create a component, let’s name it MyComponent. You can do it by create MyComponent.php and save it in component folder, I write something like this:

<?php
class MyComponent extends CApplicationComponent 
{
 public function getProjectStatus($statusCode)
 { 
 $sql = "SELECT STATUS_CODE,
 DESCRIPTION
 FROM REF_PROJECT_STATUS WHERE STATUS_CODE='$statusCode'";

 $rs = Yii::app()->db->createCommand($sql)->queryAll();

 $data = array();

 foreach($rs as $item){

 $statusCode = $item['STATUS_CODE'];
 $description = $item['DESCRIPTION'];

 $data[$statusCode] = $description;
 }
 
 return $data[$statusCode]; 
 } 
}

This way, you can call the function like this
Yii::app()->mycomponent->getProjectStatus($statusCode)

Then, replace the field name in your views (admin.php) with something like this

array('header' => 'Project Status', 'value' => 'Yii::app()->mycomponent->getProjectStatus($data->PROJECT_STATUS)'),

Some people suggest the function should be static

Yii version: 1.1.10

jQuery : Select All Checkbox


Yahoo! Mail and GMail both has a checkbox on top of their email list which will “checked” all chekboxes when clicked. Previously I use plain old javascript like those in this link, I just try to use jQuery to do this, its only 5 lines

$('#selectAll').click(function(event){
    $('input[type="checkbox"]').each(function(){
        this.checked = event.target.checked;
    });
});