Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
12:11
22 сен
#
написал:

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

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

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

12:11
22 сен
#
написал:

Шаблон PayServer

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

В одном случае сервер мог бы по желанию администратора работать исключительно на базе тех товаров, что определил администратор. То есть невозможно заказать то, чего нет в каталоге. В другом случае - чтобы работал и так, что при включении определенной настройки сайта тогда по ссылке с внешнего портала можно было заказать и оплатить абстрактный товар, скажем "кубометр воздуха", какого вообще нет в базе данных сервера. Разумеется, в последнем случае важно, чтобы сервер мог распознать подделку запроса и отклонил ее, а кроме того чтобы имел настройку, где можно указать перечень партнерских сайтов / страниц соцсетей, с которыми этот сервер работает.

Для этих целей создан клиентский шаблон PayServer с минимально необходимым набором страниц:

  • главная
    • статическая страница "Как это работает" (опционально)
  • страница оформленного заказа / оплаты
    • страница "Создать заказ" прямо на сайте сервера (опционально)
    • форма "Создать заказ" для интеграции в страницы внешних сайтов (опционально)
    • кнопка "Покупаю это" для интеграции в страницы внешних сайтов (опционально)
  • обратная связь
  • перезвоните мне (опционально)

Шаблон входит в поставку новых версий движка и бесплатен для его пользователей. Скорее всего будет разработан и админский шаблон, в каком есть минимум страниц:

  • список товаров (опционально)
  • список заказов
  • способы оплаты
  • обратная связь
  • перезвоните мне (опционально)
  • настройки sms-шлюзов
  • настройки сайта (только касающиеся платежного сервера)
12:11
22 сен
#
написал:

Глобальные шаблонные функции

Некоторый набор универсальных и часто используемых в шаблонах функций вынесен в отдельный внутренний модуль objects/.any-models/SmartyTags.php, чтобы функции были постоянно доступны и не требовалось каждый раз писать их в хелпере шаблона. Это позволяет значительно упростить код шаблона. Список функций (со временем будет пополняться):

  • site - вывести url корневой папки магазина
  • theme - вывести url папки текущего клиентского шаблона
  • messageBox - вывести информационное сообщение
  • inputName - вывести имя поля ввода
  • inputValue - вывести значение переменной для поля ввода
  • url - вывести URL страницы конкретной записи
  • cartUrl - вывести URL страницы корзины для добавления / удаления конкретного варианта товара
  • sign - вывести знак текущей валюты
  • discountPrice - вывести цену указанного варианта товара
  • searchHistory - получить список записей истории поиска
  • randomId - вывести случайный идентификатор
  • header301 - отправить заголовок 301 (редирект на другую страницу)
  • header403 - отправить заголовок 403 (доступ запрещен)
  • header404 - отправить заголовок 404 (страница не найдена)
  • header410 - отправить заголовок 410 (страница удалена)
  • переменная $helper и ее методы:
    • currencyRate - получить множитель для перевода цен из базовой валюты в текущую валюту
    • priceForScreen - получить указанную цену в печатном виде #.## для показа на странице
    • hasDiscount - получить булевой признак, что вариант товара имеет действующую различимую скидку

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

12:11
22 сен
#
написал:

Обратная связь

+ Модуль Feedback клиентской стороны дополнен следующими настройками:

  • включение / отключение капчи
  • антиспамный контроллер повторных постов, по умолчанию ограничен 3 минутами, можно менять
    • то есть после успешно принятой формы клиент не может запостить следующую форму, пока не истечет определенное время
  • включение / отключение емейл-уведомления администратору
  • включение / отключение sms-уведомления администратору
  • включение / отключение емейл-уведомления клиенту (если в форме ввода указал свой емейл)
    • если не указал емейл, но это авторизованный клиент с прописанным емейлом 1 или емейлом 2, емейл берется оттуда, что позволяет доставить уведомление, даже если клиент поленился заполнить в форме
  • включение / отключение sms-уведомления клиенту (если в форме ввода указал свой телефон)
    • если не указал телефон, но это авторизованный клиент с прописанным телефоном 1 или телефоном 2, номер берется оттуда, что позволяет доставить уведомление, даже если клиент поленился заполнить в форме


