0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 586 Просмотров
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Всем добрый день. Помогите выявить ошибки в скрипте, при сортировке товаров по цене. Взялся  один не добросовестный горе кодер с форума, деньги за работу взял но не довел работу до конца Валера Карманов его профиль  http://joomlaforum.ru/index.php?action=profile;u=169023

Суть проблемы: при нажатии сортировки появляются клоны(дубли товаров)

Код фильтра сортировки :

/media/zoo/applications/jbuniversal/templates/catalog/renderer/item_columns/_default.php

Спойлер
[свернуть]

Получается только на жимается сортировка, и начинают вылазить дубли товаро, от 3 и по 6 шт. одинаковых
« Последнее редактирование: 28.07.2015, 12:24:07 от xenos »
*

Gordon Freeman

  • Осваиваюсь на форуме
  • 118
  • 7
Суть проблемы: при нажатии сортировки появляются клоны(дубли товаров)

Конечно на трезвую голову сразу сделать правильно - это нереально, но попробуй замени полностью код в файле на этот ... Что тебе выведет на страницу...

Код
<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
// JRequest::getVar('sorting')
defined('_JEXEC') or die('Restricted access');
$mainframe = JFactory::getApplication();

$this->app->jbdebug->mark('layout::item_columns::start');

if ($vars['count']) {

    $count = $vars['count'];

    $j = 0;

foreach ($vars['objects'] as $object) {
$points = explode('"', substr($object, strripos($object, 'price="'), stripos($object, 'teaser_tmpl'))); // $points[1]
echo $points[1].'<br>';
}

}


$this->app->jbdebug->mark('layout::item_columns::finish');
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Вывело цены:

*

Gordon Freeman

  • Осваиваюсь на форуме
  • 118
  • 7
а если попробовать вот так...
Код
<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
// JRequest::getVar('sorting')
defined('_JEXEC') or die('Restricted access');
$mainframe = JFactory::getApplication();

$this->app->jbdebug->mark('layout::item_columns::start');

if ($vars['count']) {

    $count = $vars['count'];

    $j = 0;

foreach (array_unique($vars['objects']) as $object) { echo $object; }
}


$this->app->jbdebug->mark('layout::item_columns::finish'); ?>
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
а если попробовать вот так...
Код
<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
// JRequest::getVar('sorting')
defined('_JEXEC') or die('Restricted access');
$mainframe = JFactory::getApplication();

$this->app->jbdebug->mark('layout::item_columns::start');

if ($vars['count']) {

    $count = $vars['count'];

    $j = 0;

foreach (array_unique($vars['objects']) as $object) { echo $object; }
}


$this->app->jbdebug->mark('layout::item_columns::finish'); ?>

Так выводится все с описаниями и фотками, как надо вообщем.
*

Gordon Freeman

  • Осваиваюсь на форуме
  • 118
  • 7
Так выводится все с описаниями и фотками, как надо вообщем.

кароче это можно делать долго, но надо самому посмотреть... Если есть почта на mail.ru добавь меня в друзья и там разберемся...
напишу в ЛС....
*

robert

  • Профи
  • 4082
  • 378
Попробуйте этот код
Код: php-brief
if ($vars['count']) {
    $count = $vars['count'];
    $j = 0;

$regexp='~(price=")([^"]+)(")~';
$new_objects=array();
$sorting=JRequest::getVar('sorting','');

if(!empty($sorting)){
foreach($vars['objects'] as $object){
preg_match($regexp,$object,$matches);
$key=trim($matches[2]);
$new_objects[$key]=$object;
}

if($sorting=='cheap'){
ksort($new_objects);
}else{
krsort($new_objects);
}
foreach($new_objects as $new_object){
echo $new_object;
}
}else{
foreach($vars['objects'] as $object){
echo $object;
}
}
}
« Последнее редактирование: 28.07.2015, 14:15:42 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Попробуйте этот код
Код: php-brief
if ($vars['count']) {
    $count = $vars['count'];
    $j = 0;

$regexp='~(price=")([^"]+)(")~';
$new_objects=array();
$sorting=JRequest::getVar('sorting','');

if(!empty($sorting)){
foreach($vars['objects'] as $object){
preg_match($regexp,$object,$matches);
$key=trim($matches[2]);
$new_objects[$key]=$object;
}

if($sorting=='cheap'){
ksort($new_objects);
}else{
krsort($new_objects);
}
foreach($new_objects as $new_object){
echo $new_object;
}
}else{
foreach($vars['objects'] as $object){
echo $object;
}
}
}

Довольно не плохо, но получается сейчас если товары есть в категории с одинаковой ценой то остается один только а остальные после пропадают при нажатии сортировки.Дублей нет, но теперь и товар он разный но с одинаковой ценой  теперь пропадает...
*

robert

  • Профи
  • 4082
  • 378
