function index()
 {
     $group_category = (int) @$_GET['cat_group_category'];
     $input = Input::Instance();
     $category = new Category();
     $db = Database::Instance();
     $return = array();
     $msgerror = null;
     $searchtxt = $input->get($this->inputtext);
     $liked = array("name_product" => $searchtxt, 'description_product' => $searchtxt);
     $likedstr = " (\n      name_product LIKE '%{$searchtxt}%' OR description_product LIKE '%{$searchtxt}%' OR\n      name_product_en LIKE '%{$searchtxt}%' OR description_product_en LIKE '%{$searchtxt}%'\n    ) ";
     /* Count of Rows */
     $result = $db->select("count(*) as total")->from("product")->where($likedstr);
     if ($group_category > 0) {
         $result = $result->from("product_has_category")->where(array('category_id_category' => $group_category))->where("product_id_product = id_product");
     }
     $result = $result->get();
     foreach ($result as $row) {
         $total = $row->total;
     }
     /* Class Pagination */
     $this->pages = new Pagination(array('base_url' => "" . $this->__("search") . "/items/" . $this->__("page") . "/", 'uri_segment' => 'pagina', 'total_items' => $total, 'items_per_page' => $category->max_items_per_category, 'style' => $category->getstyle_pagination()));
     /* List of Products */
     $result = $db->select("*")->from("product")->orderby(array("update_product" => "DESC"))->where("{$likedstr}")->limit($category->max_items_per_category)->offset($this->pages->sql_offset);
     /*Condition Category group*/
     if ($group_category > 0) {
         $result = $result->from("product_has_category")->where(array('category_id_category' => $group_category))->where("product_id_product = id_product");
     }
     /* Build The Result */
     $result = $result->get();
     foreach ($result as $row) {
         Basic::currency($row->price_product);
         if ($row->price_offer_product > 0) {
             Basic::currency($row->price_offer_product);
             $row->price_product = "<strike>" . $row->price_product . "</strike> {$this->separator_price} " . $row->price_offer_product;
         }
         $row->href_add_product = url::base() . $this->__("cart") . "/" . $this->__("add") . "/id/{$row->id_product}";
         $row->href_detail_product = url::base() . $this->__("product") . "/" . $this->__("detail") . "/" . Basic::urlizar($row->name_product) . "/id/{$row->id_product}";
         $return[] = $row;
     }
     /* Error Detecting */
     if (count($return) < 1 or $searchtxt == null) {
         $return = array();
         $msgerror = __("No se encontraron resultados", false);
         $this->pages = null;
     }
     //     $this->content = View::factory("main/search_list_products")
     $this->title = __('Resultados de la búsqueda', false);
     $this->content = View::factory("main/list_products")->set('product', $return)->set('title', __('Resultados de la búsqueda', false))->set('msgerror', $msgerror)->set('pages', $this->pages)->render();
 }
 public function password_recovery()
 {
     $id = 0;
     $passto = false;
     $errors = array();
     $msg = "";
     if ($this->ispost()) {
         $input = Input::Instance();
         $mail = $input->post('mail');
         if ($mail == '') {
             $errors[] = __("El Email no puede estar vacio", false);
         } else {
             if (valid::email($mail) == false) {
                 $errors[] = __("El Email no es valido", false);
             } else {
                 $orm = $this->table->db2cls();
                 $result = $orm->load($mail, 'mail_client');
                 $id = (int) $result->id_client;
                 if ($id == 0) {
                     $errors[] = __("El Email no existe", false);
                 } else {
                     $passto = true;
                     $passwordgenorig = basics::passwordgenerator();
                     $passwordgen = fpp::cryptme($passwordgenorig);
                     $result->password_client = $passwordgen;
                     $href = html::anchor($this->href_store);
                     basics::mail_html_utf8($mail, __('Recuperación de clave de acceso', false), __("Estimado Cliente, <br/>Su nueva contraseña es", false) . " {$passwordgenorig} <br/>{$href}", $this->mail_store, "Floreria Rosabel");
                     $passto = true;
                     $result->save();
                 }
             }
         }
         $msg = $passto == false ? basics::diverror($errors) : basics::diverror(array(__("E-mail enviado, revise su buz&oacute;n", false)));
     }
     $this->content = View::factory("main/recovery_password")->set("msg", $msg)->render();
 }