+ Модуль поддерживает переопределение следующих элементов (пока прямо в коде, то есть еще не вынесено в настройки):

  • список полей формы с произвольным указанием обязательности, например
    • имя *
    • емейл *
    • департамент магазина
    • тема сообщения
    • сообщение *
  • тексты интерактивных информационных сообщений
  • с какой моделью таблицы базы данных работает модуль


+ Файл модуля перенесен в свою папку, где логично должен был быть с самого начала:

  • objects/feedback/Feedback.php
    • информация для программистов доработок: также создана базовая модель objects/.ref-models/Feedback.php, от которой теперь легко порождать модули, требующие от клиента какой-либо ввод произвольных данных, например таким образом реализован модуль CallMe, где просто переопределен список полей формы, тексты некоторых информационных сообщений и с какой таблицей базы данных он работает


+ Модуль предоставляет в шаблон следующие уточняющие переменные для улучшения интерактивности:

  • $fields - список всех полей формы, обслуживаемых модулем в этой странице
  • $bad_fields - список имен полей с допущенными ошибками

    например в шаблоне PayServer с помощью шаблонной функции inputName задействована обработка этой переменной, благодаря чему тексты ошибок выводятся возле своих полей


+ Шаблоны уведомлений перенесены в следующее место клиентского шаблона и файлы названы иначе (при отсутствии ищутся в таких же местах текущего админского шаблона):

  • ваш_шаблон/html/email/feedback-to-admin.htm - емейл уведомление админу о новом сообщении в обратной связи
  • ваш_шаблон/html/email/feedback-to-user.htm - емейл уведомление клиенту о принятом сообщении

  • ваш_шаблон/html/sms/feedback-to-admin.htm - sms уведомление админу о новом сообщении
  • ваш_шаблон/html/sms/feedback-to-user.htm - sms уведомление клиенту о принятом сообщении

Исправление несовместимости в старых шаблонах

Чтобы исправить старый шаблон, нужно найти в нем файл feedback.tpl, найти в нем тело формы и исправить следующее:

  • блок капчи заключить в условие {if empty($settings->lfeedback_captcha_disabled)}
  • добавить инпут <input name="copystop" type="hidden" value="{$copystop}" />

Пример шаблонов писем и SMS

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


Файл email/feedback-to-admin.htm - емейл админу:

{* <!-- ===========================================================================
    Использует переменные движка:                                                 |
        $admin_folder = имя папки админпанели                                     |
    Использует переменные модуля:                                                 |
        $post = запись о сообщении:                                               |
                    ->department = кому (отдел магазина)                          |
                    ->subject = тема сообщения                                    |
                    ->name = имя писавшего                                        |
                    ->phone = телефон писавшего                                   |
                    ->email = емейл писавшего                                     |
                    ->message = текст сообщения                                   |
                    ->ip = IP-адрес писавшего                                     |
                    ->host = хост писавшего                                       |
        $post_object = запись об авторизованном пользователе, если запрашивал он  |
    Использует глобальные шаблонные функции:                                      |
        site = вывести url корневой папки магазина                                |
============================================================================ --> *}{strip}

    {if !empty($post)}
        <p>
            {$post->name|default:'Пользователь'} написал

            {if !empty($post->department)} в отдел "{$post->department}"{/if}
            {if !empty($post->subject)} по теме "{$post->subject}"{/if}.
        </p>

        {if !empty($post->message)}
            <p><b>Сообщение:</b><br />{$post->message|nl2br}</p>
        {/if}

        {* <!-- полезно знать, с какого ip постили --> *}
        {if !empty($post->ip)}
            <p>
                <b>Адрес в сети:</b><br />
                Ip: {$post->ip}
                {if !empty($post->host)}<br />Хост: {$post->host}{/if}
            </p>
        {/if}

        <p><a href="{site}{$admin_folder}?section=Feedback">Перейти в админпанель</a></p>
    {/if}
{/strip}

Файл email/feedback-to-user.htm - емейл клиенту:

