Даниил

Даниил

С нами с 30 мая 2013; Место в рейтинге пользователей: #432
Даниил
11 августа 2016, 21:53
0
Я уже практически дописал компонент, который близок к функционалу того же getResource, только в порядке дерева ресурсов из админки выводит все. Скоро совсем надобность в решении вопроса отпадет.

Тем не менее, мне очень интересно было бы либо чтоб добавили функционал в pdoTools, о котором я выше писал, либо чтоб нашлась таки с имеющимся функционалом стопудовая возможность реализации порядка «как в дереве», но с лимитами и разбиениями на подстраницы.
Даниил
11 августа 2016, 21:47
0
Да мне за данную модернизацию на сайте всего 1тр клиент платит. Я думаю хоть какое-то более-менее пристойное вознаграждение из этой суммы уже совсем никак не получается :DDD
Даниил
11 августа 2016, 21:43
0
Изначально лимиты отсутствовали. Сайт работал так уже около 3-4-х лет и все было отлично. Обертка из pdoPage была добавлена для того, чтобы разбить длинные списки товаров на подстраницы, а затем при скроллинге задействовать аяксовую возможность подгрузки содержимого последующих псевдостраниц
Даниил
11 августа 2016, 20:48
0
Я почему-то уверен на 99.9%, что я не ошибся предположив последовательность работы сниппетов pdoMenu и pdoResources. Так что думаю вышесказанное вполне обосновано, тем более что код который по идее должен был бы сработать у меня и отсортировать как мне нужно, все таки не сработал.

А можете гденьть пример показать, где у вас этот же вызов правильно выбирает все?
Даниил
11 августа 2016, 20:42
0
Я к Василию очень уважительно и почтительно отношусь и не в коем случае не виню! Я лишь указываю на конкретное неудобство и в надежде, что меня услышат, даю добрый совет по вполне полезному улучшению компонента.

Товары на этом сайте — просто обычные ресурсы (класс modResource) со своими TVэхами.
Даниил
11 августа 2016, 19:25
0
Вроде любое число можно указать в лимите.
Даниил
11 августа 2016, 19:21
0
не, просто обычные ресурсы вытягиваю
Даниил
11 августа 2016, 19:21
0
Это даже не глюк, а видимо непродуманность самих компонентов. Результатом работы указанных сниппетов являются одини и те же результаты, какую бы мы не указали сортировку! Т.е. они сначала вытягивают из MySQL базы некоторые данные, а уже потом расставляют по местам в соответствии с условиями сортировки. Соответственно при указании лимитов мы получаем верную сортировку только относительно того, что надергали, а не относительно всего указанного списка ресурсов.

Вот если бы оно выбирало изначально в последовательности, которая в сортировке задана, вот тогда бы все отлично было! Короче, надо чтоб автор доработал компоненты и по возможности разделил &sortby на что-то типо &sortbyBefore и &sortbyAfter… Ну либо не разделять, а сделать переключалку еще одним параметром, например &sqlSort=`1` или =`0` (1 — значения выбираются из базы в соответствии с условиями сортировки, а 0 — когда сортировка выборки отключена и значения сортируются уже после того как были получены).
Даниил
11 августа 2016, 18:40
0
А у меня достаточно странное поведение. Порядок товаров — вроде везде верный и они не скачут. С категориями глюки!
Если лимит 20 — то все категории скапливаются в конце, на самой последней странице пагинации. Если ставлю достаточно большой лимит, 100-200, например, то все норм, располагаются там, где им и положено. Если плавно опускаю значение, например 60-50 делаю, то все, уже позиции слетают — чем ниже число лимита, тем больше категорий, начиная с начала списка, из положенных мест перепрыгивают в конец.

Глюк зависит, насколько я понял, от общего количества выбираемых ресурсов и от устанавливаемого лимита.

