Хм. Вы не совсем корректно проводите сравнение.
По сути вы сравниваете не время ответа сервера (т.е. исполнения PHP кода, работы движка), а скорость загрузки всех ресурсов темы оформления. Т.е. вы сравниваете темы оформления.

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

А вот насчет времени ответа сервера, несмотря на то, что главная страница opencart содержит меньше блоков, она значительно дольше отдается сервером. Скриншоты:

https://www.dropbox.com/s/cdndjedm9qxowbg/rs_speed.jpg?dl=1
https://www.dropbox.com/s/rvexgncxm591co3/opencart_speed.jpg?dl=1

Что касается вашего вопроса по оптимизации - мы ею занимаемся постоянно, в следующем обновлении, например, будет немного улучшено время ответа страницы со списком товаров, за счет оптимизации некоторых участков кода API товаров.

P.S. На ваших скриншотах видно, что по первому показателю PageSpeed Score - у нас оценка выше, по второму YSlow Score - у темы Opencart немного выше, но обе оценки - если внимательно почитать сервис - выше средних, т.е. очень хорошие.

Добрый день!

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

1. Чтобы перегрузить шаблоны, находящиеся в папке /template/system/, нужно создать папку /template/mysystem/ и повторить в ней полный путь к изменяемому файлу. Например, если хотите изменить файл:

/template/system/admin/body.tpl - нужно скопировать его в
/template/mysystem/admin/body.tpl - и его уже править

2. Вам не нужно изменять системные CSS, добавляйте в перегруженные вами шаблоны новую инструкцию по подключению CSS - {addcss file="my_new_css.css" basepath="common"}. В подключенном файле вы уже можете перегрузить системные инструкции CSS. Или перегружайте TPL файлы, где подключаются CSS файлы и изменяйте в них имя подключаемых CSS файлов

Например, эта конструкция в TPL шаблоне: {addcss file="my_style.css" basepath="common"}
подключит файл /resource/css/my_style.css

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

3. Есть сложный способ, не буду его описывать (это можно реализовать из доп. модуля с помощью многих действий)
Пожалуй, вам проще создать .my.inc.php для класса RS\Html\Filter\Type\Text

И просто перегрузить в нем конструктор

В итоге получится: /core/rs/html/filter/type/text.my.inc.php

<?php
namespace RS\Html\Filter\Type;

class Text extends AbstractType
{
    public 
        $tpl = 'system/admin/html_elements/filter/type/string.tpl';
        
    protected
        $search_type = 'eq';

    function __construct($key, $title, $options = array())
    {
        parent::__construct($key, $title, $options);
        $this->type_array = array(3 => t('равно'), 1 => t('меньше, чем'), '2' => t('больше, чем'));
    }

}

Попробуйте провести тендер на нашем сайте https://readyscript.ru/partners/tender/

Попробуйте биндиться на событие изменения товара orm.beforewrite.catalog-product
Там в поле excost будут все сведения о цене.

excost (extended Xcost) - это массив с данными по ценам товара

public static function ormBeforewriteCatalogProduct($params, $event)
    {     
          $product = $params['orm']; 
          var_dump($product['excost']);
    }

Вы можете в шаблон view_article.tpl вставить блок с выводом последних новостей из той же категории, что и просматриваемая статья:
{moduleinsert name="\Article\Controller\Block\LastNews" category=$article.parent pageSize=3}

Но логика данного блока не предусматривает исключение какой-либо статьи, поэтому вы можете разработать свой блок контроллер с логикой выборки статей, необходимой для вашего случая. За основу можете взять \Article\Controller\Block\LastNews

556

(15 ответов, оставленных в Вопросы по работе с системой)

Здесь не никакой ошибки в логике:
1. Если у вас заведен вручную краткий текст, то выводится именно он без обрезки.
2. Если краткий текст не заведен, то выводится обрезанный полный текст.

Если вы хотите всегда обрезать текст, то вам необходимо воспользоваться модификаторами Smarty:
{$item->getPreview()|truncate:"50"}

http://www.smarty.net/docsv2/ru/languag … uncate.tpl

Вы можете вставить проверку, подвесившись на событие orm.delete.shop-order