Тогда так
Код: php-brief
if ($vars['count']) {
    $count = $vars['count'];
    $j = 0;

$regexp='~(price=")([^"]+)(")~';
$new_objects=array();
$sorting=JRequest::getVar('sorting','');

if(!empty($sorting)){
foreach($vars['objects'] as $object){
preg_match($regexp,$object,$matches);
$key=trim($matches[2]);
$key=array_key_exists($key,$new_objects)?((int)$key+1):$key;
$new_objects[$key]=$object;
}

if($sorting=='cheap'){
ksort($new_objects);
}else{
krsort($new_objects);
}
foreach($new_objects as $new_object){
echo $new_object;
}
}else{
foreach($vars['objects'] as $object){
echo $object;
}
}
}
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Тогда так
Код: php-brief
if ($vars['count']) {
    $count = $vars['count'];
    $j = 0;

$regexp='~(price=")([^"]+)(")~';
$new_objects=array();
$sorting=JRequest::getVar('sorting','');

if(!empty($sorting)){
foreach($vars['objects'] as $object){
preg_match($regexp,$object,$matches);
$key=trim($matches[2]);
$key=array_key_exists($key,$new_objects)?((int)$key+1):$key;
$new_objects[$key]=$object;
}

if($sorting=='cheap'){
ksort($new_objects);
}else{
krsort($new_objects);
}
foreach($new_objects as $new_object){
echo $new_object;
}
}else{
foreach($vars['objects'] as $object){
echo $object;
}
}
}

Уважаемый robert большая Вам благодарность, в помощи решении этой проблемы...
*

robert

  • Профи
  • 4082
  • 378
Re: Ошибки в фильтре сортировке товара
« Ответ #10 : 29.07.2015, 10:41:59 »
xenos, пишите здесь.
Не стоит благодарности, считайте, что это компенсация за недоделанную работу. И учтите, что дешево - не всегда хорошо.
Спойлер
[свернуть]
P.S. Попправил код.
« Последнее редактирование: 29.07.2015, 17:24:46 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Re: Ошибки в фильтре сортировке товара
« Ответ #11 : 29.07.2015, 11:18:20 »
xenos,  И учтите, что дешево - не всегда хорошо.


Это точно...
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Re: Ошибки в фильтре сортировке товара
« Ответ #12 : 29.07.2015, 13:40:21 »
xenos, пишите здесь.
Не стоит благодарности, считайте, что это компенсация за недоделанную работу. И учтите, что дешево - не всегда хорошо.
Спойлер
[свернуть]
P.S. Попправил код.

Не досмотрел, все ровно при нажатии сортировки по цене пропадают товары, и из 6 товаров у которых одинаковая цена остается всего два товара.Мистика какая то
*

robert

  • Профи
  • 4082
  • 378
Re: Ошибки в фильтре сортировке товара
« Ответ #13 : 29.07.2015, 17:23:49 »
Поправил.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

Petr45

  • Новичок
  • 2
  • 0
Re: Ошибки в фильтре сортировке товара
« Ответ #14 : 30.07.2015, 11:21:44 »
кароче это можно делать долго, но надо самому посмотреть... Если есть почта на mail.ru добавь меня в друзья и там разберемся...
напишу в ЛС....
Добавился к вам в друзья. Можете мне тоже отправить в лс почту? Есть тоже вопросы по поводу фильтра ZOO.
*

robert

  • Профи
  • 4082
  • 378
Re: Ошибки в фильтре сортировке товара
« Ответ #15 : 30.07.2015, 17:48:05 »
xenos, фильтр уже нормально работает?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

xenos

  • Осваиваюсь на форуме
  • 51
  • 1
Re: Ошибки в фильтре сортировке товара
« Ответ #16 : 01.08.2015, 13:15:23 »
xenos, фильтр уже нормально работает?
Да, еще в одной категории не сортирует два товара, почему то не реагирует на них сортировка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки simplexml_load_file()

Автор caitleen

Ответов: 9
Просмотров: 5131
Последний ответ 12.12.2015, 12:41:32
от Катя
Сообщение после заказа товара Zoo

Автор dasisgood

Ответов: 3
Просмотров: 358
Последний ответ 14.07.2014, 16:02:36
от dasisgood
[Элемент] ZOOPLATI - Кнопка оплаты товара в plati.ru(oplata.info)

Автор likrion

Ответов: 14
Просмотров: 3057
Последний ответ 18.06.2014, 00:43:30
от likrion
JbZoo настройка выбора атрибутов товара

Автор roadlion

Ответов: 2
Просмотров: 476
Последний ответ 09.06.2014, 00:58:14
от roadlion
Вывод товаров "Титульная страница" на странице товара

Автор liar94

Ответов: 1
Просмотров: 410
Последний ответ 28.11.2013, 12:51:06
от Efanych