Точки показа виджетов

InstantCMS 2.X
#1 11 января 2026 в 02:00

Здравствуйте.

Имеется сайт полностью проапдейчен до последней версии движка.

Выставил в админке работу с другим шаблоном для администратора, чтобы сверстать новый скин на сайт не ломая старый.

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

При размещении позиции в main.tpl.php 

  1. <div class="container-fluid">1
  2. <?php if($this->hasWidgetsOn('user_menu')) {$this->widgets('user_menu', false, 'wrapper_plain'); echo "true";} ?>

создаю в админке ряд с позицией user_menu и кидаю туда виджет

Изображение  Изображение

по факту в месте входа пусто. Документация тут: docs.instantcms.ru/dev/templates/layouts очень скупая, туда я в первую очередь посмотрел

есть пример странички но ни слова о причинно следственных связях )))

Что я делаю не так?

Добавлено спустя 2 часа

Решил пока ночь на дворе поставить редактируемый шаблон — основным, админка вывалила ошибку про поля, но ни в одной вкладке ошибок не выскочило. Может в этом всё дело? Что он от меня хочет?

Изображение

#2 11 января 2026 в 11:13

Во первых попробуйте задать строковое имя для шаблона, а не числовое. Далее не понятно что вы хотите сделать вообще?

Каким образом происходит инициализация мест под модули?

mus

Сейчас это виджеты. Почитайте доки про них

#3 11 января 2026 в 12:45
Во первых попробуйте задать строковое имя для шаблона, а не числовое. Далее не понятно что вы хотите сделать вообще? Каким образом происходит инициализация мест под модули? mus Сейчас это виджеты.
Lora

1. имя шаблона ничем не может повлиять на работу и показ модулей(виджетов) — рабочий старый шаблон называется 2016

2. модули, виджеты, хоть жирафами их назови — должны отображаться в конкретных местах вёрстки, суть вопроса как эти места обозначить? По поводу доков — да я читал их, о чём я собственно и писал выше, доки не менялись года этак наверное с 1926 )))) — они не внятные.

Например мне лично не понятно как проинициализировать точки монтирования (позиции) в вёрстке. По инструкции не работает. Вот я и задаю вопрос — А может я что то не так делаю????

Сегодня в 09:11
#4 11 января 2026 в 13:22

Есть шаблон default и шаблон modern. Документация, на которую вы ссылаетесь написана для default. При создании своего шаблона вам следует прописать наследования от основного шаблона. То есть, если вы собираетесь использовать default, то от него. Но я как то давно не видел такого и default больше для совместимости оставлен. Плюс в админке нужно будет указать схему виджетов тоже для default.

#5 11 января 2026 в 14:15
Есть шаблон default и шаблон modern. Документация, на которую вы ссылаетесь написана для default. При создании своего шаблона вам следует прописать наследования от основного шаблона.
Lora

Давайте абстрагируемся от наследования. Допустим я делаю новый шаблон, и не хочу ни от кого наследоваться, пусть это будет девственный скин. Допустим у меня есть вёрстка <nav><?php  $this->widgets('user_menu', false, 'wrapper_plain');  ?></nav> и мне надо вывести виджет с меню пользователя в определённое место. Что мне для этого надо сделать?

Или без наследования никак? Но ведь дефолтный шаблон ни у кого не наследует?

Вопросы: 1 — позиция user_menu где ещё должна быть обозначена кроме шаблона, 2 — в админке не возможно добавить ряд и позицию к дефолтной схеме (не динамической) тогда где указать имя позиции?

Добавлено спустя 2 минуты

вот это вот «указать схему»

в админке нужно будет указать схему виджетов тоже для default.

Lora

я так подозреваю 'mj как раз то что я не могу понять. можно подробнее?

Добавлено спустя 8 минут

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

#6 11 января 2026 в 14:22

Или без наследования никак?

mus

Никак.

Но ведь дефолтный шаблон ни у кого не наследует?

mus

Я писал, что он для совместимости.Если не вдаваться в нюансы.

Допустим я делаю новый шаблон

mus

Он должен быть наследован от moder

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

#7 11 января 2026 в 15:04

Тогда объясните мне балбесу, как работает шаблон default? откуда он знает где какие виджеты должны выводится. Ну не понимаю я, хоть убей, хочу до сути докапаться. Ведь на дефолте сайт работает. Чем дефолт отличается от любого другого шаблона?

