Аааа. Понял. У Вас сверстанная по сетке тема оформления. Поэтому форму обратной связи можно добавить через Веб-сайт->Конструктор сайта.
Просто добавив в нужную секцию блок. И там выбрать формы обратной связи.
У вас уже есть одна. Можно её использовать, а можно добавить свою форму в Разное -> Формы->Конструктор форм.
Справа сама форма, слева поля для этой формы.

Дам старенькую ссылку http://www.topexpert.pro/1.html

Интересная ссылка. А насколько старая там информация?

Нет. Меня интересует шаблон у Вас какой? (Веб-сайт->Настройка сайта). У нас просто есть по сетке и не по сетке. Там разные методы добавления.

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

Вам для какой темы оформления?

это id маршрута. У нас используется система маршрутов. Т.е. по маршрутам запрашивается определённый блок. Или фронт контроллер.
Маршруты в ReadyScript

shop-block-cart = /modules/shop/contoller/block/cart.inc.php

Вы же когда ссылку на купить товар подставляете у Вас используется

{$router->getUrl('shop-front-cartpage', ["add" => $product.id])}

shop-front-cartpage = /modules/shop/controller/front/cartpage.inc.php
Просто для фронт контроллер есть свои псевдонимы, иначе бы в ссылке оказалось бы shop-front-cartpage

Вам надо запросить блок контроллер корзины Аяксом, система поймёт, что это аякс и ответит содержимым блок контроллера, он сгенерирует html и ответит json ответом, где будет как раз тот html.

Как запросить данный блок контроллер?

url на блок контроллер корзины будет такой:

{$router->getUrl('shop-block-cart')}

Соответственно его надо записать в шаблоне. Я предлагаю записать его в атрибут data-url у оборачивающего контейнера Вашего блока с краткой корзиной. Например:

<div id="cartBlockWrapper" data-url="{$router->getUrl('shop-block-cart')}">
...
</div>

Вот из этого дива можно будет потом взять значение из data-url
За отправку запроса на добавление товара отвечает скрипт с именем common.js. Как только запрос с добавлением корзины будет успешно выполнен, Вам надо будет отослать запрос на получение корзины.
Самая последняя функция которая срабатывает в данном скрипте это updateCartBlock. Она как раз ловит ответ от корзны с краткими сведениями. Вот в конце неё надо будет Вам вызвать этот ajax запрос. Адрес можно взять из оборачивающего контейнера, для приведённого нашего случаю это будет так:

var url = $("#cartBlockWrapper").data('url'); 

Отработать его и заменить содержимое оборачивающего контейнера блока корзины Вашей (cartBlockWrapper как оговаривалось выше).
Для того, чтобы увидеть, что приходит от сервера воспользуйтесь командой console.log(); и панелью консоли в FireFox например.

Sergey T. пишет:

Теперь все работает как надо! Благодарю за помощь!

Не за что! smile

Все текстовые данные перед сохранием проходят через htmlspecialchars(экранируются). А это значит, что Вам надо вызвать htmlspecialchars_decode, чтобы разэкранировать для того, чтобы текст превратился в HTML.
Т.е.:

{$product.is_root|htmlspecialchars_decode}

или

{htmlspecialchars_decode($product.is_root)}

Как Вам приятнее.

Sergey T. пишет:

Так и сделал! Обновил таблицы БД, сбросил КЭШ и все ЗАРАБОТАЛО! СПАСИБО! Тема раскрыта и закрыта! smile

Отлично! smile Если возникнут вопросы не стесняемся задавать.

Кстати is_root это просто английское наименование поля в таблице БД из примера. Замените лучше на более приемлемое, для Вашей задачи.
И обновите БД и в товар запишите значение для этого поля.

Надо скорее всего обновить таблицы БД, чтобы длинна 100 символов применилась.

Вы

 'maxLength' => 100

давно поставили?
Может просто, не обновили поле и там осталась длинна 1 символ?
Если да просто обновите таблицы базы данных, кнопкой, как раньше делали.
И в админке у Вас "п" в поле остаётся?

Sergey T. пишет:

1. У них те позиции в фильтрах, которых нет становятся бледно серыми http://e96.ru/sporting_goods/cycle_racing/velosipedy. Если выбрать марку велосипедов Stinger и долистать до фильтра "Цвет", то некоторые из них будут бледные, показывающие то, что товара этой расцветки нет в наличии.
2. Не было в планах реализовать отображение фильтров на лету, как например здесь http://technopoint.ru/catalog/2152/smar … amp;t=1084 Это бы порядочно упростило для пользователя поиск нужного товара.


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

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

