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

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

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

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

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

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

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

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

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

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

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

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

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

        modx.pro/help/22993#comment-134159

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