{* <!-- ===========================================================================
    Использует переменные модуля:                                                 |
        $post = запись о сообщении                                                |
    Использует глобальные шаблонные функции:                                      |
        site = вывести url корневой папки магазина                                |
============================================================================ --> *}{strip}

    {if !empty($post)}
        Спасибо! Ваше сообщение в обратную связь принято на сайте {site}
    {/if}
{/strip}


Файл sms/feedback-to-admin.htm - sms админу:

{* <!-- ===========================================================================
    Использует переменные модуля:                                                 |
        $post = запись о сообщении:                                               |
                    ->department = кому (отдел магазина)                          |
                    ->subject = тема сообщения                                    |
                    ->name = имя писавшего                                        |
                    ->phone = телефон писавшего                                   |
                    ->email = емейл писавшего                                     |
                    ->message = текст сообщения                                   |
                    ->ip = IP-адрес писавшего                                     |
                    ->host = хост писавшего                                       |
        $post_object = запись об авторизованном пользователе, если запрашивал он  |
    Использует глобальные шаблонные функции:                                      |
        site = вывести url корневой папки магазина                                |
============================================================================ --> *}{strip}

    {if !empty($post)}
        {$post->name|default:'Пользователь'|truncate:64:'...':true} написал

        {if !empty($post->department)} в отдел "{$post->department|truncate:64:'...':true}"{/if}
        {if !empty($post->subject)} по теме "{$post->subject|truncate:64:'...':true}"{/if}.

        {if !empty($post->message)} Сообщение: {$post->message|truncate:128:'...':true}{/if}

        {* <!-- полезно знать, с какого ip постили --> *}
        {if !empty($post->ip)} Ip: {$post->ip|truncate:32:'...':true}
            {if !empty($post->host)} Хост: {$post->host|truncate:64:'...':true}{/if}
        {/if}
    {/if}
{/strip}

Файл sms/feedback-to-user.htm - sms клиенту:

{* <!-- ===========================================================================
    Использует переменные модуля:                                                 |
        $post = запись о сообщении                                                |
    Использует глобальные шаблонные функции:                                      |
        site = вывести url корневой папки магазина                                |
============================================================================ --> *}{strip}

    {if !empty($post)}
        Спасибо! Ваше сообщение в обратную связь принято на сайте {site}
    {/if}
{/strip}
00:59
07 ноя
#
?
написал:

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

админка

  • разное -> Поисковое сопровождение (белая страница)
  • клиенты -> Скидочные купоны (белая страница)
  • заказы -> Любые заказы (белая страница)
  • дизайн -> Дизайны сайта (нет картинки у Minimalist)

Другие похоже работают. Плотно не проверял правда, так только на глубину пары кликов.

фронтенд

  • категории (все показывают каталог с начала)

P.S. Вот теперь ваша Импера по настоящему летает на фронтенде. Раньше страницы категорий тормозили. Сейчас щелк и тут же открывается. Обалдеть. Когда можно скачать и заюзать у себя? Жду очень.

Админка похоже не ускорилась. Или мне так показалось. Слышал вы упор дали на фронтенд, админку вроде собирались подтянуть позже. Надо также быстрой сделать как фронтенд.

Поиск понравился, запоминает последний результат. Очень удобно. А скорость ну просто на высоте.

03:21
10 ноя
#
?
15240 написал:

Свернуто за обсуждение не по теме.   Развернуть

Ох[цензура]ть как вы зае[цензура]ли...

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

Давай, х[цензура]й, проверь, тамь не то шо на паре кликов. Но, тем не менее, престашоп - ху[цензура]ый. Бл[цензура]дь, я зае[цензура]лся рассказывать этим еб[цензура]ным турыстам а том как твоя ымпера победит всех.

От разработчика: Что вас так заклинило-то на престашопе? Вы им сыпите тут по всему форуму. Родовая травма что-ли? Пойдите полечитесь.
22:14
10 ноя
#
написал:
Бомбардир написал: админку вроде собирались подтянуть позже. Надо также быстрой сделать как фронтенд

И клиентскую сторону еще подтяну, ресурс есть, это она ускорилась процентов на 30. Дальше будет лучше. И админскую сторону тоже подтяну. Импера станет не только мощнейшим по наворотам движком, но и одним из самых быстрых. Дайте время.

Пока же несколько ссылок в тему:

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


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