Куда бы вставить виджет?

InstantCMS 2.X
#1 21 апреля 2017 в 01:03
Полезные штука виджеты. Вставить их можно хоть куда. Или почти хоть куда...

Вот оформил я страницу списка записей. Теперь бы разместить небольшой текст над списком. Как раз есть подходящий виджет "Текстовый блок". На страницу у него есть два варианта вставки: сверху или снизу "Тела страницы".


Вставляем сверху.
Оказывается к "Телу страницы", относится не только Заголовок, что в некоторых случаях можно пережить, но и Глубинометр. "Тело страницы" на картинке выдели зелёным:


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

Чуть-чуть получается поправить ситуацию, отключив Глубинометр, Но ведь это не выход. Так можно ведь можно всё поотключать на сайте...

Получается добавить какой-то текст можно только на главную страницу или в правую колонку? Кто-нибудь решал этот вопрос? Или только вариант правки шаблона?
#2 21 апреля 2017 в 01:26
Yar, если в шаблоне не предусмотрено место под вывод виджета, то можно добавить позиции в шаблон.
#3 21 апреля 2017 в 08:24
Cтудия Sitestroi, подскажите как? Может, даже видео запишите? smile
#4 21 апреля 2017 в 08:47
Один из вариантов — instantcms.ru/blogs/zapiski-sumasshedshego/pole-pozicija-dlja-vidzhetov-vyvodim-vidzhety-v-tele-zapisi.html — делаете поле перед заголовком.

Второй вариант — в файле main.tpl.php находите такой код:
  1. <?php if ($config->show_breadcrumbs && $this->isBreadcrumbs()){ ?>
  2. <div id="breadcrumbs">
  3. <?php $this->breadcrumbs(array('strip_last'=>false)); ?>
  4. </div>
  5. <?php } ?>
после него вставляете такой код:
  1. <?php $this->widgets('nadzagolovkom'); ?>
В файле scheme.html находите такой код:
  1. {block:LANG_PAGE_BODY}
и после него вставляете такой
  1. {position:nadzagolovkom}
Этот пример для дефолтного шаблона, но в других будет что-то аналогичное. nadzagolovkom — это название позиции, можно назвать по-другому.

Переходите в Панель управления — > Виджеты. Теперь над блоком "Тело страницы" появилась новая область для виджетов. На страницах сайта виджеты из этой области будут между заголовком и хлебными крошками.
#5 21 апреля 2017 в 10:21

то можно добавить позиции в шаблон.

Cтудия Sitestroi
Самый главный вопрос это в дальнейшем обновлении движка.

Второй вариант

DK
DK, С шаблоном понятно, можно создать свой и обновления не страшны, надеюсь, а что будет с файлом scheme.html?
#6 21 апреля 2017 в 10:32
DK, поле не сработает, там поле заголовка выдергивается из массива по моему, так что в любом случае будет после заголовка
#7 21 апреля 2017 в 12:14

DK, поле не сработает, там поле заголовка выдергивается из массива по моему

Jestik
Да, наверное Вы правы.

что будет с файлом scheme.html?

Yar
А что с ним должно быть, если

С шаблоном понятно, можно создать свой и обновления не страшны

Yar
файл scheme.html — это тоже файл шаблона.
#8 21 апреля 2017 в 13:36
Не так выразился, не шаблон, а файл ...tpl.php. Его же можно создать для раздела свой, например moy_razdel.tpl.php.Шаблон у меня дефолтный.
#9 21 апреля 2017 в 14:32

файл ...tpl.php. Его же можно создать для раздела свой, например moy_razdel.tpl.php

Yar
Вот этого не знаю, не пробовал. Скорее всего нельзя.

Вы можете создать копию дефолтного шаблона и в нем делать правки. В любом случае, без правки файлов Вам эту проблему не решить. Можете сделать это всё в дефолтном даже. В обновлениях не всегда указанные файлы меняются. Но если все-таки изменятся, то добавить опять эти две строчки.
#10 21 апреля 2017 в 15:07

Скорее всего нельзя.

DK
А в templates/default/content/ я создавал my_item.tpl.php

Ладно, главное, чтоб функционал работал, а себе это уже можно как-нибудь попытаться вставить. Как я понимаю, пока не получается найти решение разместить виджет ни под Глубинометром, ни под Заголовком.
#11 21 апреля 2017 в 17:25

пока не получается найти решение разместить виджет под Глубинометром

Yar
Второй вариант.

пока не получается найти решение разместить виджет… под Заголовком

Yar
Первый вариант.

Было бы желание.

А в templates/default/content/ я создавал my_item.tpl.php

Yar
Этот файл выведет запись с системным именем my. Можно и в него добавить позицию для виджетов, но при обновлении файл scheme.html может все равно слететь.
#12 21 апреля 2017 в 18:16

Jestik:
DK, поле не сработает, там поле заголовка выдергивается из массива по моему
Да, наверное Вы правы.

DK
Меня это немного смутило, поэтому не стал экспериментировать.

Пошел по Второму варианту.

В результате, действительно, получилось. Спасибо. Хотя область для виджетов появилась под блоком "Тело страницы", а не над. Но, главное работает. Цель достигнута на 50%. Уже что-то. Но всё же, нет ли возможности ставить под Заголовок? Так немного логичнее. )
#13 21 апреля 2017 в 19:26

Цель достигнута на 50%. Уже что-то. Но всё же, нет ли возможности ставить под Заголовок? Так немного логичнее. )

Yar
Извиняюсь, я немного ошибся. В файле scheme.html код, который нужно вставить, вставьте не после того кода, после которого я написал вставить, а перед ним. Т.е., код

  1. {position:nadzagolovkom}
нужно вставить ПЕРЕД кодом
  1. {block:LANG_PAGE_BODY}

Меня это немного смутило, поэтому не стал экспериментировать.

Yar
Если нужно вывести виджет перед заголовком, тогда работать не будет, потому что заголовок в коде идет отдельно от других полей, а остальные поля идут из настроек типа контента и в том порядке, в котором они расположены в настройках типа контента. Поэтому если нужно вывести после заголовка или после любого другого поля, то тогда всё будет работать.
#14 21 апреля 2017 в 20:06
В админке в разделе виджетов наладил, теперь поле сверху.
Конечно, правильнее было бы, если бы поле именно под заголовок разместить можно было, ведь сейчас на страницах списка записей ничего нельзя вставить. Только вниз. А вступительно-пояснительный текст как-то там не очень будет смотреться.
#15 21 апреля 2017 в 21:53

Конечно, правильнее было бы, если бы поле именно под заголовок разместить можно было, ведь сейчас на страницах списка записей ничего нельзя вставить. Только вниз. А вступительно-пояснительный текст как-то там не очень будет смотреться.

Yar
Простите, но я Вас не совсем понял.

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