Каждый готовый шаблон или самописный проблему адаптивного меню решает по-своему. Кто то делает 2 разных меню, а кто-то использует 1 меню и меняет ему версту в зависимости от разрешения.
226 10.04.2019 22:48:56
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
227 10.04.2019 13:37:04
Re: Дубль меню (4 ответов, оставленных в Вопросы по созданию тем оформления)
Если делаете верстку без конструктора, то в соответствующих местах делаете вставку moduleinsert с дополнительным параметром indexTemplate, где указан уже другой шаблон, и root - идентификатор корневого пункта меню.
{moduleinsert name="\Menu\Controller\Block\Menu" indexTemplate='blocks/menu/foot_menu.tpl' root='0'}
templates\fashion - тут тема полностью так построена, можно подглядывать.
228 10.04.2019 13:30:48
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
Можно 2 циклами вывести. 1 меню для обычного отображения, 2 меню для мобильных. Но я не знаю на основе какого шаблона делаете меню, может достаточно 1 цикла
229 09.04.2019 21:09:48
Re: Добавление фильтров к категории (6 ответов, оставленных в Вопросы по работе с системой)
230 09.04.2019 20:02:18
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
Верно вот так
{moduleinsert name="\Catalog\Controller\Block\BrandList"}
Просто в папке \Catalog\Controller\Block смотрите какие есть контроллеры блоков.
231 09.04.2019 17:34:19
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
Чтобы посмотреть, какие поля есть у объекта, имея только блокнот (опускаю использование IDE)
Смотрим сам объект \modules\banners\model\orm\banner.inc.php :
......
function _init()
{
parent::_init()->append(array(
'site_id' => new Type\CurrentSite(),
'title' => new Type\Varchar(array(
'description' => t('Название баннера')
)),
'file' => new Type\File(array(
'description' => t('Баннер'),
'storage' => array(\Setup::$ROOT, \Setup::$FOLDER . static::$src_folder),
'template' => '%banners%/form/banner/file.tpl'
)),
'use_original_file' => new Type\Integer(array(
'description' => t('Использовать оригинал файла для вставки'),
'checkboxView' => array(1, 0)
)),
'link' => new Type\Varchar(array(
'description' => t('Ссылка')
)),
'targetblank' => new Type\Integer(array(
'description' => t('Открывать ссылку в новом окне'),
'checkboxView' => array(1, 0)
)),
'info' => new Type\Text(array(
'description' => t('Дополнительная информация')
)),
'public' => new Type\Integer(array(
'maxLength' => 1,
'description' => t('Публичный'),
'checkboxView' => array(1, 0)
)),
'xzone' => new Type\ArrayList(array(
'description' => t('Связанные зоны (удерживая CTRL можно выбирать несколько зон)'),
'list' => array(array('\Banners\Model\ZoneApi', 'staticAdminSelectList')),
'attr' => array(array(
'size' => 10,
'multiple' => 'multiple'
))
)),
'weight' => new Type\Integer(array(
'description' => t('Вес от 1 до 100'),
'default' => 100,
'hint' => t('Чем больше вес, тем больше вероятность того, что баннер будет показан в случае конкуренции')
)),
t('Расписание'),
'use_schedule' => new Type\Varchar(array(
'description' => t('Использовать показ по расписанию?'),
'checkboxview' => array(1, 0),
'default' => 0,
'checker' => array(array('\Banners\Model\Orm\Banner', 'staticUseScheduleCheck')),
'template' => '%banners%/form/banner/use_schedule.tpl'
)),
'date_start' => new Type\Datetime(array(
'description' => t('Дата начала показа'),
'visible' => false,
)),
'date_end' => new Type\Datetime(array(
'description' => t('Дата окончания показа'),
'visible' => false,
))
));
}
Соответственно,
{if $banner.info}
выведет дополнительную информацию. И да, можно в это поле и html вставлять. Возможно надо обработать функцией html_entity_decode
{$banner.info|html_entity_decode}
232 09.04.2019 15:30:40
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
Если не нужен, удалите. 5 раз он не подключится
233 09.04.2019 14:47:22
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
в блок передаются данные из контроллера блока.
Т.е после вызова moduleinsert и передачи ему различных параметров, контроллер передает в шаблон tpl переменные шаблона. В исходнике slider.tpl из папки view самого модуля banners видно какие переменные передаются.
{addjs file="{$mod_js}jquery.photoslider.js" basepath="root"}
{if $zone}
{assign var=banners value=$zone->getBanners()}
<div class="bannerSlider">
<ul class="banners">
{foreach from=$banners item=banner}
<li class="item {if $banner@first} act{/if}" {$banner->getDebugAttributes()}>
<a {if $banner.link}href="{$banner.link}"{/if} {if $banner.targetblank}target="_blank"{/if}><img src="{$banner->getBannerUrl($zone.width, $zone.height, 'axy')}" alt="{$banner.title}"></a>
</li>
{/foreach}
</ul>
<div class="pages">
{foreach from=$banners item=banner}
<a href="#" class="{if $banner@first}act{/if}"></a>
{/foreach}
</div>
</div>
{/if}
Плюс, в в руководстве есть информация, как посмотреть переданные в блок переменные визуально. Просто мышкой наводите и видно. https://readyscript.ru/dev-manual/dev_t … ogrid_tpls <-тут чуть ниже как включить режим отладки
234 09.04.2019 13:21:07
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
а что-нибудь вообще выводится? Подключили все скрипты и стили?
235 09.04.2019 11:39:40
Re: Модуль для оптовой торговли (9 ответов, оставленных в Вопросы по Маркетплейсу)
В общем то в модуле "Правила для корзины" добавлен такой функционал
236 09.04.2019 11:37:30
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
в первую очередь туда и пошел)
Отлично, значит перейдем к слудющему пункту:
/templates/maintheme/moduleview/banners/slider
Не забыли ли положить шаблон в подкаталог blocks?
/templates/maintheme/moduleview/banners/blocks/slider
237 09.04.2019 02:20:49
Re: Слайдер и прочее (22 ответов, оставленных в Вопросы по созданию тем оформления)
Здравствуйте! В RS все не сложнее, а чаще всего и проще других CMS. Напишите подробнее, куда копировали slider.tpl.и как собираете свою тему. Используете ли конструктор сайтов или прописываете вызов блоков в шаблоне напрямую.
Я бы советовал все же начать с переделки заводской flatlines, тогда было бы понятно "откуда ноги растут".
Если краткой, то
Создаете зону для баннера, добавляете в нее баннеры. В конструкторе сайта у блока со слайдером в настройках выбираете созданную зону. Если вручную в код вставили вызов, то передайте информацию о зоне вот так:
{moduleinsert name="\Banners\Controller\Block\Slider" zone="fashion-center"}
Так же полезно заглянуть в https://readyscript.ru/dev-manual/dev_templates.html
238 04.04.2019 16:23:59
Re: WIKI по системе Readyscript (5 ответов, оставленных в Сайт ReadyScript)
Как вариант, еще закрепленные темы с рубрикатором как на 4pda.ru можно сделать.
239 03.04.2019 18:52:28
Re: WIKI по системе Readyscript (5 ответов, оставленных в Сайт ReadyScript)
Люто плюсую.
240 29.03.2019 16:15:40
Re: Модули старшей версии. Перекрыли кислород... на 20 минут (9 ответов, оставленных в Вопросы по разработке модулей и API системы)
что-то суть никто так и не понял, главное показать уровень ЧСВ видать.
Те кто отписался, вы поймите я покупаю все что необходимо, и каждый клиент со свое лицензией и с тем функционалом что она подразумевает.
У меня только один минус, я взял модуль и переписал его под себя, грубо говоря из буратино сделал барби. И использую себе в удовольствие. К подобным решениям по заимствованию кода я прибегал с 2014 года, первое мое знакомство с RS.
Ну значит так написали, что большинство поняли по другому. У каждого текста есть несколько оттенков прочтения.
Я бы эту тему закрыл от греха подальше)
241 28.03.2019 23:05:08
Re: Модули старшей версии. Перекрыли кислород... на 20 минут (9 ответов, оставленных в Вопросы по разработке модулей и API системы)
Для компании с множеством филиалов 19700 руб - не деньги, поэтому здесь нет оправданий. У меня тоже есть доступ ко множеству модулей, однако всегда покупаю заново для клиентов или повышаю версию RS при необходимости.
Уважайте труд разработчиков!
242 28.03.2019 21:57:07
Re: Характеристика товара - диапазон (7 ответов, оставленных в Вопросы по работе с системой)
Для ростовки одежды такое делал. Размер "от" и "до" был указан в товаре, а в фильтре диапазон выбирался.
Поля заполнялись автоматически исходя из максимальной и минимальной ростовки в комплектациях.
Делал для старой версии, может сейчас уже поменялось.
90 и 89 - id "ростовка от" и "ростовка до".
Файл templates/theme/moduleview/catalog/blocks/sidefilters/type/int.my.tpl
{if $prop.id==90}
<div class="filter typeInterval">
<h4>{$prop.title}:</h4>
<table class="fullwidth fromToLine">
<tr>
<td>{t}от{/t}</td>
<td class="p50"><input type="text" class="textinp fromto" name="pf[{90}][from]" value="{$filters[89].from|default:$prop_from.interval_from}" data-start-value="{$prop_from.interval_from}"></td>
<td>{t}до{/t}</td>
<td class="p50"><input type="text" class="textinp fromto" name="pf[{89}][to]" value="{$filters[90].to|default:$prop.interval_to}" data-start-value="{$prop.interval_to}"></td>
<td>{$prop.unit}</td>
</tr>
</table>
<input type="hidden" data-slider='{ "from":{$prop_from.interval_from}, "to":{$prop.interval_to}, "step": "{$prop.step}", "round": {$prop->getRound()}, "dimension": " {$prop.unit}", "heterogeneity": [{$prop->getHeterogeneity()}], "scale": ["{$prop_from.interval_from}", "{$prop.interval_to}"] }' value="{$filters[89].from|default:$prop_from.interval_from};{$filters[90].to|default:$prop.interval_to}" class="pluginInput" data-start-value="{$prop_from.interval_from};{$prop.interval_to}">
</div>
{elseif $prop.id!=89}
<div class="filter typeInterval">
<h4>{$prop.title}:</h4>
<table class="fullwidth fromToLine">
<tr>
<td>{t}от{/t}</td>
<td class="p50"><input type="text" class="textinp fromto" name="pf[{$prop.id}][from]" value="{$filters[$prop.id].from|default:$prop.interval_from}" data-start-value="{$prop.interval_from}"></td>
<td>{t}до{/t}</td>
<td class="p50"><input type="text" class="textinp fromto" name="pf[{$prop.id}][to]" value="{$filters[$prop.id].to|default:$prop.interval_to}" data-start-value="{$prop.interval_to}"></td>
<td>{$prop.unit}</td>
</tr>
</table>
<input type="hidden" data-slider='{ "from":{$prop.interval_from}, "to":{$prop.interval_to}, "step": "{$prop.step}", "round": {$prop->getRound()}, "dimension": " {$prop.unit}", "heterogeneity": [{$prop->getHeterogeneity()}], "scale": [{$prop->getScale()}] }' value="{$filters[$prop.id].from|default:$prop.interval_from};{$filters[$prop.id].to|default:$prop.interval_to}" class="pluginInput" data-start-value="{$prop.interval_from};{$prop.interval_to}">
</div>
{/if}
Код грязный, делал давно.
243 23.03.2019 04:25:24
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
о каком public'е Вы все пишите?
качественно перенесли старые баги!
Вы бы хоть написали об этом, а то кто-то на радостях скачает и радости не ощутит smile
Мне уже начинает надоедать ваша манера общения. Кто хочет, тот применит, если надо исправит. Какой public понятно из пункта 1 вашего же вопроса.
244 23.03.2019 02:41:35
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
/**
* Возвращает результаты поиска по категориям в зависимости от запроса
*
* @param string $query - строка для поиска
* @param integer $limit - лимит результатов поиска
*
* @return \Catalog\Model\Orm\Dir[]
*/
function getSearchQueryCategoryResults($query, $limit = 1)
{
$list = $this->dirapi
->setFilter('name', $query, '%like%')
->setFilter('public', 1)
->getList(1, $limit);
//Если не нашли результаты, то посмотрим странслитом
if (empty($list)){
$query = Transliteration::puntoSwitchWord($query);
$list = $this->dirapi->clearFilter()->setFilter('name', "%$query%",'like')
->getList(1, $limit);
}
return $list;
}
В версии на текущую дату public есть, но нет его в транслитерации. Забыли видимо
245 23.03.2019 02:33:55
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
/**
* Возвращает результаты поиска по категориям в зависимости от запроса
*
* @param string $query - строка для поиска
* @param integer $limit - лимит результатов поиска
*
* @return \Catalog\Model\Orm\Dir[]
*/
function getSearchQueryCategoryResults($query, $limit = 1)
{
$list = $this->dirapi->setFilter('name', "%$query%",'like')
->getList(1, $limit);
//Если не нашли результаты, то посмотрим странслитом
if (empty($list)){
$query = \RS\Helper\Transliteration::puntoSwitchWord($query);
$list = $this->dirapi->clearFilter()->setFilter('name', "%$query%",'like')
->getList(1, $limit);
}
return $list;
}
Вот код исходного модуля. О public речи нет.
246 23.03.2019 02:30:30
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
1. почему после транслитерации запроса пропал setFilter('public', 1) ?
2. чем setFilter('name', "$query%", 'like') от setFilter('name', $query, '%like%') отличается? почему такой синтаксис?
3. удаление методов getSearchQueryProductResults, getSearchQueryProductCount ломает обратную совместимость и может привести к проблемам в сторонних модулях.
1. В исходном коде этого не было
2. В исходном коде был первый вариант, я использовал второй.
3. Методов не хватает, так как делалось для старой версии 3, там их нет.
247 21.03.2019 02:01:36
Re: Фильтр "наличие по выбранным складам" (1 ответов, оставленных в Вопросы по работе с системой)
Здравствуйте, Юрий! Я делал доработку, которая в зависимости от наличия товара на складе устанавливала галки на списковой характеристике "В наличии на складе" у товаров.
В списке характеристики перечислены все склады. А у товаров включены соответствующие значения. Пользователь в фильтре просто ставит галку у нужных складов.
248 19.03.2019 18:54:46
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
https://helpdesk.readyscript.ru/wish/Mo … a-684.html
Добавил пожелание
249 18.03.2019 22:51:58
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
Хорошо, Александр, создам.
И до кучи в контроллере блока searchline поменял порядок вывода: Категория->Товар->Бренд.
Забыл модифицированный контроллер блока выложить https://yadi.sk/d/rIjrrrzoKe3IqQ
из catalog/controller/block
250 18.03.2019 13:20:20
Re: Подсистема поиска. Оптимизация, улучшение (28 ответов, оставленных в Вопросы по разработке модулей и API системы)
Кеш сбрасывали? Я корректировал только вывод категорий, так как он выводится не модулем поиска.
Мусор при выводе может быть из за того, что включен поиск в описании и характеристиках.
То есть решил задачу только для вывода категорий, вывод товаров надо настраивать в модуле поиска.