Jump to content

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


Prema

Recommended Posts

Hi,


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

Thanks
Prema

Link to comment
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 ?

Link to comment
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);



to:

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



This will hide disabled products on the Catalog tab.

Link to comment
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...