1 Отредактировано Георгий (09.04.2019 01:20:36)

Тема: Слайдер и прочее

Доброго времени,
тут несколько вопросов по докам, и например, выводу кастомного слайдера.

я может не там смотрю, ищу, но где-нибудь описаны переменные шаблонов (из чего берет, например, slider.tpl, block_stub.tpl как работают зоны), что и кто откуда берет.

у меня элементарная задача, которая на некоторых движках делается на 10 минут.
баннеры - пара картинок с описанием и кнопкой, копировал slider.tpl, ставил/прописывал зоны, 100500 раз оборачивал его, всеми циклами которые нашел в заводских темах и ничего, просто пусто.
тему собираю свою, не переделываю завод.шаблоны.

Повысить оценку Понизить оценку

Re: Слайдер и прочее

Здравствуйте! В RS все не сложнее, а чаще всего и проще других CMS. Напишите подробнее, куда копировали slider.tpl.и как собираете свою тему. Используете ли конструктор сайтов или прописываете вызов блоков в шаблоне напрямую.
Я бы советовал все же начать с переделки заводской flatlines, тогда было бы понятно "откуда ноги растут".
Если краткой, то
Создаете зону для баннера, добавляете в нее баннеры. В конструкторе сайта у блока со слайдером в настройках выбираете созданную зону. Если вручную в код вставили вызов, то передайте информацию о зоне вот так:

    {moduleinsert name="\Banners\Controller\Block\Slider" zone="fashion-center"}

Так же полезно заглянуть в https://readyscript.ru/dev-manual/dev_templates.html

Re: Слайдер и прочее

Здравствуйте! В RS все не сложнее, а чаще всего и проще других CMS.

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

Я бы советовал все же начать с переделки заводской flatlines, тогда было бы понятно "откуда ноги растут".

переделка заводской темы мало интересует, ну конечно, я в нее подглядываю, и не только туда

Создаете зону для баннера, добавляете в нее баннеры. В конструкторе сайта у блока со слайдером в настройках выбираете созданную зону. Если вручную в код вставили вызов, то передайте информацию о зоне вот так:

    {moduleinsert name="\Banners\Controller\Block\Slider" zone="fashion-center"}

так и делаю))

Так же полезно заглянуть в https://readyscript.ru/dev-manual/

в первую очередь туда и пошел)

Напишите подробнее, куда копировали slider.tpl.и как собираете свою тему. Используете ли конструктор сайтов или прописываете вызов блоков в шаблоне напрямую.

собираю по https://readyscript.ru/dev-manual/dev_t … ogrid.html

 <!-- Слайдер -->
        <div class="slider-area  plr-185  mb-80">
            <div class="container-fluid">
                <div class="slider-content">
                    <div class="row">
                        <div class="active-slider-1 slick-arrow-1 slick-dots-1">
                            
                            <!-- Элемент баннера -->
                            <div class="col-md-12">
                                <div class="layer-1">
                                    
                                    
                                    <!-- Картинка -->
                                    <div class="slider-img">
                                        <img src="img/slider/slider-1/1.jpg" alt="">
                                    </div>
                                    

                                    <div class="slider-info gray-bg">
                                        <div class="slider-info-inner">
                                            <h1 class="slider-title-1 text-uppercase text-black-1">Название баннера</h1>
                                            <div class="slider-brief text-black-2">
                                                Тут текст баннера....
                                            </div>
                                            <a href="#" class="button extra-small button-black">
                                                <span class="text-uppercase">Подробнее...</span>
                                            </a>
                                        </div>
                                    </div>

                                </div>
                            </div>
                             <!-- /Элемент баннера -->

                        </div>
                    </div>
                </div>
            </div>
        </div>
<!-- Слайдер -->

пример html верстки, ее ложу в /templates/maintheme/moduleview/banners/slider в файл slider.tpl
далее пробовал по разному выводы, смотрел в разных темах.
в основном шаблоне вставляю

{moduleinsert name="\Banners\Controller\Block\Slider"}

также добавлял зону баннера и без зоны, типа

