Леонид Вакуленко Webasyst +345


Леонид Вакуленко

  • Чисто по-человечески я бы наоборот с ними запартнёрился и дал нормальный АПИ к базе за %. Хоть шерсти клок.

    Технические меры можно придумать всякие. Сделать смарти-тег обфускатор. Оборачиваешь кусок HTML кода в конструкцию {hren_rasparsish} ... {/hren_rasparsish}. На выходе HTML не видно, а видно JS-script

    document.write(eval('МНОГАБУКАФНЕЧИТАЕМОГОКОДАКОТОРЫЙГЕНЕРИТHTML')); // парси наздоровье

    От 2 дней до недели работы программисту сделать такой обфускатор.

    в ответ на защита товара контента от парсинга есть варианты?


  • wa-config/apps/site/domains/<вашдомен>.php

    Удалить строку


    'ssl_all' => true,


    в ответ на HTTPS: Вечная переадресация (ERR_TOO_MANY_REDIRECTS)

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 17:47 #

    Суть: в бекенде через редактор шаблонов можно было сделать много всякого. То есть речь не про витрину, а только про бекенд, но зато ну о-очень много всякого!

    Писать подробный красивый пост про это скорее всего никто не будет. Не потому что нам стыдно (хотя нам стыдно), а потому написать красивый технический пост сложно, пользы мало, а другой работы всегда навалом...

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 16:59 #

    Доступ хакерам закрыт :)

    Мы лишнего позакрывали. Поняли свою ошибку и вернули некоторые (безопасные) функции, которые, как оказалось, используют разработчики тем дизайна.

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 16:13 #

    Изменился список запрещённых функций и модификаторов в шаблонах. В основном это коснулось всякой хакерской эзотерики, но по необходимости затронуло и работу с файлами. Компиляция шаблонов стала ругаться на все файловые операции, кроме filemtime(), is_file(), file_exists(), is_readable(). Полный список того, что запрещено, находится в файле smarty_security.php. Таким этот список и останется, пока кто-нибудь ещё что-то опасное не придумает. Разрешённую сегодня в срочном порядке is_file() обратно запрещать смысла не вижу.

    Вам остаётся только убедиться, что больше ничего другого в ваших темах дизайна не сломалось. Если сломалось, то где возможно исправляйте своими силами, а где нет - дайте мне знать, что-нибудь придумаем.

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 15:22 #

    "Вот вам мой пароль от FTP! Он перестанет работать в понедельник, а до того момента ни в чём себе не отказывайте." :)

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 15:14 #

    Не ругайтесь. Это обновление вышло не просто так. В шаблонах тем дизайна мы запретили использовать функции, связанные с файловыми операциями. Это было сделано после того, как стал известен способ получить таким образом полный доступ к хостингу. Это очень опасная уязвимость, и было принято решение выпустить обновление как можно быстрее.

    Очень плохо получилось, что после этого сломалась сторонняя тема дизайна. Мы не можем проверить всё :( но стараемся как можно быстрее реагировать и исправлять такие проблемы.

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 15:07 #

    Уже должно быть доступно в инсталлере.

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 14:59 #

    Неудачно получилось :(

    Сейчас выпущу 1.7.12, где будет разрешена is_file().

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 14:36 #

    Включите пожалуйста режим отладки и посмотрите, что за ошибка на витрине.

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 14 августа 2017 14:02 #

    Прошу прощения. Только что выкатили новое обновление, которое исправляет инсталлер.

    Чтобы сбросить кеш, можно использовать прямой URL в админке: /webasyst/installer/?module=settings&action=clearCache

    После очистки кеша инсталлер увидит обновление 1.7.10.162.

    Почему упал фронтэнд, пока непонятно. Нужно посмотреть, что за ошибка при включенном режиме отладки.

    в ответ на После обновление Фреймворка 14,08,17 - не входит в настройки Инсталлера

  • Леонид Вакуленко Леонид Вакуленко Webasyst 15 декабря 2016 18:01 #

    Да, это Команда ломает Контакты. Обновите пожалуйста приложение Команда.

    в ответ на после сегодняшнего обновления фраимворка и контактов - контакты сломались

  • Леонид Вакуленко Леонид Вакуленко Webasyst 31 августа 2016 16:12 #

    Нужно больше информации. Посмотрите пожалуйста логи ошибок PHP на сервере.

    в ответ на Сломалась вёрстка карточки товара после обновления Shop-Script до 7.1.5.74

  • Леонид Вакуленко Леонид Вакуленко Webasyst 31 августа 2016 15:25 #

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

    У текущего пользователя админки выбран русский язык интерфейса. фреймворк делает всё возможное, чтобы показать имеющиеся у него строки на русском языке. Для введённого пользователем названия поля (Country или City) есть перевод на русский, и он отображается в интерфейсе. Обычно это хорошо и именно то, что нужно.

    На витрине логика такая же. Строки будут показываться в текущем активном языке. Если вы указали в настройках витрины английский язык, покупатель не увидит русских названий, а увидит английские. То есть всё должно быть хорошо.

    Предлагаю переключить язык админки на английский, если сайт у вас английский. Это настраивается, если кликнуть на имя пользователя в правом верхнем углу, и потом на ссылку "Редактировать" справа сверху в блоке информации о контакте. Там есть поле "Язык".

    в ответ на Не сохранаются Country и City в форме чекаута

  • {$order.create_datetime|wa_date:time}

    в ответ на Как прописать время заказа?

  • Появилась!

    Создайте файл wa-config/apps/contacts/custom_fields.php

    с настройками поля 'name':

    <?php return array(
        new waContactNameField('name', 'Name', array(
            'max_length' => 150, 'storage' => 'info',
            'fconstructor' => 'hidden',
            'required' => true,
            'subfields_order' => array('lastname', 'firstname', 'middlename'),
        )),
    );
    

    Если такой файл уже есть, то в него надо добавить кусок без первой и без последней строки.

    в ответ на Нужна последовательность Фамилия Имя, а не Имя Фамилия

  • Спасибо! В следующем патче магазина исправим генерацию sitemap'а, чтобы плагины его не ломали.

    в ответ на Бага shopSitemapConfig.class.php + seofilter plugin

  • Магазин автоматически не разбивает одну позицию по нескольким складам. Так задумано. К сожалению, связано с техническими ограничениями, которые трудно обойти. Решили, что воротить сложное решение нецелесообразно. Рассуждение такое: для менеджера это в любом случае исключительная ситуация, скорее всего требующая человеческого вмешательства. Либо придётся звонить клиенту и говорить, что заказать 2 позиции не получится, либо разруливать доставку с нескольких складов, что не у всех делается легко.

    Со списанием со складов есть другой баг. Если на первом складе 1, на втором 10, а заказали 2, то с первого склада спишется в минус. Должно списываться со второго. Это исправится в следующем патче.

    в ответ на Не списываются товары со складов в Shop-Script 7

  • Подозрение на один из плагинов, который модифицирует цену товара перед выводом на страницу. Что-то подобное используется?

    в ответ на Правильно отображаются цены в основной валюте!

  • Я вижу на скриншоте, что в разделе "Правила автоматического выбора складов" вы настроили одно правило, которое содержит три условия. Вам же нужно добавить три правила, в каждом из которых будет по одному условию на способ доставки.

    Условия внутри одного правила применяются по принципу "должны выполниться все условия, чтобы правило применилось". Условия на разные способы доставки противоречат друг другу, и правило никогда не применяется.

    Интерфейс редактирования правил получился довольно корявый и неочевидный =(
    Постараемся доработать в будущих версиях, чтобы не сбивать людей с толку.

    в ответ на Не списываются товары со складов в Shop-Script 7

  • Я бы очень хотел вам помочь. Правда. Я изучил этот баг вдоль и поперёк, и у меня нет никаких идей, что происходит и почему. Имеет место какой-то хитрый сбой файловой системы хостинга, который ни на наших серверах не воспроизводится, ни у клиентов мы его поймать не можем.

    В какой-то момент магазин на секунду теряет все свои настройки и решает, что надо показать юзеру экран "Добро пожаловать". Если менеджер просто обновит страницу, то всё вернётся как было. Но интуитивное человеческое желание - нажать зелёную кнопку "Начать работу". Кнопка сбрасывает некоторые настройки магазина, включая валюты.

    Лучшее, что я сейчас могу сделать - это убрать сброс настроек валют после нажатия этой кнопки на экране "Добро пожаловать". Начиная с версии магазина 7.0.4 курс существующих валют там сбрасываться не будет.

    Лучшее, что вы сейчас можете сделать - это проинструктировать менеджеров не нажимать на кнопку "Начать работу" на экране "Добро пожаловать".

    в ответ на Слетают курсы валют в Умолчание

  • Ничего не знаю про внутренности waHtmlControl, к сожалению :( я даже не сразу понял, о чём речь.

    Знаю, что что-то связанное с групбоксом исправлено и готовится к выгрузке в следующем патче. Оно это или не оно, не могу сказать.

    в ответ на Ошибка в waRequestFile

  • Ага, раскопал. Спасибо. Начиная со следующей версии фреймворка оно крэшиться больше не должно. Правда, waRequest::file() всё равно не поддерживает многоуровневые структуры by design. Файл просто не придёт в плагин в таком случае.

    в ответ на Ошибка в waRequestFile

  • А как происходит инициализация waRequestFile? Или параметр конструктора, или что вы передаёте в waRequest::file().

    И если не сложно, покажите пожалуйста, какая у вас получается структура $_FILES в таком многомерном случае.

    в ответ на Ошибка в waRequestFile

  • Если (для товара с рейтингом 4.3-4.7) в HTML'е на последней звёздочке есть класс star-half, то всё сгенерилось правильно, и надо копать в стилях. Если star-empty, то что-то не так с генерацией звёздочек.

    в ответ на Прошу помощи. У многих товаров не подсчитывается рейтинг.

  • Должен показывать с половинками. У меня 4.3 - это уже четыре с половиной звёздочки, а 4.8 - уже 5 полных. Как в вашей теме дизайна выводится этот рейтинг? Шаблон product.html. В стандартной теме default оно выглядит вот так:

            {if !empty($product.rating) && $product.rating > 0}
                <span class="rating nowrap" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" title="{sprintf('[`Average user rating: %s / 5`]', $product.rating)}">
                    {$wa->shop->ratingHtml($product.rating, 16)}
                    <span itemprop="ratingValue" style="display: none;">{$product.rating}</span>
                    <span itemprop="reviewCount" style="display: none;">{$reviews_total_count}</span>
                </span>
            {/if}
    

    Часть, которая выводит звёздочки с половинками - это {$wa->shop->ratingHtml($product.rating, 16)}

    в ответ на Прошу помощи. У многих товаров не подсчитывается рейтинг.

  • Надо обновить shop_product.rating и shop_product.rating_count. Вот такой запрос их пересчитает:

    UPDATE shop_product AS p
        JOIN (
            SELECT product_id,
                SUM(rate) AS total_rating, COUNT(id) AS rating_count
            FROM `shop_product_reviews`
            WHERE review_id = 0
                AND rate IS NOT NULL
                AND status != 'deleted'
            GROUP BY product_id
        ) AS r ON p.id=r.product_id
    SET p.rating_count = r.rating_count,
        p.rating = r.total_rating / r.rating_count

    в ответ на Прошу помощи. У многих товаров не подсчитывается рейтинг.

  • Выполнить SQL:

    DELETE cp
    FROM shop_category_products AS cp
        LEFT JOIN shop_product AS p
            ON cp.product_id=p.id
    WHERE p.id IS NULL

    Это удалит оставшиеся мусорные строки из shop_category_products, для которых больше нет соответствующего товара.

    И потом ещё такой:

    UPDATE shop_category AS c
        JOIN (
            SELECT c.id, c.count, count(cp.product_id) AS cnt
            FROM shop_category c
                LEFT JOIN `shop_category_products` AS cp
                    ON cp.category_id = c.id
            WHERE c.type = 0
            GROUP BY c.id
            HAVING c.count != cnt
        ) AS r ON c.id = r.id
    SET c.count = r.cnt

    Это обновит счётчики в таблице shop_category.

    в ответ на Обновить количество товаров в админке