Остановить удаление можно в обработчике события примерно так:

<?php
namespace Modulename\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('orm.delete.shop-order');
    }
    
    public static function ormDeleteShopOrder($param, \RS\Event\Event $event) {
        $current_user = \RS\Application\Auth::getCurrentUser();
        
        if (!in_array('supervisor', $current_user->getUserGroups())) {
            //Если пользователь не состоит в группе supervisor
            $event->stopPropagation();
        }
    }
}

558

(1 ответов, оставленных в Сайт ReadyScript)

Спасибо! статью поправили.

При комментировании, вы можете отключить отображение комментария на вашей странице,
нажав на иконку ВК возле кнопки "отправить".

Можете сделать пункта меню "Оплата" с типом "Страница", затем в разделе Веб-сайт->Конструктор сайта добавить страницу "Меню -> Оплата" и визуально разместить блок "Форма обратной связи" или назначить шаблон странице, где разместить {moduleinsert name="\Feedback\Controller\Block\Feedback" form_id=Здесь ID формы}, если ваша тема собрана не по сетке.

Здесь дело не в качестве пережатия изображений.
Погуглите на тему Retina Optimization.  Все дело в DPI мобильного.

Для таких экранов нужно изображения готовить в 2х или даже 3х кратном размере,
а затем масштабировать их за счет CSS. Это значительно пойдет в ущерб объему страницы (страницы будут тяжелыми).
Но все это возможно сделать на ReadyScript, просто в вашей теме оформления нужно запрашивать изображения большего размера, а в CSS или у тега img выставлять принудительно меньший размер.

не повториться, поправили ошибку в коде.

Извините за ожидание. Исправлено. Проверьте пожалуйста.

563

(5 ответов, оставленных в Форум ReadyScript)

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

Есть решение у нас в Marketplace - http://marketplace.readyscript.ru/addon … angeprice/

Добрый день!
Разбираемся в ситуации. Ошибка будет исправлена в ближайшие минуты.

Уточните, пожалуйста, у вас Гость имеет права на доступ к пользовательским пунктам меню?
Можно посмотреть в разделе Управление->Пользователи->Группы.

Вы нашли наиболее правильный вариант.

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

Ошибка исправлена в сегодняшнем обновлении. Обновитесь, пожалуйста.

Хорошо, проверим этот момент, видимо ваш почтовый клиент неверно парсит ссылки.
Если вы в браузере вставите строку "//forum.readyscript.ru/post/3218/#p3218", она успешно откроется по протоколу http по умолчанию.

Сергей, напишите, пожалуйста, в поддержку насчет ссылок.

На всех ресурсах ReadyScript недавно была добавлена поддержка https. (пока в необязательном режиме)

т.е. пользователь может переходить как на http://forum.readyscript.ru, так и на https://forum.readyscript.ru,
поэтому все ссылки на форуме теперь без уточнения протокола. ( Это допустимая запись )

Я понял вашу точку зрения.

Полностью кросс-устройственной у нас будет функция Избранное (в будущих версиях), именно эта функция позволит добавив товар на одном устройстве видеть его на всех других устройствах абсолютно всегда. А уже с избранного всегда можно будет перенести товар в локальную корзину.

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

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

Безусловно, вы можете в своем проекте поправить логику, как это вам нужно.
Выборка элементов корзины по session_id - есть только в классе \Shop\Model\Orm\Cart
Логика действий при авторизации есть только в \Shop\Config\Handlers::authUser

Под одним и тем же логином заходят разные менеджеры и перехватывают друг у друга корзины.

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

Так как привязка товаров идет к session_id, то безусловно в вашем случае товары будут привязываться либо к одному пользователю, либо к другому, если они оба сидят за разными компьютерами под одной учетной записью. (так как у менеджеров будет разный session_id и общий user_id)

На нашем сайте добавлен раздел с видеоуроками по платформе ReadyScript для администраторов и разработчиков! http://readyscript.ru/video/

Уточните, подробнее, как организованы у вас совместные закупки.

Я не совсем понял:
- Это несколько разных пользователей должны оформить как-то один большой заказ
или есть какой-то организатор, который постоянно расширяет какой-то свой общий большой заказ?