#8 11 января 2026 в 15:14

templates\default\scheme.php

#9 11 января 2026 в 15:39

Чем дефолт отличается от любого другого шаблона

mus

в движке есть два варианта работы со схемой виджетов. Устаревшая, так скажем, когда все позиции для виджетов указываются в файле схемы github.com/instantsoft/icms2/blob/master/templates/default/scheme.php для редактирования в админке, а также в файле шаблона github.com/instantsoft/icms2/blob/master/templates/default/main.tpl.php

На самом деле, встречается достаточно часто в готовых проектах под ключ.

И новая, динамическая, когда вы в админке настраиваете сетку виджетов из строк, позиций в них, и виджеты на сайте выводятся согласно этой сетке. Тут никакие позиции в main.tpl.php указывать не надо. Сетка выводится таким вот простым вызовом github.com/instantsoft/icms2/blob/92b6d68da99909b3607561abf867ea6af8a8827e/templates/modern/main.tpl.php#L48

В случае с динамической сеткой вам надо внедрять вашу верстку в шаблон колонки, как сделано в демо, например, для колонки Верхний

Изображение

Это только кажется сложным. Непривычным. В других cms вы берете готовую верстку, отмечаете в ней позиции для вывода, а потом оформляете блоки, которые хотите выводить.

С modern, и дочерними от него, работать надо по другому. Разбиваете ваш шаблон, условно скажем, на ряды. Создаете для них сетку в админке. «Добавляете» в шаблоны колонок свою верстку.

У каждого ряда есть свой тег

Изображение

Есть родительский тег

Изображение

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

Если вы действительно хотите вникнуть, то дальше начните с:

1. Про дочерние шаблоны instantcms.ru/blogs/horoshie-mysli/kak-ne-poterjat-pravki-v-shablone-delaem-dochernii-shablon-4549.html
2. Поставьте на тестовый, локальный домен данный готовый проект instantcms.ru/blogs/gotovyi-sait-lending-kompanii-po-podboru-personala.html

Посмотрите, как выглядит сайт на фронте, и как собраны ряды этого сайта в админке.

3. Посмотрите документацию бутстрап версии 4 getbootstrap.ru/docs/4.5/layout/grid/

Закроются почти все вопросы типа, что за контейнер ряда, что за порядок у блока и т.п.

#10 11 января 2026 в 16:39
Чем дефолт отличается от любого другого шаблона mus в движке есть два варианта работы со схемой виджетов.
Zau4man

Да вся беда в том, что я по привычке, собрал вёрстку на пятом бутстрапе, потерял почти месяц времени, думал позиции расставлю как раньше было, и вперёд на мины, а тут вон какая шляпа… И да, статейку ту я тоже почитал, не укладывается в мой архаичный мозг всё это никак. И да меня устраивает старый вариант. Я кинул в папку шаблона файл scheme.php. Прописал туда свои названия позиций, сама схема, я так понимаю, условность, главное чтобы в ней были прописаны имена позиций, я прав? Грубо говоря можно просто сделать файл с тремя позициями и всё {}{}{}? Т.е. у меня в вёрстке есть место где выводить позицию, в scheme есть список позиций, в админке я закидываю виджет в нужную позицию на схеме, но она не появляется на сайте

#11 11 января 2026 в 20:06

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

mus

правы

в админке я закидываю виджет в нужную позицию на схеме, но она не появляется на сайте

mus

тут два варианта. или даже три.

1. закидываете не на той странице, на которой ожидаете. тестируйте на главной
2. закидываете виджет, не заполняете его настройки, виджет не выводится
3. имена позиций в схеме и в main не совпадают

А так я уже года 3 уже не делал шаблоны на основе default. Возможно, файл манифеста таки нужен, чтобы указать в нем 

  1. 'is_dynamic_layout' => false,

github.com/instantsoft/icms2/blob/92b6d68da99909b3607561abf867ea6af8a8827e/templates/default/manifest.php#L18

#12 11 января 2026 в 20:11

Манифест на месте, попробую ещё раз без вёрстки копию дефолта покошмарить, если разберусь то буду перетягивать туда новый шаблон. В любом случае, спасибо за участие :)

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

Похожие темы

Похожее в блогах

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.