TYPO3 8.7.8 ограничивает доступные элементы содержимого в столбце backend-layout

Я искал снова и снова, но пока не нашел ничего, что могло бы работать ...

TYPO3 8.7.8

root           - backend-layout ("Main") for this and all subpages   (id=1)
|
 - home        - backend-layout ("Home") for this page only          (id=2)
|
 - subpage     - same backend-layout as root                         (id=3)

оба backend-макета выглядят одинаково:

________________________________
|             Top              |
|______________________________|
| main-content | right-content |
|______________|_______________|

Верхняя часть названа по-другому и должна использоваться по-разному.

В верхней части «Main» -backend-layout должен быть разрешен только элемент images-content.

cType.allowed = image

В верхней части макета «Домашняя страница» должен быть разрешен только текстовый-контент-элемент.

cType.allowed = text

Последние две вещи, которые я пробовал, это

во-первых: ограничение использования GlobalVars в опечатке

[globalVar = TSFE:id != 2]&&[globalVar = TSFE:colPos=2]
  TCEFORM.tt_content.CType.removeItems := addToList(header,text,bullets,table,uploads,multimedia,mailform,search,login,splash,menu,shortcut,list,script,div,html,media)
  TCEFORM.tt_content.CType.keepItems := addToList(image)
[end]

второй: изменение свойств макета в базе данных

backend_layout {
    colCount = 2
    rowCount = 2
    rows {
        1 {
            columns {
                1 {
                    name = Parallax
                    colspan = 2
                    colPos = 2
                    # The following 3 lines have been added through me
                    cType {
                        allowed = text
                    }
                }
            }
        }
        2 {
            columns {
                1 {
                    name = Content-Main
                    colPos = 0
                }
                2 {
                    name = Content-Right
                    colPos = 1
                }
            }
        }
    }
}

Я пробовал много других вещей и не уверен, что найду их снова. Я даже не уверен, что это можно сделать в TYPO3 8.x. Варианты создания backend-layout в опечатке действительно ограничены. Вы можете только ввести имя столбца и определить colPos.

Я сделал что-то не так в TYPO3 8.x, что мои конфигурации не работали? Нужны ли мне другие свойства? Или это просто больше не предназначено для этой версии TYPO3? Потому что кажется, что это работало раньше ...

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

Спасибо!


person Kathara    schedule 21.11.2017    source источник
comment
Что насчет EXT: content_defender extensions.typo3.org/extension/content_defender   -  person jokumer    schedule 21.11.2017
comment
Я мог бы попробовать, но разве это невозможно без расширения?   -  person Kathara    schedule 21.11.2017
comment
@jokumer Ха !!! Это сработало!!! content_defender, кажется, работает отлично. Печально только то, что мне приходится адаптировать записи в БД. Вероятно, есть способ сделать это с помощью mod.web_layout.BackendLayouts, но я не знаю, как и что мне нужно делать, что я могу использовать макеты серверной части, определенные таким образом на определенных страницах. Пока только на корневой странице есть шаблон ... Если бы кто-нибудь мог дать мне указатель, как это сделать (особенно вторую часть) или даже инструкцию, я был бы невероятно рад и освобожден ...   -  person Kathara    schedule 22.11.2017


Ответы (3)


Попробуйте что-то вроде этого:

    backend_layout {
      colCount = 2
      rowCount = 2
      rows {
        1 {
          columns {
            1 {
              name = Parallax
              colspan = 2
              colPos = 2
              allowed = text
            }
          }
        }
        2 {
          columns {
            1 {
              name = Content-Main
              colPos = 0
            }
            2 {
              name = Content-Right
              colPos = 1
            }
          }
        }
      }
    }
person StatiX    schedule 21.11.2017
comment
А как насчет регистрации ваших внутренних макетов с mod.web_layout.BackendLayouts вместо записей БД? - person StatiX; 21.11.2017
comment
Я предполагаю, что разрешенная настройка будет работать только тогда, когда установлены дополнительные гридэлементы. - person Paul Beck; 21.11.2017
comment
Также есть расширение Content Defender, но да, это еще не основная функция TYPO3. Кстати: предстоящая версия Gridelements будет использовать тот же синтаксис, что и Content Defender, чтобы разрешать и запрещать определенные значения для CType, list_type и tx_gridelements_backend_layout - также известные как элементы содержимого, плагины и элементы сетки. - person Jo Hasenau; 22.11.2017
comment
@StatiX На самом деле я не знаю, где это поставить, чтобы оно работало. Должен ли я удалить макеты серверной части, которые у меня уже есть, чтобы получить к ним доступ позже через опечатку? - person Kathara; 22.11.2017
comment
@PaulBeck & Joey Я наткнулся на gridelements, но не понял, что он мне понадобится для использования разрешенного (никогда не упоминался в проблемах, которые я нашел до сих пор ...). Спасибо за указатель. Я попробую решение от Андраша Отто. Если это не сработает, я попробую использовать расширение. Спасибо за вашу помощь :) - person Kathara; 22.11.2017
comment
@PaulBeck allowed на самом деле работает и с content_defender :) У меня он работает с этим расширением. :) - person Kathara; 22.11.2017

