/** * @desc * @param $typeOfReturn * @param $id * @param $active * @param $name * @param $title * @param $hat * @param $description * @param $content * @param $author * @param $template_url * @param $slug * @param $key_words * @param $date * @param $date_symbol * @param $date_in * @param $date_in_symbol * @param $date_out * @param $date_out_symbol * @param $order_type * @param $quant_limit * @param $quant_started * @param $search * @param $locale * @return unknown_type */ public function select($typeOfReturn = NULL, $id = NULL, $active = NULL, $name = NULL, $title = NULL, $hat = NULL, $description = NULL, $content = NULL, $author = NULL, $template_url = NULL, $slug = NULL, $key_words = NULL, $date = NULL, $date_symbol = ">=", $date_in = NULL, $date_in_symbol = ">=", $date_out = NULL, $date_out_symbol = ">=", $order_type = NULL, $quant_limit = NULL, $quant_started = NULL, $search = NULL, $locale = NULL) { $arrayFilter = array(); // //SELECT // count(content.id) as count_total , // content.* //FROM // content // INNER JOIN // therm // ON `therm`.table = 'content' // AND `therm`.therm = 'key_words' // AND `therm`.locale = 'pt_BR' // AND `therm`.value LIKE '%bill%' // //WHERE // 1 // AND `content`.active = '1' // AND `content`.id = `therm`.table_id // GROUP BY `therm`.table_id //é necessario passar a string a ser procurado e o locale para ralizar um search $is_search = $search != NULL && $locale != NULL ? TRUE : FALSE; if ($search) { $search = urldecode($search); $search = DataHandler::cleanStringsForSearch($search); $search = str_replace(" ", "%", $search); } //echo Debug::li("prucura: ".$search." - locale: ".$locale);exit(); $query = "SELECT\r\n\t\t\t\t\t\t\t`content`.* "; $query .= "FROM \r\n\t\t\t\t\t \t\tcontent "; if ($is_search) { $query .= "INNER JOIN \r\n\t\t\t\t\t\t\ttherm \r\n\t\t\t\t\t\t\t\tON `therm`.table = 'content' \r\n\t\t\t\t\t\t\t\tAND `therm`.therm = 'key_words' \r\n\t\t\t\t\t\t\t\tAND `therm`.locale = '{$locale}' \r\n\t\t\t\t\t\t\t\tAND `therm`.value LIKE '%{$search}%' \r\n\t\t\t\t\t\t\t\t"; } $query .= " WHERE 1 "; if ($is_search) { $query .= " AND `content`.active = '1' \r\n\t\t\t\t\t\tAND `content`.id = `therm`.table_id\r\n\t\t\t\t\t\t\r\n\t\t\t"; } $this->addFilter($query, $id, $active, $name, $title, $hat, $description, $content, $author, $template_url, $slug, $key_words, $date, $date_symbol, $date_in, $date_in_symbol, $date_out, $date_out_symbol, $order_type); $queryCount = "SELECT\r\n\t\t\t\t\t\t\tcount(content.id) as count_total "; $queryCount .= " FROM \r\n\t\t\t\t\t \t\tcontent "; if ($is_search) { $queryCount .= " INNER JOIN \r\n\t\t\t\t\t\t\ttherm \r\n\t\t\t\t\t\t\t\tON `therm`.table = 'content' \r\n\t\t\t\t\t\t\t\tAND `therm`.therm = 'key_words' \r\n\t\t\t\t\t\t\t\tAND `therm`.locale = '{$locale}' \r\n\t\t\t\t\t\t\t\tAND `therm`.value LIKE '%{$search}%' \r\n\t\t\t\t\t\t\t\t"; } $queryCount .= " WHERE 1 "; if ($is_search) { $queryCount .= " AND `content`.active = '1' \r\n\t\t\t\t\t\t\t AND `content`.id = `therm`.table_id\r\n\t\t\t"; } //Debug::print_r($query);exit(); //print_r($queryCount);exit(); $this->addFilter($queryCount, $id, $active, $name, $title, $hat, $description, $content, $author, $template_url, $slug, $key_words, $date, $date_symbol, $date_in, $date_in_symbol, $date_out, $date_out_symbol, $order_type); //limite $query .= parent::limit($quant_limit, $quant_started); // Debug::print_r($query);exit(); //executa a query $ReturnDataVO = parent::query($query); // echo $queryCount;exit(); //executa a query para gerar count total $ReturnTotalDataVO = parent::query($queryCount); if ($ReturnDataVO->success) { switch ($typeOfReturn) { case DbInterface::RETURN_ARRAY: $ReturnDataVO->fetchAll(ReturnDataVO::TYPE_FETCH_ARRAY); break; case DbInterface::RETURN_VO: $ReturnDataVO->fetchAllVO($this); break; case DbInterface::RETURN_STD_OBJECT: default: //retornar tudo em objeto $ReturnDataVO->fetchAll(ReturnDataVO::TYPE_FETCH_OBJECT); break; } $ReturnTotalDataVO->fetchAll(ReturnDataVO::TYPE_FETCH_OBJECT); // Debug::print_r($ReturnTotalDataVO);exit(); if (isset($ReturnTotalDataVO->result[0]->count_total)) { $tempTotal = $ReturnTotalDataVO->result[0]->count_total; } else { $tempTotal = 0; } $ReturnDataVO->count_total = $tempTotal; // echo Debug::print_r($ReturnDataVO); // exit(); return $ReturnDataVO; } else { return $ReturnDataVO; } }
/** * @param $key_words * @param $locale * @return void */ public function setKeyWords($key_words, $locale = NULL) { if ($locale == NULL) { $this->key_words = DataHandler::cleanStringsForSearch($key_words); } else { $this->addTherms(ContentVO::TERM_KEY_WORDS, $locale, DataHandler::cleanStringsForSearch($key_words)); } }