/** * Converte os dados de uma STRING JSON para o Objeto Where * * @param string $data * @return \ZendT_Db_Where */ public static function fromJson($data) { if (is_string($data)) { try { $data = Zend_Json_Decoder::decode(stripslashes(base64_decode($data))); } catch (Exception $ex) { $data = stripslashes(urldecode($data)); $data = Zend_Json_Decoder::decode($data); if (!isset($data['ZendT_Db_Where'])) { if (count($data['filter']) > 0) { $where = array(); $where['groupOp'] = $data['filter_groupop']; $where['filter'] = $data['filter']; $data = array(); $data['ZendT_Db_Where'] = $where; } } } } if (!isset($data['ZendT_Db_Where']['groupOp'])) { return new ZendT_Db_Where(); } if ($data['ZendT_Db_Where']['filter']) { foreach ($data['ZendT_Db_Where']['filter'] as $filter) { if ($filter['operation'] == 'in') { if (is_string($filter['value']) && strpos($filter['value'], ',') !== false) { $filter['value'] = explode(',', $filter['value']); } } } } $filter = $data['ZendT_Db_Where']['filter']; $groupOp = $data['ZendT_Db_Where']['groupOp']; $result = new ZendT_Db_Where($groupOp); $result->setFilter($filter); return $result; }