Вы на правильном пути, но состояние неправильное.

Пролбем один: для ВЕ нет доступных TSFE.

В условии «globalString» ключ «TSFE:» не будет работать, потому что глобальный объект TSFE существует только в контексте FE. Клавиша «LIT:» также не будет работать, поскольку она используется для сравнения констант TypoScript, которые недоступны в контексте BE.

Ссылка: https://docs.typo3.org/typo3cms/TSconfigReference/Conditions/Index.html

Вам нужно использовать «страницу» вместо «TSFE: страница |». Они равны, но «страница» может использоваться как для внешнего, так и для внутреннего интерфейса, а «TSFE» - только для внешнего интерфейса.

Вторая проблема заключается в том, что для colPos вам нужно получить доступ к помощнику GP (GetPost) вместо TSFE.

Поэтому попробуйте изменить условие следующим образом:

[page|uid != 2]&&[globalVar = GP:colPos==2]
  TCEFORM.tt_content.CType.removeItems := addToList(header,text,bullets,table,uploads,multimedia,mailform,search,login,splash,menu,shortcut,list,script,div,html,media)
  TCEFORM.tt_content.CType.keepItems := addToList(image)
[end]

Примечание: для макетов BE нет ограничения CType, поэтому оба значения cType и allowed неверны.

person András Ottó    schedule 22.11.2017
comment
Интересно. Однако, похоже, работает следующее условие: [globalVar = TSFE: id = 2] && [page | backend_layout = 2], поскольку оно дает правильный результат ... Я изучу документацию и попробую ваше решение. Спасибо :) - person Kathara; 22.11.2017
comment
В моем решении опечатка, я его поменял, должно быть GP: colPos == 2. Кстати, я использую аналогичную логику с TYPO3 8.7.8, вот мое условие: [globalVar = GP: colPos == 0] && [page | is_siteroot = 0] - ›Так что это для главного столбца, а не для домашней страницы, потому что, по моему мнению, дом - это корень сайта. - person András Ottó; 22.11.2017
comment
Спасибо за комментарий. Поскольку мое другое условие, похоже, работает нормально, я начинаю верить, что вы можете использовать = или ==, и оба будут работать. Поскольку я уже нашел способ ограничить мои элементы содержимого так, как я хотел, я думаю, что оставлю другие условия такими, какие они есть. То, что я увидел из документации, на самом деле не дает никаких указателей, какое из условий было бы правильным для использования (может быть, вы знаете, где его искать?). Я буду иметь в виду, если мне понадобятся дополнительные условия;) Спасибо - person Kathara; 22.11.2017

Благодаря Джои я нашел расширение, с которым можно работать: Content Defender

И я узнал, как добавить свои backend_layouts через ts; Добавьте следующее в PageTS корневой страницы

mod.web_layout.BackendLayouts {
   Home {
      title = Home
      config {
        backend_layout {
          colCount = 2
          rowCount = 2
          rows {
            1 {
              columns {
                1 {
                  name = Parallax
                  colspan = 2
                  colPos = 2
                  # allowed and disallowed only work through the extension content_defender (or gridelements)
                  allowed {
                    CType = gi_customstyler_parallax_content
                  }
                }
              }
            }
            2 {
              columns {
                1 {
                  name = Main
                  colPos = 0
                  disallowed {
                    CType = gi_customstyler_bg_image,gi_customstyler_parallax_content
                  }
                }
                2 {
                  name = Right
                  colPos = 1
                  disallowed {
                    CType = gi_customstyler_bg_image,gi_customstyler_parallax_content
                  }
                }
              }
            }
          }
        }
     }
  }
  Main {
      title = Main
      config {
        backend_layout {
          colCount = 2
          rowCount = 2
          rows {
            1 {
              columns {
                1 {
                  name = Titel-Hintergrund
                  colspan = 2
                  colPos = 2
                  allowed {
                    CType = gi_customstyler_bg_image
                  }
                }
              }
            }
            2 {
              columns {
                1 {
                  name = Main
                  colPos = 0
                  disallowed {
                    CType = gi_customstyler_bg_image,gi_customstyler_parallax_content
                  }
                }
                2 {
                  name = Right
                  colPos = 1
                  disallowed {
                    CType = gi_customstyler_bg_image,gi_customstyler_parallax_content
                  }
                }
              }
            }
          }
        }
     }
  }
}

Таким образом, два backend_layout доступны в конфигурациях страницы с дополнительными условиями ограниченных элементов содержимого. Как видите, это также можно использовать с настраиваемыми элементами содержимого.

Мне потребовалось довольно много времени, чтобы понять это (как новичок), и я надеюсь, что это может помочь кому-то другому ...

person Kathara    schedule 28.11.2017