Всё абсолютно правильно у Вас.
Вы сначала отфильтровали по одному параметру, потом уточнили запрос по другому параметру. Желтых волейбольных кроссовок у Вас нет. А синие есть и если их выбрать, то Всё будет. Это абсолютно нормально можете посмотреть на e96.ru.
Подгрузки сведений о возможных фильтрах "на зоду" у нас в данном блок контроллере нет.

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

Всё понятно. Вы не обратили внимание на namespace. А именно:

<?php
namespace Custom\Config;

А namespace должен соответствовать Вашей папке sizes:

<?php
namespace Sizes\Config;

т.к. custom это имя папки модуля который у Вас уже присутствует и там как раз такой namespace в той папке. Система проверяет папки и namespace, если не совпадает, то модуль не может быть установлен. Т.к. система обращается в классу как \Sizes\Config\File.

Что касается файла file.inc.php Мы изменили положение в создании модулей. Сейчас все сведения о модулях хранятся не в функции  getDefaultValues(), а в файле module.xml. Поэтому функцию getDefaultValues можете из класса удалить.

После того как везде поменяете namespace, надо установить модуль и проделать приведённые манипуляции.

Sergey T. пишет:

Что-то не выходит. Не добавляется поле в админке в карточке товара. Что сделал:
1. Создал папку sizes в папке modules
2. Создал папку config в папке sizes, в ней два файла file.inc.php и handlers.inc.php
3. Добавил в них содержимое из того поста, который вы указали
4. Зашел в настройки системы и "исправил структуру БД"

После этих действий в карточке товара на вкладке "основные" ничего не изменилось. Видимо что-то сделал не так.

А вы сам модуль то Ваш установили(Веб-сайт->Настройка модулей)? Без этого не попрёт, т.е. хуки у не установленых модулей не работают. И киньте листинг файлов пожалуйста.
P.S. Если в Веб-сайт->Настройка модулей модуль не присутствует, то сбросьте кэш и обновите страницу.

Ну как там успехи? Есть продвижения?

Вопрос:
Как сделать несколько меню на сайте ReadyScript?

Ответ:
Все меню храняться в админ панели в Веб-сайт->Меню. Соотвественно там и нужно создавать все меню. Когда на сайте одно меню это понятно, но гораздо чаще встречается ситуация когда нужно сделать несколько меню. Например верхнее и нижнее меню.

Меню в ReadyScript выводится при помощи блок контроллера меню (\Menu\Controller\Block\Menu) у которого есть параметр "корень", т.е. откуда начинать строить меню.

Что должно быть корнем? Корнем может быть любой пункт меню. Я предлагаю просто снимать галочку публичности у него и ставить галочку напротив "Не учитывать в хлебных крошках" при редактировании пункта меню.
Т.е. мы просто создаёт два корневых пункта меню "Верхнее меню" и "Нижнее меню". После чего последующие пункты меню создаём и указываем в качестве родите либо нижнее меню, либо верхнее.
В блок контроллере меню, которое можно создать в конструкторе сайта или прописать его в шаблоне, в настройках модуля нужно указать в качестве корневого элемента для построения нужное нам уже созданное меню.
После чего не забыть сбросить кэш.

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

Вопрос:
При генерации страниц образуются лишние переносы строк в html.
Как убрать лишние переносы строк в шаблонах ReadyScript?

Ответ:
Шаблоны построены на smarty, а это значит, что Вы можете использовать конструкцию {strip} просто обернув её код в шаблоне.
Например так:

{strip}
<ul>
  
   <li>Первая строка</li>
   <li>Вторая строка</li>
 
</ul>
{/strip}

Она уберёт лишние пустые пространства на выходе в готовом html, а коде шаблонов можно сохранить форматирование так, как Вам необходимо.

Бутаков пишет:

Самый просто и быстрый способ, через "Характеристики" товара.

Тоже хорошо, только доставать не удобно)
Плюс лишний запрос, хотя если в карточке товара, то нет

Весь вопрос почти полностью мной был раскрыт в этой теме:
Как добавить поле товару или любому другому объекту в ReadyScript?
Пробуйте

Обращение к полю можно сделать так:

{$product.вашеполевпсевдонимеколонки}

//Например
{$product.yourfield}

Отлично. Мы тоже ждём!)