TV-поле привязка к конкретному ресурсу (странице)

Приветствую.

Насколько понимаю, судя по документации, TV-поле можно привязать только к Шаблону.
Допустим, есть шаблон А. К нему подключены ресурсы с id 1, 2, 3. Если привязать TV к шаблону А, то оно будет доступно для всех ресурсов(1-3) шаблона.

Необходима привязка только к ресурсу id 2, для остальных ресурсов поле недоступно.
Будьте добры, подскажите, как привязать TV-поле к конкретному ресурсу?
Ивaныч
Ивaныч
06 июня 2022, 16:14
modx.pro
2 741

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

Артур Шевченко
06 июня 2022, 18:08
Создать для этого ресурса отдельный шаблон. Если всё делать через Fenom, то шаблонов можно создавать сколько угодно, при этом все они будут ссылаться на один и тот же файл, это очень сильно расширяет возможности для манёвра.
    Ивaныч
    06 июня 2022, 18:31
    Понимаю, но ресурсов с индивидуальным полем 9 штук. Создавать 9 шаблонов исключительно в угоду TV, мне думается, весьма иррациональный вариант.
    Неужели нет более гуманного способа привязки.
Ivan
07 июня 2022, 11:27
Можете сделать так:
Создаете ТВ поле. У него 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;
}
    Ивaныч
    07 июня 2022, 11:42
    Надеялся, что пропустил функцию в админке. Значит только через шаблон. Это и хотел узнать.
    Парни, спасибо за уделенное время и помощь!
    Дмитрий Танцирев
    08 июня 2022, 18:02
    Все почему-то забыли про очень хороший инструмент: «Настройка форм». =)

    site.ru/manager/?a=security/forms

    и не нужно будет никаких плагинов и танцов с бубнами =)
      Ivan
      08 июня 2022, 21:26
      Я вчера пробовал через него. Там можно поставить условие что id = 1 например и СНЯТЬ ГАЛОЧКУ. А поставить условие id != 1 нельзя. Если делать 2 правила. Например первое — для всех с шаблоном СКРЫТЬ ТВ, а второе правило id = 1 ПОКАЗЫВАТЬ ТВ, то правило СКРЫТЬ У ВСЕХ перекрывает правило ПОКАЗЫВАТЬ У ОДНОГО.
      Если вы знаете как сделать — продемонстрируйте пожалуйста.
        Дмитрий Танцирев
        08 июня 2022, 22:03
        В значение ограничивающего поля можно указать только равенство (т.е. id = 1)

        Если нужно показывать TV только в одном ресурсе — создайте отдельный шаблон для этого ресурса и привяжите к этому шаблону нужный TV (это и будет "Если сделать 2 правила").

        Если нужно показывать TV у множества ресурсов, но скрыть его только в одном ресурсе — то используйте правило в настройке форм.
      Ивaныч
      08 июня 2022, 21:28
      Если верно понял, то в «Настройка форм» реализовано ограничение по Основным полям, например pagetitle, isfolder. По TV-полям(Дополнительным) ограничения нет. Поправьте, если ошибаюсь.

      Про такой инструмент я не знал, спасибо за наводку.
        Ивaныч
        08 июня 2022, 21:42
        Ошибаюсь. При втором заходе появилась панель с Доп.полями TV. Буду разбираться, как этот инструмент работает.
          Дмитрий Танцирев
          08 июня 2022, 22:05
          Ограничивающие поле — это поле, по которому СРАБОТАЕТ правило.
          Т.е. если укажите id = 1, то правило будет срабатывать только у ресурса с id = 1

          А всё что настраивается ниже — это и есть само правило.
          Т.е. если снимите галочку у какого-то TV — то это TV скроется.
      Ивaныч
      09 июня 2022, 20:34
      Нее, парни, это совсем не то, что требуется. Продублирую заголовок топика «TV-поле привязка к конкретному ресурсу (странице) ». Не скрыть, не под ковёр замести, а именно привязать.

      Создал ресурс, создал TV-поле, привязал. В случае отвязки TV от ресурса данные поля в БД не хранятся, удаляются.
      Разнообразие полей и их кастомизация в modx впечатляет, но сама реализация принципа ресурс-TV скорее для галки. Отталкиваюсь от профильных cms, ну да, оно и понятно, ведь профильные. Ок, будем работать с тем, что есть.

      modx.pro/help/22993#comment-134159

      Спасибо всем отписавшимся за помощь и время!
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        19