X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Php доработка для Vamshop, Помогите...
Назар
Назар
Topic Starter сообщение 2.6.2010, 22:47; Ответить: Назар
Сообщение #1


Участник
***

Группа: User
Сообщений: 143
Регистрация: 6.12.2009
Из: Харькова
Поблагодарили: 19 раз
Репутация:   9  


В файл includes/modules/product_compare.php нужно внедрить функцию чтобы вывод отфильтрованного товара осуществлялся не только по фильтрам но и по цене.
Например я передаю переменную z через GET со значением 1000 - мне должны отобразиться товары с ценой до 1000 + если задействованы фильтры то также должно отсеить товар по фильтрам.
Как это можно реализовать?


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 2.6.2010, 22:49; Ответить: Electric
Сообщение #2


CMS help/antivirus
******

Группа: Active User
Сообщений: 1532
Регистрация: 27.12.2009
Из: Єдина Україна
Поблагодарили: 389 раз
Репутация:   57  


Код файла в студию.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Назар
Назар
Topic Starter сообщение 2.6.2010, 22:51; Ответить: Назар
Сообщение #3


Участник
***

Группа: User
Сообщений: 143
Регистрация: 6.12.2009
Из: Харькова
Поблагодарили: 19 раз
Репутация:   9  


Прикрепленный файл  product_compare.php ( 6,55 килобайт ) Кол-во скачиваний: 45


<?php
/* -----------------------------------------------------------------------------------------
   $Id: product_compare.php 1124 2009-04-29 19:20:03 VaM $

   VaM Shop - open source ecommerce solution
   http://vamshop.ru
   http://vamshop.com

   Copyright (c) 2009 VaM Shop
   -----------------------------------------------------------------------------------------
   for VaM Shop by Darth AleX
  
   input: GET,  products[]=ID&products[]=ID...&products[]=ID - max 5 int

   Released under the GNU General Public License
   ---------------------------------------------------------------------------------------*/

//include needed functions
require_once (DIR_FS_INC.'vam_check_categories_status.inc.php');
require_once (DIR_FS_INC.'vam_get_products_mo_images.inc.php');
require_once (DIR_FS_INC.'vam_get_vpe_name.inc.php');
require_once (DIR_FS_INC.'get_cross_sell_name.inc.php');

$info = new vamTemplate;
$info->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
$module_content = false;


$temp = array();
//$_REQUEST["products"] = array(3259, 1624);
if (is_array($_REQUEST["products"]))
{
    foreach($_REQUEST["products"] as $v)
    {
        if (is_numeric(intval(trim($v)))) $temp[] = $v;
    }
}

