TV-поле привязка к конкретному ресурсу (странице)
Приветствую.
Насколько понимаю, судя по документации, TV-поле можно привязать только к Шаблону.
Допустим, есть шаблон А. К нему подключены ресурсы с id 1, 2, 3. Если привязать TV к шаблону А, то оно будет доступно для всех ресурсов(1-3) шаблона.
Необходима привязка только к ресурсу id 2, для остальных ресурсов поле недоступно.
Будьте добры, подскажите, как привязать TV-поле к конкретному ресурсу?
Насколько понимаю, судя по документации, TV-поле можно привязать только к Шаблону.
Допустим, есть шаблон А. К нему подключены ресурсы с id 1, 2, 3. Если привязать TV к шаблону А, то оно будет доступно для всех ресурсов(1-3) шаблона.
Необходима привязка только к ресурсу id 2, для остальных ресурсов поле недоступно.
Будьте добры, подскажите, как привязать TV-поле к конкретному ресурсу?
Комментарии: 19
Создать для этого ресурса отдельный шаблон. Если всё делать через Fenom, то шаблонов можно создавать сколько угодно, при этом все они будут ссылаться на один и тот же файл, это очень сильно расширяет возможности для манёвра.
Понимаю, но ресурсов с индивидуальным полем 9 штук. Создавать 9 шаблонов исключительно в угоду TV, мне думается, весьма иррациональный вариант.
Неужели нет более гуманного способа привязки.
Неужели нет более гуманного способа привязки.
Нет способ привязки только один через шаблон.
Можете сделать так:
Создаете ТВ поле. У него ID допустим 28.
Создаете плагин вешаете событие на OnManagerPageInit.
Создаете ТВ поле. У него ID допустим 28.
Создаете плагин вешаете событие на OnManagerPageInit.
<?php
switch($modx->event->name){
case 'OnManagerPageInit':
$ids = [183]; //Ресурсы, где ПОКАЗЫВАТЬ ТВ ПОЛЕ
if ($_GET['a'] == 'resource/create' || ($_GET['a'] == 'resource/update' && !in_array($_GET['id'], $ids))) {
$myCSS = '<style media="screen">
#tv28-tr{display:none!important}
</style>';
$modx->regClientCSS( $myCSS );
}
break;
}
Надеялся, что пропустил функцию в админке. Значит только через шаблон. Это и хотел узнать.
Парни, спасибо за уделенное время и помощь!
Парни, спасибо за уделенное время и помощь!
А чем такой вариант не подошел?
Он лишь скрывает, но не привязывает.
Все почему-то забыли про очень хороший инструмент: «Настройка форм». =)
site.ru/manager/?a=security/forms
и не нужно будет никаких плагинов и танцов с бубнами =)
site.ru/manager/?a=security/forms
и не нужно будет никаких плагинов и танцов с бубнами =)
Я вчера пробовал через него. Там можно поставить условие что id = 1 например и СНЯТЬ ГАЛОЧКУ. А поставить условие id != 1 нельзя. Если делать 2 правила. Например первое — для всех с шаблоном СКРЫТЬ ТВ, а второе правило id = 1 ПОКАЗЫВАТЬ ТВ, то правило СКРЫТЬ У ВСЕХ перекрывает правило ПОКАЗЫВАТЬ У ОДНОГО.
Если вы знаете как сделать — продемонстрируйте пожалуйста.
Если вы знаете как сделать — продемонстрируйте пожалуйста.
В значение ограничивающего поля можно указать только равенство (т.е. id = 1)
Если нужно показывать TV только в одном ресурсе — создайте отдельный шаблон для этого ресурса и привяжите к этому шаблону нужный TV (это и будет "Если сделать 2 правила").
Если нужно показывать TV у множества ресурсов, но скрыть его только в одном ресурсе — то используйте правило в настройке форм.
Если нужно показывать TV только в одном ресурсе — создайте отдельный шаблон для этого ресурса и привяжите к этому шаблону нужный TV (это и будет "Если сделать 2 правила").
Если нужно показывать TV у множества ресурсов, но скрыть его только в одном ресурсе — то используйте правило в настройке форм.
Получается вы ответили что «через настройку форм сделать как нужно автору нельзя»
В «Ограничивающее значение» можно указать несколько id через запятую.
Перечислите id у которых нужно скрыть TV.
Перечислите id у которых нужно скрыть TV.
Нет нельзя. Сейчас специально проверил.
Можно =)
Но есть бага в самом MODX.
github.com/modxcms/revolution/blob/v2.8.4-pl/core/model/modx/modmanagercontroller.class.php#L847
А вот для TV полей данное условие не прописали:
github.com/modxcms/revolution/blob/v2.8.4-pl/core/model/modx/modtemplatevar.class.php#L627
Поэтому TV поля не скрываются как надо. Зато скрывается всё остальное (т.е. правило срабатывает).
Но есть бага в самом MODX.
github.com/modxcms/revolution/blob/v2.8.4-pl/core/model/modx/modmanagercontroller.class.php#L847
А вот для TV полей данное условие не прописали:
github.com/modxcms/revolution/blob/v2.8.4-pl/core/model/modx/modtemplatevar.class.php#L627
Поэтому TV поля не скрываются как надо. Зато скрывается всё остальное (т.е. правило срабатывает).
Отправил коммит: github.com/modxcms/revolution/compare/2.x...tanzirev:patch-2
Возможно что в 2.8.5 ошибка будет исправлена.
Возможно что в 2.8.5 ошибка будет исправлена.
Если верно понял, то в «Настройка форм» реализовано ограничение по Основным полям, например pagetitle, isfolder. По TV-полям(Дополнительным) ограничения нет. Поправьте, если ошибаюсь.
Про такой инструмент я не знал, спасибо за наводку.
Про такой инструмент я не знал, спасибо за наводку.
Ошибаюсь. При втором заходе появилась панель с Доп.полями TV. Буду разбираться, как этот инструмент работает.
Ограничивающие поле — это поле, по которому СРАБОТАЕТ правило.
Т.е. если укажите id = 1, то правило будет срабатывать только у ресурса с id = 1
А всё что настраивается ниже — это и есть само правило.
Т.е. если снимите галочку у какого-то TV — то это TV скроется.
Т.е. если укажите id = 1, то правило будет срабатывать только у ресурса с id = 1
А всё что настраивается ниже — это и есть само правило.
Т.е. если снимите галочку у какого-то TV — то это TV скроется.
Нее, парни, это совсем не то, что требуется. Продублирую заголовок топика «TV-поле привязка к конкретному ресурсу (странице) ». Не скрыть, не под ковёр замести, а именно привязать.
Создал ресурс, создал TV-поле, привязал. В случае отвязки TV от ресурса данные поля в БД не хранятся, удаляются.
Разнообразие полей и их кастомизация в modx впечатляет, но сама реализация принципа ресурс-TV скорее для галки. Отталкиваюсь от профильных cms, ну да, оно и понятно, ведь профильные. Ок, будем работать с тем, что есть.
modx.pro/help/22993#comment-134159
Спасибо всем отписавшимся за помощь и время!
Создал ресурс, создал TV-поле, привязал. В случае отвязки TV от ресурса данные поля в БД не хранятся, удаляются.
Разнообразие полей и их кастомизация в modx впечатляет, но сама реализация принципа ресурс-TV скорее для галки. Отталкиваюсь от профильных cms, ну да, оно и понятно, ведь профильные. Ок, будем работать с тем, что есть.
modx.pro/help/22993#comment-134159
Спасибо всем отписавшимся за помощь и время!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.