Yii – Only fill filter dropdown with used options

Sometimes you want to show a filter dropdown but by default it will show all value options even if not assigned to anything. You can use findAll with criteria to only bring back items which are in use…


$criteria = new CDbCriteria;
$criteria->join = 'INNER JOIN organisation ON organisation.category_id = t.category_id';

if($_GET['school_id'])
{
	$criteria->condition = 'organisation.school_id = ' . $_GET['school_id'];
}
else
{

}

$categories = OrganisationCategory::model()->findAll($criteria);
$categories_array = array();
foreach($categories as $category)
{
	$categories_array[$category->category_id] = $category->name;
}


$columns = array(
	'name',
	array(
		'name'=>'category_id',
		'value' => 'OrganisationCategory::model()->findByPk($data->category_id)->name',
		'filter' => $categories_array
[...]

[carousel keywords=”yii” tag=”fetchit-21″]

Yii CGridView default Order

If you want to set a default sort order for a CGridView, often used in admin views you can do so in the controller as part of the search() function:

$dataProvider = new CActiveDataProvider(get_class($this), array(
	'criteria'=>$criteria,
	'sort' => array('defaultOrder' => 'name')
));

Do We Even Need Cookies?

A new law came into force on May 26th 2011 in the UK and Europe that affect websites and how they deal with the user flow of saving cookies to a visitors browser.

Previously websites could use cookies as much as they liked and we only limited by the browsers of the people visiting their websites, but as of late May the Privacy and Electronic Communications (EC Directive) Amendment Regulations 2011 require that certain information must be given to that site’s visitors and the user must give his or her consent to the placing of the cookies.

In english, that means that a site must ask all users permission before saving a cookie to their browser.

Continue reading

Hide topics row in Postbox message view

I love Postbox. I talk about it a lot. However Postbox is trying to be more than a mail client and as part of that is attempting to sneak into the world of GTD with the inclusion of todos and topics.

Now call me old fashioned but I use Things for my GTD stuff and so don’t use todos or topics in Postbox.

“Not a problem really is it?” I hear you yell. Well no until you look at the amount of space the topic row of Message View takes up. Believe me on a small screen this matters:

Continue reading