if (is_array($temp) && sizeof($temp) > 0)
{
    $products_query = vamDBquery("SELECT
                                     *
                                     FROM ".TABLE_PRODUCTS." p,
                                     ".TABLE_PRODUCTS_DESCRIPTION." pd
                                     WHERE p.products_id IN (".implode(", ", $temp).") and
                                     p.products_id = pd.products_id
                                     and pd.language_id = '".(int) $_SESSION['languages_id']."'
                                     and p.products_status=1 order by products_name limit 5");
    $c_id = array();
    $temp_parameters = array();
    while ($products_data = vam_db_fetch_array($products_query, true))
    {
        $module_content[] =  $product->buildDataArray($products_data);
        $temp_parameters[$products_data['products_id']] = array();
        $c_id[] = $products_data['products_id'];
    }
    
    if (is_array($c_id) && sizeof($c_id) > 0)
    {
        $cats = vam_db_query("SELECT DISTINCT MAX(categories_id) as categories_id FROM products_to_categories WHERE products_id IN (".implode(", ", $c_id).") GROUP by products_id");
        $temp = array(-1);
        while ($c = vam_db_fetch_array($cats, true))
        {
            $temp[] =  $c['categories_id'];
        }

        $parameters_query = vamDBquery("SELECT * FROM `products_parameters2products`
        LEFT JOIN `products_parameters` using(products_parameters_id)
        WHERE products_id IN (".implode(", ", $c_id).") and
        products_parameters.products_parameters_id is not null and
        products_parameters_order >= 0 and
        products_parameters2products_order >= 0
        order by IF(products_parameters2products_order > 0, products_parameters2products_order, products_parameters_order)");

        $parameters = array();
        $i = 0;
        while ($parameters_data = vam_db_fetch_array($parameters_query, true))
        {
            $i = $parameters_data['products_parameters_id'];
            
            $parameters[$i]["parameters_id"] = $parameters_data["products_parameters_id"];
            $parameters[$i]["parameters_name"] = $parameters_data["products_parameters_title"];
            $parameters[$i]["parameters_group"] = $parameters_data["products_parameters_group"];
            $parameters[$i]["is_group"] = $parameters_data["products_parameters_type"] == 'g';
            if (!is_array($parameters[$i]["parameters_values"]))
            {
                $parameters[$i]["parameters_values"] = $temp_parameters;
            }
            $parameters[$i]["parameters_values"][$parameters_data['products_id']] = array("value" => $parameters_data["products_parameters2products_value"]);
            $i++;
        }
    }
    
    if (is_array($parameters) && sizeof($parameters) > 0)
    {
        foreach($parameters as $i => $p)
        {
            foreach($c_id as $id)
            {
                if (!isset($parameters[$i]["parameters_values"][$id]))  $parameters[$i]["parameters_values"][$id] = "";
            }
        }
        
        
        $temp = array();
        foreach($parameters as $k => $p)
        {
            if ($p["parameters_group"] == 0) $temp[$p["parameters_id"]] = $p;
        }
    }
    
    $parameters_query = vamDBquery("SELECT * FROM `products_parameters` WHERE products_parameters_type = 'g' order by products_parameters_order");
    while ($parameters_data = vam_db_fetch_array($parameters_query, true))
    {
        $parameters_data["is_group"] = $parameters_data["products_parameters_type"] == 'g';
        foreach($parameters as $k => $p)
        {
            if ($p["parameters_group"] == $parameters_data["products_parameters_id"])
            {
                if (!is_array($temp[$parameters_data["products_parameters_id"]]))
                {
                    $temp[$parameters_data["products_parameters_id"]] = array("parameters_id" => $parameters_data["products_parameters_id"],
                                                                              "parameters_name" => $parameters_data["products_parameters_name"],
                                                                              "is_group" => $parameters_data["is_group"]);
                }
                $temp[$p["parameters_id"]] = $p;
            }
        }
    }
    $parameters = $temp;
}

if (!is_array($module_content) || sizeof($module_content) == 0) { // products not found in database
    $error = TEXT_PRODUCT_NOT_FOUND;
    include (DIR_WS_MODULES.FILENAME_ERROR_HANDLER);
} else {
    
    $info->assign('language', $_SESSION['language']);
    $info->assign('module_content', $module_content);
    $info->assign('parameters', $parameters);
    
    // set cache ID
     if (!CacheCheck()) {
        $info->caching = 0;
        $product_info = $info->fetch(CURRENT_TEMPLATE.'/module/product_compare.html');
    } else {
        $info->caching = 1;
        $info->cache_lifetime = CACHE_LIFETIME;
        $info->cache_modified_check = CACHE_CHECK;
        $cache_id = implode(".", $c_id).$_SESSION['language'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency'];
        $product_info = $info->fetch(CURRENT_TEMPLATE.'/module/product_compare.html', $cache_id);
    }
    
    $vamTemplate->assign('main_content', $product_info);    
}
?>


Сообщение отредактировал Назар - 2.6.2010, 22:55


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 2.6.2010, 23:12; Ответить: Electric
Сообщение #4


CMS help/antivirus
******

Группа: Active User
Сообщений: 1532
Регистрация: 27.12.2009
Из: Єдина Україна
Поблагодарили: 389 раз
Репутация:   57  


Дайте название поля в таблице "products_parameters", где записана цена товара.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Назар
Назар
Topic Starter сообщение 2.6.2010, 23:27; Ответить: Назар
Сообщение #5


Участник
***

Группа: User
Сообщений: 143
Регистрация: 6.12.2009
Из: Харькова
Поблагодарили: 19 раз
Репутация:   9  




--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 2.6.2010, 23:30; Ответить: Electric
Сообщение #6


CMS help/antivirus
******

Группа: Active User
Сообщений: 1532
Регистрация: 27.12.2009
Из: Єдина Україна
Поблагодарили: 389 раз
Репутация:   57  


А там есть поле "products_parameters_price" или пожожее по названию?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Назар
Назар
Topic Starter сообщение 2.6.2010, 23:34; Ответить: Назар
Сообщение #7


Участник
***

Группа: User
Сообщений: 143
Регистрация: 6.12.2009
Из: Харькова
Поблагодарили: 19 раз
Репутация:   9  


В той таблице нет.
Но есть ещё две...
products_parameters2products
products_parameters_values






--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 3.6.2010, 0:08; Ответить: Electric
Сообщение #8


CMS help/antivirus
******

Группа: Active User
Сообщений: 1532
Регистрация: 27.12.2009
Из: Єдина Україна
Поблагодарили: 389 раз
Репутация:   57  


Почитал тут:
http://vamshop.ru/manual/ch13.html
Замутно блин написано... сори не знаю как помочь


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Назар
Назар
Topic Starter сообщение 3.6.2010, 0:42; Ответить: Назар
Сообщение #9


Участник
***

Группа: User
Сообщений: 143
Регистрация: 6.12.2009
Из: Харькова
Поблагодарили: 19 раз
Репутация:   9  


Ок. Спасибо и за старания wink.gif
Вроде нашли человека, который сделает... думаю, можно топик закрывать.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Разработка баннеров для интернет-рекламы: html5, flash, gif и jpg
22 twildd 5902 Сегодня, 19:02
автор: twildd
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлы> Хостинг для чайников и спецов со сверхскоростным саппортом от HOSTiQ.com.ua
Хостинг, VIP-хостинг, Реселлинг, VPS, Выделенные серверы
45 HOSTiQ 15633 Сегодня, 18:42
автор: HOSTiQ
Открытая тема (нет новых ответов) Ищу платёжный агрегатор для работы с физ. лизами (не ИП)
14 SergeiVL 2350 Сегодня, 18:16
автор: BestExchangers
Открытая тема (нет новых ответов) Стоит ли подавать платную заявку в Яндекс Каталог для регионального издания?
11 DVORYAN 1582 Сегодня, 17:48
автор: RICHHost
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыSE Ranking – новый сервис для проверки позиций сайтов в поисковиках
172 seranking 157769 Сегодня, 16:34
автор: One_on_One


 



RSS Текстовая версия Сейчас: 11.12.2017, 19:35
Дизайн