Jump to content

Need Help ! How to add condition in Admin tab get list() function ?


Recommended Posts


I am developing shopping cart website using prestashop integration. now i want to list out products in catalog like default it should display only active products. it means enabled products not disabled one. (right now displaying both types of products . i don't want to display like that. i want to display only active products first)

for that i have tried to add condition in AdminTab.php

function name is getList()

here i have checked this query

$sql =
($this->_tmpTableFilter ? 'SELECT * FROM (' : '').'
SELECT '.($this->lang ? 'b.*, ' : '').'a.*'.(isset($this->_select) ? ', '.$this->_select.' ' : '').'
FROM `'._DB_PREFIX_.$sqlTable.'` a
'.($this->lang ? 'LEFT JOIN `'._DB_PREFIX_.$this->table.'_lang` b ON (b.`'.$this->identifier.'` = a.`'.$this->identifier.'` AND b.`id_lang` = '.intval($id_lang).')' : '').'
'.(isset($this->_join) ? $this->_join.' ' : '').'
WHERE 1 '.(isset($this->_where) ? $this->_where.' ' : '').($this->deleted ? 'AND a.`deleted` = 0 ' : '').$this->_filter.'
'.(isset($this->_group) ? $this->_group.' ' : '').'
ORDER BY '.(($orderBy == $this->identifier) ? 'a.' : '').'`'.pSQL($orderBy).'` '.pSQL($orderWay).
($this->_tmpTableFilter ? ') tmpTable WHERE 1'.$this->_tmpTableFilter : '').'
LIMIT '.intval($start).','.intval($limit);
$this->_list = Db::getInstance()->ExecuteS($sql);

for add condition i can use the variable $_where . where can i add and check condition for this variable ? please if any one know help me asap


Share this post

Link to post
Share on other sites

Thats fine. my doubt is where have to add that condition? i want to display active , non active and damaged products.

any have i got it where have to add. in products class.

i have added condition like

$_where ="AND active =1" like this

is it will make problem in future ?

Share this post

Link to post
Share on other sites

Yes, it may cause a problem if a table without an 'active' field is loaded. You'd be better of modifying a specific tab like admin/tabs/AdminProducts.php instead of classes/AdminTab.php, which is inherited by all tabs. For example, you could change line 53 of admin/tabs/AdminProducts.php from:

$this->_filter = 'AND cp.`id_category` = '.intval($this->_category->id);


$this->_filter = 'AND cp.`id_category` = '.intval($this->_category->id).' AND a.`active` = 1';

This will hide disabled products on the Catalog tab.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More