$vendor = intval($_POST['product_vendors']); if ($vendor > 0) { $sql .= ' AND (product_vendor_id = ' . $vendor . ')'; } } // Recherche sur du texte if (isset($_POST['product_text']) && xoops_trim($_POST['product_text']) != '') { $temp_queries = $queries = array(); $temp_queries = preg_split('/[\\s,]+/', $_POST['product_text']); foreach ($temp_queries as $q) { $q = trim($q); $queries[] = $myts->addSlashes($q); } if (count($queries) > 0) { $tmpObject = new oledrion_products(); $datas = $tmpObject->getVars(); $fields = array(); $cnt = 0; foreach ($datas as $key => $value) { if ($value['data_type'] == XOBJ_DTYPE_TXTBOX || $value['data_type'] == XOBJ_DTYPE_TXTAREA) { if ($cnt == 0) { $fields[] = 'b.' . $key; } else { $fields[] = ' OR b.' . $key; } $cnt++; } } $count = count($queries); $cnt = 0; $sql .= ' AND ';
/** * **************************************************************************** * oledrion - MODULE FOR XOOPS * Copyright (c) Hervé Thouzard of Instant Zero (http://www.instant-zero.com) * * You may not change or alter any portion of this comment or credits * of supporting developers from this source code or any supporting source code * which is considered copyrighted (c) material of the original comment or credit authors. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * @copyright Hervé Thouzard of Instant Zero (http://www.instant-zero.com) * @license http://www.fsf.org/copyleft/gpl.html GNU public license * @package oledrion * @author Hervé Thouzard of Instant Zero (http://www.instant-zero.com) * * Version : $Id: * **************************************************************************** */ function oledrion_search($queryarray, $andor, $limit, $offset, $userid) { global $xoopsDB; require XOOPS_ROOT_PATH . '/modules/oledrion/include/common.php'; require_once XOOPS_ROOT_PATH . '/modules/oledrion/class/oledrion_products.php'; // Recherche dans les produits $sql = 'SELECT product_id, product_title, product_submitted, product_submitter FROM ' . $xoopsDB->prefix('oledrion_products') . ' WHERE (product_online = 1'; if (oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés $sql .= ' AND product_submitted <= ' . time(); } if (oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock $sql .= ' AND product_stock > 0'; } if ($userid != 0) { $sql .= ' AND product_submitter = ' . $userid; } $sql .= ') '; $tmpObject = new oledrion_products(); $datas = $tmpObject->getVars(); $tblFields = array(); $cnt = 0; foreach ($datas as $key => $value) { if ($value['data_type'] == XOBJ_DTYPE_TXTBOX || $value['data_type'] == XOBJ_DTYPE_TXTAREA) { if ($cnt == 0) { $tblFields[] = $key; } else { $tblFields[] = ' OR ' . $key; } $cnt++; } } $count = count($queryarray); $more = ''; if (is_array($queryarray) && $count > 0) { $cnt = 0; $sql .= ' AND ('; $more = ')'; foreach ($queryarray as $oneQuery) { $sql .= '('; $cond = " LIKE '%" . $oneQuery . "%' "; $sql .= implode($cond, $tblFields) . $cond . ')'; $cnt++; if ($cnt != $count) { $sql .= ' ' . $andor . ' '; } } } $sql .= $more . ' ORDER BY product_submitted DESC'; $i = 0; $ret = array(); $myts =& MyTextSanitizer::getInstance(); $result = $xoopsDB->query($sql, $limit, $offset); while ($myrow = $xoopsDB->fetchArray($result)) { $ret[$i]['image'] = 'images/product.png'; $ret[$i]['link'] = "product.php?product_id=" . $myrow['product_id']; $ret[$i]['title'] = $myts->htmlSpecialChars($myrow['product_title']); $ret[$i]['time'] = $myrow['product_submitted']; $ret[$i]['uid'] = $myrow['product_submitter']; $i++; } return $ret; }