ps: Почекал сейчас еще без обертки — оказывается тот же глюк, если задавать лимит на количество выводимых ресурсов. Таким образом именно pdoPage не при чем! Баги именно в pdoMenu / pdoResources… И я понял какие!!! Сортировка происходит с полной выборкой правильно потому, что имеются все необходимые элементы, которые потом расставляются по своим местам. А когда у нас лимит стаит, то и части элементов как бы нет, и сортируются только лишь оставшиеся. За счет этого выводы разные получаются с лимитом и без.
Вот как бы так сделать, чтоб лимит был, но чтоб позиции оказались те же, как будто его нет?)
Даниил
11 августа 2016, 18:05
0
Благодарю за попытку помочь!!! К сожалению тоже не верно выводит.
На выходе абсолютно такая же картина как у меня с оберткой в pdoPage и параметром &sortby=`{«menuindex»:«ASC»} (см. ранее прикрепленную картинку)
Даниил
11 августа 2016, 16:56
0
Кстати вполне помогла бы не только json-строка с правильным условием для сортировки, но и знание как отключить эту сортировку вообще и передать в pdoMenu или pdoResources просто список id ресурсов для вывода.

Написать какой-ньть сниппет, который надергает этих id в нужной последовательности мне не проблема, а вот как скормить этот список pdoШным сниппетам — не могу врубиться((
Даниил
11 августа 2016, 12:39
0
Неужели в сортировке невозможно указать такой параметр, который бы построил просто копию дерева ресурсов от указанного ID? Мне кажется полюбому должна быть такая возможность! А чего он без pdoPage тогда строит так как положено?
Даниил
11 августа 2016, 12:28
0
&sortby и строковое значение может принимать и JSON. Это я проверил, на изменение параметров отзывается в обоих случаях. Естественно я пробовал и просто строковые параметры &sortby=`menuindex`в связке с &sortdir=`ASC`. За столько то времени копания уж что только не перепробовал.

Самое близкое кстати к тому, что надо было &sortby=`{«parent, menuindex»:«ASC»}`, а также &sortby=`{«menuindex»:«ASC»,«isfolder»:«DESC»}`, но все равно криво… В первом случае выравниваются как надо товары, но категории «кудыпопало», во втором случае категории становятся на место, а вот товары упорядочиваются не по индексу относительно категории в которой расположены, а относительно всего каталога.
Даниил
09 августа 2015, 01:23
0
Да, действительно, нашел
Даниил
09 августа 2015, 00:10
0
Скоро выложу готовое решение, которое для меня любезно сделал Воеводский Михаил, за что ему огромная благодарность!
Нужно только разобраться почему у меня в логах появляются ошибки. И насколько это может быть связано с добавленным функционалом.
В ошибках массивы данных примерно следующего характера, что это?
[2015-08-09 00:48:10] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
)

[2015-08-09 00:48:11] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
)

[2015-08-09 00:48:11] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
)

[2015-08-09 00:48:12] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 1
    [properties] => {"distance":1}
)

[2015-08-09 00:48:17] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 1
    [properties] => {"distance":1}
)

[2015-08-09 00:48:17] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 
    [properties] => {"distance":0}
)

[2015-08-09 00:48:19] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 
    [properties] => {"distance":0}
)

[2015-08-09 00:48:22] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 
    [properties] => {"distance":0}
)

[2015-08-09 00:48:23] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 
    [properties] => {"distance":0}
)

[2015-08-09 00:48:23] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 1
    [properties] => {"distance":1}
)

[2015-08-09 00:48:23] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 1
    [properties] => {"distance":1}
)

[2015-08-09 00:48:23] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 11
    [properties] => {"distance":2}
)

[2015-08-09 00:48:30] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 11
    [properties] => {"distance":2}
)

[2015-08-09 00:48:30] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 1
    [properties] => {"distance":1}
)

[2015-08-09 00:48:30] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 1
    [properties] => {"distance":1}
)

[2015-08-09 00:48:30] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 12
    [properties] => {"distance":2}
)

[2015-08-09 00:48:35] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 1
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 12
    [properties] => {"distance":2}
)

[2015-08-09 00:48:35] (ERROR @ /assets/components/minishop2/action.php) Array
(
    [delivery] => 4
    [payment] => 4
    [receiver] => Тест Тестович
    [email] => electropochta@mail.ru
    [properties.distance] => 12
    [properties] => {"distance":2}
)

[2015-08-09 00:49:54] (ERROR @ /connectors/lang.js.php) Error caching action map mgr/actions
Даниил
31 июля 2015, 20:46
0
Можт без авторизации не доходят? Сейчас пришлю запрос на авторизацию.
Даниил
31 июля 2015, 20:29
0
А тебя и стыдно) Ты итак слишком много пользы всем в мире принес! Да не, я надеялся просто что подскажут те люди кто уже осилил дорогу на которой я сейчас и у которых я не отниму больше времени чем на скопировать-вставить код.
Даниил
31 июля 2015, 20:24
0
Ладно, наверное все же стоит перенять опыт от более разбирающихся в этой области людей. Написал Вам в скайп.
Даниил
31 июля 2015, 19:50
0
Было бы от чего оттолкнуться, уже бы разобрался. Вот уже 6-й час ковыряю модкспро и безумкина в поисках хоть чего-то, что помогло бы. Инфы много, но почти везде есть непонятные мне моменты, что приводит в тупик… Плагином пробовал, исходники менять пробовал… А что-то толку нет, не могу процесс понять и осилить, как ловить это значение и как использовать
Даниил
31 июля 2015, 19:14
0
Я бы хотел разобраться сам, а затем выложить во всеобщее пользование способ. Бесплатно и для всех!