Back to PhocacartStatisticsHits class

Method searchHit

public static
searchHit
(mixed $search = '')

Method searchHit - Source code

public static function searchHit($search = '')
{
    if ($search == '') {
        return false;
    }
    $app = Factory::getApplication();
    $paramsC = PhocacartUtils::getComponentParameters();
    $additional_hits = $paramsC->get('additional_hits', array());
    // 2 ... search term
    if (!in_array(2, $additional_hits)) {
        return false;
    }
    $user = PhocacartUser::getUser();
    $db = Factory::getDbo();
    $ip = PhocacartUtils::getIp();
    $date = Factory::getDate();
    $item = array();
    $q = 'SELECT a.id, a.hits' . ' FROM #__phocacart_hits AS a';
    if (isset($user->id) && (int) $user->id > 0) {
        $q .= ' WHERE a.item = ' . $db->quote($db->escape($search)) . ' AND a.user_id = ' . (int) $user->id;
    } else {
        if (isset($ip) && $ip != '') {
            $q .= ' WHERE a.item = ' . $db->quote($db->escape($search)) . ' AND a.ip = ' . $db->quote($ip);
        }
    }
    $q .= ' ORDER BY a.id' . ' LIMIT 1';
    $db->setQuery($q);
    $item = $db->loadAssoc();
    $q = '';
    if (empty($item)) {
        if (isset($user->id) && (int) $user->id > 0) {
            $q = 'INSERT INTO #__phocacart_hits (item, user_id, ip, hits, type, date) VALUES (' . $db->quote($db->escape($search)) . ', ' . (int) $user->id . ', ' . $db->quote($ip) . ', 1, 2, ' . $db->quote($date) . ')';
        } else {
            if (isset($ip) && $ip != '') {
                $q = 'INSERT INTO #__phocacart_hits (item, ip, hits, type, date) VALUES (' . $db->quote($db->escape($search)) . ', ' . $db->quote($ip) . ', 1, 2, ' . $db->quote($date) . ')';
            }
        }
        $db->setQuery($q);
        $db->execute();
        return true;
    } else {
        if (isset($item['id']) && (int) $item['id'] > 0) {
            $hits = (int) $item['hits'] + 1;
            if (isset($user->id) && (int) $user->id > 0) {
                $q = 'UPDATE #__phocacart_hits SET hits = ' . (int) $hits . ', date = ' . $db->quote($date) . ' WHERE item = ' . $db->quote($db->escape($search)) . ' AND user_id = ' . (int) $user->id;
                $db->setQuery($q);
                $db->execute();
                return true;
            } else {
                if (isset($ip) && $ip != '') {
                    $q = 'UPDATE #__phocacart_hits SET hits = ' . (int) $hits . ', date = ' . $db->quote($date) . ' WHERE item = ' . $db->quote($db->escape($search)) . ' AND ip = ' . $db->quote($ip);
                    $db->setQuery($q);
                    $db->execute();
                    return true;
                }
            }
        }
    }
    return false;
}