User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

If you are developing Joomla 3.x components you should familiar with this code:

JHtmlSidebar::addFilter(
	JText::_('JOPTION_SELECT_PUBLISHED'),
	'filter_published',
	JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), "value", "text", $this->state->get('filter.state'), true)
);

This code will create a drop down list to filter the items based on their state. This JHtmlJGrid is defined on /joomlapath/libraries/cms/html/jgrid.php and you can see the available options on jgrid.publishedOptions function. Here are the complete list:

$options[] = JHtml::_('select.option', '1', 'JPUBLISHED');
$options[] = JHtml::_('select.option', '0', 'JUNPUBLISHED');
$options[] = JHtml::_('select.option', '2', 'JARCHIVED');
$options[] = JHtml::_('select.option', '-2', 'JTRASHED');
$options[] = JHtml::_('select.option', '*', 'JALL'); 

So if you want to show only some options on the filter drop down list you can use the following code: 

//show Trash and All option only
$options        = array();        
$options[]      = JHtml::_('select.option', '-2', 'JTRASHED');
$options[]      = JHtml::_('select.option', '*', 'JALL');
JHtmlSidebar::addFilter(
	JText::_('JOPTION_SELECT_PUBLISHED'),
	'filter_published',
	JHtml::_('select.options', $options, "value", "text", $this->state->get('filter.state'), true)
);