Exemplo n.º 1
0
 /**
  * Gets filter criteria by the setting
  *
  * @param   string  $name                Setting name
  * @param   string  $value      optional Setting value
  * @param   array   $criteria   optional Criteria, if already exists
  *
  * @return  array   Returns extended criteria
  */
 public function getSettingCriteria($name, $value = null, array $criteria = null)
 {
     $serverProperty = new ServerProperty();
     $alias = "sp_" . trim($this->db()->qstr($name), "'");
     $join = "\n            JOIN {$serverProperty->table($alias)} ON {$this->columnServerId()} = {$serverProperty->columnServerId($alias)}\n                AND {$serverProperty->columnName($alias)} = {$serverProperty->qstr('name', $name)}";
     if (isset($criteria[AbstractEntity::STMT_FROM])) {
         $criteria[AbstractEntity::STMT_FROM] .= " {$join}";
     } else {
         $criteria[AbstractEntity::STMT_FROM] = " {$join}";
     }
     if (isset($value)) {
         $where = "{$serverProperty->columnValue($alias)} = {$serverProperty->qstr('value', $value)}";
         if (isset($criteria[AbstractEntity::STMT_WHERE])) {
             $criteria[AbstractEntity::STMT_WHERE] .= " AND ({$where})";
         } else {
             $criteria[AbstractEntity::STMT_WHERE] = $where;
         }
     }
     return $criteria;
 }