{moduleinsert name="\Banners\Controller\Block\Slider" zone="main_slider"}

Повысить оценку Понизить оценку

Re: Слайдер и прочее

в первую очередь туда и пошел)

Отлично, значит перейдем к слудющему пункту:

 /templates/maintheme/moduleview/banners/slider

Не забыли ли положить шаблон в подкаталог blocks?

 /templates/maintheme/moduleview/banners/blocks/slider

Re: Слайдер и прочее

конечно, положил

Повысить оценку Понизить оценку

Re: Слайдер и прочее

а что-нибудь вообще выводится? Подключили все скрипты и стили?

7 Отредактировано Георгий (09.04.2019 14:33:39)

Re: Слайдер и прочее

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

потому и спрашиваю, откуда и как он берет данные...
в админке тупо 3 картинки с описанием.

Повысить оценку Понизить оценку

8 Отредактировано Ярослав (09.04.2019 14:57:40)

Re: Слайдер и прочее

в блок передаются данные из контроллера блока.
Т.е после вызова 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  <-тут чуть ниже как включить режим отладки

Re: Слайдер и прочее

я так делал, по данной инструкции.

{addjs file="{$mod_js}jquery.photoslider.js" basepath="root"}

зачем он... своих библиотек хватает)) он обязательно подключается?

Повысить оценку Понизить оценку

10

Re: Слайдер и прочее

Если не нужен, удалите. 5 раз он не подключится

11

Re: Слайдер и прочее

так, ок.
в свойствах баннера есть поле Дополнительная информация,
как оно выводится?

Повысить оценку Понизить оценку

12

Re: Слайдер и прочее

Чтобы посмотреть, какие поля есть у объекта,  имея только блокнот (опускаю использование 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}

13

Re: Слайдер и прочее

Благодарю, я как раз уже туда попал))

Повысить оценку Понизить оценку

14

Re: Слайдер и прочее

Подскажите, это

{moduleinsert name="\Catalog\Controller\Block\Brands"}


это верное подключение блока Brands?
почему то не видит, пишет Блочный контроллер '\Catalog\Controller\Block\Brands' не найден

Повысить оценку Понизить оценку

15

Re: Слайдер и прочее

Верно вот так

{moduleinsert name="\Catalog\Controller\Block\BrandList"}

Просто в папке \Catalog\Controller\Block смотрите какие есть контроллеры блоков.

16 Отредактировано Георгий (10.04.2019 01:25:32)

Re: Слайдер и прочее

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

есть главное меню, но есть такое же главное, для мобильных, меню для мобилок идет отдельной версткой,
как правильно задублировать блок меню?

Повысить оценку Понизить оценку

17

Re: Слайдер и прочее

Можно 2 циклами вывести. 1 меню для обычного отображения, 2 меню для мобильных. Но я не знаю на основе какого шаблона делаете меню, может достаточно 1 цикла

18

Re: Слайдер и прочее

Ярослав пишет:

Можно 2 циклами вывести. 1 меню для обычного отображения, 2 меню для мобильных. Но я не знаю на основе какого шаблона делаете меню, может достаточно 1 цикла

писал выше, у меня свой шаблон.

Повысить оценку Понизить оценку

19

Re: Слайдер и прочее

Каждый  готовый шаблон или самописный проблему адаптивного меню решает по-своему. Кто то делает 2 разных меню, а кто-то использует 1 меню и меняет ему версту в зависимости от разрешения.

20

Re: Слайдер и прочее

Ярослав пишет:

Каждый  готовый шаблон или самописный проблему адаптивного меню решает по-своему. Кто то делает 2 разных меню, а кто-то использует 1 меню и меняет ему версту в зависимости от разрешения.

да это понятно, я просто думал задублировать блок и указать ему другой tpl с нужной версткой

Повысить оценку Понизить оценку

21

Re: Слайдер и прочее

http://forum.readyscript.ru/post/9776/#p9776
ответил тут

22

Re: Слайдер и прочее

спс, то что нужно!

Повысить оценку Понизить оценку

23

Re: Слайдер и прочее

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

Повысить оценку Понизить оценку