Как сделать MIGX доступным нескольким шаблонам?

Задача: организовать отображение акций на двух страницах. На главной странице акции отображаются в виде слайдера, каждый слайд которого ведет страницу акций по уникальному id данной акции.
Код главной:
<div id="slider">
	<div><a href="stock_01"><img src="assets/img/stock_01.png"></a></div>
	<div><a href="stock_02"><img src="assets/img/stock_02.png"></a></div>
	<div><a href="stock_03"><img src="assets/img/stock_03.png"></a></div>
	<div><a href="stock_04"><img src="assets/img/stock_04.png"></a></div>
</div>
Код страницы акций:
<main>
<h1>Акции</h1>
<article id="stock1">
	<img src="assets/img/stock__01.png" alt="">
	<div class="description">
		<h2>Заголовок акции 1</h2>
		<div class="block">
			<div class="text">Описание акции 1</div>
		</div>
	</div>
</article>
<article id="stock2">
	<img src="assets/img/stock__02.png" alt="">
	<div class="description">
		<h2>Заголовок акции 2</h2>
		<div class="block">
			<div class="text">Описание акции 2</div>
		</div>
	</div>
</article>
<article id="stock3">
	<img src="assets/img/stock__03.png" alt="">
	<div class="description">
		<h2>Заголовок акции 3</h2>
		<div class="block">
			<div class="text">Описание акции 3</div>
		</div>
	</div>
</article>
<article id="stock4">
	<img src="assets/img/stock__04.png" alt="">
	<div class="description">
		<h2>Заголовок акции 4</h2>
		<div class="block">
			<div class="text">Описание акции 4</div>
		</div>
	</div>
</article>
</main>
Соответственно, создаю 2 шаблона — «Главная» и «Акции» и 1 TV поле типа MIGX, которому прописываю поля «название акции», «картинка для слайдера», «картинка для страницы акции», «описание акции». Делаю поле доступным для обоих шаблонов. Из-под учетки контент-менеджера заполняю эти поля для шаблона главной, открываю страницу акций — пусто. Иду в админку, оставляю доступ MIGX поля только для одного шаблона «Акции», контент-менеджером заполняю их, открываю страницу акций — вижу то, что хотел. Открываю главную — вижу совершенно не то, что заполнил контент-менеджером, а то, что было до этого, перед тем, как снял доступ MIGX поля для шаблона «Главная». Т.е. действия контент-менеджера никак не отражаются на слайдере главной страницы, а при доступе поля для двух шаблонов, его настройки не отражаются на странице акций. Прилагаю код. Надеюсь на помощь.
Вывод слайдера на главной:
<div id="slider">
[[!getImageList?
    &tvname=`stocks`
    &tpl=`slideTpl`
]]
</div>
Вывод акций на странице акций:
<main>
[[!getImageList?
    &tvname=`stocks`
    &tpl=`stockTpl`
]]
</main>
Описание полей MIGX TV `stocks`:
[{"caption":"Информация", "fields": [
	{"field":"title","caption":"Название акции"},
	{"field":"image","caption":"Изображение для слайдера","inputTVtype": "image", "sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"2\"}]"},
	{"field":"imageP","caption":"Изображение для страницы","inputTVtype": "image", "sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"2\"}]"},
	{"field":"description","caption":"Описание акции","inputTVtype": "richtext"}
]}]

Код slideTpl:
<div><a href="[[~номер_ресурса_акций]]#[[+idx]]"><img src="[[+image]]"></a></div>
Код stockTpl:
<article id="[[+idx]]">
	<img src="[[+imageP]]">
	<div class="description">
		<h2>[[+title]]</h2>
		<div class="block">
			<div class="text">[[+description]]</div>
		</div>
	</div>
</article>
livalex
11 сентября 2016, 21:23
modx.pro
1 522
0

Комментарии: 1

Евгений Webinmd
12 сентября 2016, 09:37
0
Логично. Значения TV полей привязаны к ресурсу у которого вы его заполнили.
Если на сайте хотите вывести MIGX поле из любого ресурса, то укажите ему &docid (указать ID ресурса у которого заполнено поле)

[[!getImageList?
    &tvname=`stocks`
    &tpl=`stockTpl`
    &docid=`1`
]]
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1