function applyFilters($q, $au)
{
- //DB_DataObject::debugLevel(1);
+// DB_DataObject::debugLevel(1);
if (!empty($q['query']['empty_etype'])) {
$this->whereAdd("etype = ''");
}
}
- $this->autoJoin();
- print_r($this);
+ if(!empty($q['query']['search'])) {
+ $name = $this->escape($q['query']['search']);
+ // ilike on postgres?!?
+ $this->whereAdd("
+ core_enum.name LIKE '%{$name}%'
+ OR
+ core_enum.display_name LIKE '%{$name}%'
+ ");
+ }
+
+// print_r($this);
if(!empty($q['id'])){
$this->id = $q['id'];
}
CASE WHEN
'$l' = 'en' THEN display_name
ELSE
- cms_templatestr.txt
+ CASE WHEN cms_templatestr.txt IS NOT NULL AND cms_templatestr.txt != '' THEN
+ cms_templatestr.txt
+ ELSE
+ display_name
+ END
END as display_name_tr
");
function beforeUpdate($old, $request,$roo)
- {
+ {
$tn = $this->tableName();
$x = $this->factory($tn);
if(!($old->etype == $request['etype'] && $old->name == $request['name'])){
- $x->whereAdd("etype = '{$request['etype']}' AND name = '{$request['name']}'");
+ $x->whereAdd("etype = '{$this->escape($request['etype'])}' AND name = '{$this->escape($request['name'])}'");
$x->find(true);
if($x->count() > 0){
$roo->jerr('is exsiting');
$roo->jerr('name is exsiting');
}
}else{
- $x->whereAdd("etype = '{$req['etype']}' AND name = '{$req['name']}'");
+ $x->whereAdd("etype = '{$this->escape($req['etype'])}' AND name = '{$this->escape($req['name'])}'");
$x->find(true);
if($x->count() > 0){
$roo->jerr('is exsiting');
if ($old->etype != $this->etype) {
$x->query("SELECT core_enum_seqmax_update('". $this->escape($old->etype) ."')");
}
+ if($this->name != $old->name && empty($old->etype) && empty($this->etype)){
+ $x->query("UPDATE core_enum SET etype = '". $this->escape($this->name)
+ ."' WHERE etype = '". $this->escape($old->name)."'");
+ }
}
/**
* @return array ID of core_enum
*/
- function lookupAllByName($etype,$name) {
+ function lookupAllByName($etype,$names) {
$ce = DB_DataObject::Factory('core_enum');
$ce->etype = $etype;
- $ce->whereAddIn('name', $name, 'string');
+ $ce->whereAddIn('name', $names, 'string');
if ($ce->count() > 0) {
return $ce->fetchAll('id');