Intereting Posts
Ошибка маршрутизации, вызывающий контроллер на основе переменных в URL-адресе Laravel 4 simpleXML: синтаксический анализ XML для вывода только атрибутов элементов Force Загрузить через Ajax и PHP PHP Youtube API v3 – Прямая загрузка – Несанкционированное сообщение Zend_Form_Element_File и «Файл превышает заданный размер ini» Загрузить URL-адрес, не работающий в API Google Диска PHP ErrorException: предупреждение: заголовок может содержать не более одного заголовка, обнаружена новая строка Взаимодействие Laravel Eloquent One to Many Лучшая функция для капитуляции заголовков? Facebook FQL-запрос для всех пользователей онлайн Larvel Cartalyst Sentinel – Добавление столбца имени пользователя в таблицу пользователей (что является правильным способом) Отправить письмо (серверная сторона, а не mailto) при нажатии кнопки html Как использовать именованные каналы в PHP между различными функциями или даже разными процессами без fork? создание столбцов таблицы html, возможно, сортируемых Как сделать планировщик как cron в PHP на Windows Server

Typo3 V6: Как создать контейнер элементов контента? (без телевизора)

Для проекта я использую Typo3 v6.0. Я ищу для создания вложенных элементов контента или контейнера элементов контента. Я хочу иметь возможность создать встроенный двухколоночный макет, не используя для него конкретный шаблон. Я ищу сделать это без использования templavoila.

Расширения, которые я пробовал, – gridelements , kb_nescefe , bs_fce , multicolumn но они не работают, потому что они не совместимы с Typo3 V6.

Я нацелен на конечный результат, как приложенное изображение. Если встроенное содержимое из двух столбцов можно опустить, использовать один раз или использовать несколько раз, содержащий любой другой элемент контента.

Я ищу здесь самое простое решение. Я предпочитаю не вкладывать много времени обучения в решение, такое как flux и whatnot ( http://fedext.net/ – выглядит круто, но также слишком timeconsuming на данный момент)

Есть идеи?

пример макета с встроенным двухколоночным контентом

Я являюсь автором набора расширений Fluid (флюс, жидкое содержимое, жидкие страницы и т. Д.) И, конечно же, хотел бы помочь вам узнать об использовании FluidContent для создания FCE. Это действительно не так сложно, как можно было бы опасаться. По крайней мере, это намного более компактно, чем пример выше. Следующий результат достигает того же результата, что и ваш пример, в FluidContent:

TypoScript (статическая загрузка: css_styled_content, fluid_content)

 plugin.tx_fed.fce.yourname { templateRootPath = fileadmin/Templates # if you don't want to use an extension (1) # partial and layout root paths not defined (2) } 

Относительно (1) вы действительно, действительно должны. Использование добавочного номера отделяет загруженные вами файлы и т. Д. От содержимого вашего сайта. Если вы это сделаете, просто используйте путь EXT: … в папку «Частные ресурсы». И в отношении (2) эти пути необходимы только в том случае, если вы действительно хотите использовать частичные.

Затем сам файл шаблона (автоматически обнаруживается, когда путь к файлу находится в TS):

 {namespace flux=Tx_Flux_ViewHelpers} <f:layout name="Content" /> <f:section name="Configuration"> <flux:flexform id="columns" label="Columns" icon="path/to/iconfile.jpg"> <flux:flexform.grid> <flux:flexform.grid.row> <flux:flexform.grid.column> <flux:flexform.content name="left" label="Left content" /> </flux:flexform.grid.column> <flux:flexform.grid.column> <flux:flexform.content name="right" label="Right content" /> </flux:flexform.grid.column> </flux:flexform.grid.row> </flux:flexform.grid> </flux:flexform> </f:section> <f:section name="Preview"> <flux:widget.grid /> </f:section> <f:section name="Main"> <div class="row"> <div class="span6"> <flux:flexform.renderContent area="left" /> </div> <div class="span6"> <flux:flexform.renderContent area="right" /> </div> </div> </f:section> 

Как вы можете видеть, вы можете свободно добавлять любой HTML-код, который хотите, использовать любой ViewHelpers (даже визуализировать объекты TS, если это ваша вещь). Чтобы добавить дополнительные элементы контента, просто добавьте новые файлы шаблонов – они будут автоматически распознаны.

Но он будет работать иначе, чем IRRE (который вы также можете использовать с использованием полей Flux – сообщите мне, если вы хотите увидеть демо): он предложит вам использовать родной drag-n-drop в TYPO3 для размещения вашего ребенка элементы контента в контейнеры фактического содержимого – как вы делали с телевизором.

Таким образом, Fluid Content, вероятно, будет ближе всего к телевизору.

Что касается переполнения Flux, я хотел бы дать вам представление о том, что он на самом деле выполняет:

  • Кэшированное чтение TS для определения путей
  • Кэшированные списки обнаруженных шаблонов
  • Fluid кэширует собственный PHP, Flux использует Fluid для хранения config (что означает, что он является родным PHP на всем пути)
  • Flux сам регистрирует абонент-крючок, который реагирует на сохраненный контент, это замедляет работу (незаметно)
  • Сам Flux не создает нагрузку на FE с одним исключением: когда в незакрепленных плагинах (FluidContent кэшируется!) Flux может вызывать собственный PHP-кешированный код для чтения конфигураций.
  • FluidContent состоит из чрезвычайно простого контроллера; выход полностью кэшируется.
  • Возможно, вы захотите добавить коллекцию VHS ViewHelper – она ​​сама по себе создает абсолютно нулевую нагрузку: она использует только ресурсы, в которых вы используете свой ViewHelpers. Он содержит кучу ViewHelpers. Я уверен, что вы найдете полезным.

Сначала это может показаться подавляющим, но я гарантирую, что вам меньше знать и запоминать, чем в pibase, FlexForm XML, TS или родных плагинах Extbase. Если вы хотите получить еще больше защитной сетки, я настоятельно рекомендую использовать схемы XSD в вашем редакторе – это дает вам автоматическое завершение специальных тегов <flux:....> и других.

Тем не менее: это потребует от вас немного узнать о логике Fluid: какие макеты и Partials (вы, скорее всего, захотите использовать их в какой-то момент) и как использовать специальные теги и ссылаться на переменные (которые понадобятся в другие варианты использования – но не под рукой, для этого требуются только простые теги ViewHelper).

Надеюсь, это поможет. И что я уменьшил ваш страх, что Флюс переполнен и слишком много, чтобы учиться;)

Ура,
Клаус ака. NamelessCoder

Вы можете взглянуть на расширение DCE ( http://typo3.org/extensions/repository/view/dce ); там вы можете сами определить элемент контента. В качестве альтернативы вы можете создавать буквально все с помощью инфраструктуры http://fedext.net/ . Просто прочитайте последние сообщения блога, чтобы получить представление о том, как создавать динамические элементы контента с этими расширениями.

Существует проект startnext, в котором исправлены известные ошибки в grid_elements. Afaik следующим шагом будет сделать grid_elements совместимым с TYPO3 6. Но я думаю, это понадобится за несколько недель до публикации. Но, возможно, они начнутся с версии 2 (которая будет совместима с TYPO3 6 в эти дни …).

Посмотрите на проект кузницы .

Хорошо, у меня полу решение. Я пошел с плагином WEC Content Elements для управления настраиваемыми элементами контента.

Затем я использовал следующую гибкую форму:

 <T3DataStructure> <ROOT> <type>array</type> <el> <leftColumn> <TCEforms type="array"> <label>Left column</label> <config> <type>inline</type> <foreign_table>tt_content</foreign_table> <maxitems>100</maxitems> <appearance> <showSynchronizationLink>0</showSynchronizationLink> <showAllLocalizationLink>0</showAllLocalizationLink> <showPossibleLocalizationRecords>0</showPossibleLocalizationRecords> <showRemovedLocalizationRecords>0</showRemovedLocalizationRecords> <expandSingle>1</expandSingle> </appearance> </config> </TCEforms> </leftColumn> <rightColumn> <TCEforms type="array"> <label>Right column</label> <config> <type>inline</type> <foreign_table>tt_content</foreign_table> <maxitems>100</maxitems> <appearance> <showSynchronizationLink>0</showSynchronizationLink> <showAllLocalizationLink>0</showAllLocalizationLink> <showPossibleLocalizationRecords>0</showPossibleLocalizationRecords> <showRemovedLocalizationRecords>0</showRemovedLocalizationRecords> <expandSingle>1</expandSingle> </appearance> </config> </TCEforms> </rightColumn> </el> </ROOT> </T3DataStructure> 

И следующая настройка тайваньского интерфейса:

 tt_content.twoColumnContainer = COA tt_content.twoColumnContainer { 10 = < lib.stdheader 20 = COA 20 { wrap = <div class="twocolumn-container"> | </div> 10 = RECORDS 10 { tables = tt_content dontCheckPid = true source.data = t3datastructure : pi_flexform->leftColumn wrap = <div class="twocolumn-left"> | </div> } 20 = RECORDS 20 { tables = tt_content dontCheckPid = true source.data = t3datastructure : pi_flexform->rightColumn wrap = <div class="twocolumn-right"> | </div> } } 

Это привело к созданию элемента содержимого бэкэнд, который использует редактор IRRE для добавления / редактирования элементов контента. Элемент контейнера не имеет предварительного просмотра, а два столбца расположены ниже друг друга (а не рядом друг с другом). Все это единственное работоспособное решение, которое я нашел после многих часов поиска в Интернете и опробования различных методов / плагинов.

Надеюсь, это поможет кому-то.

Я бы…

  1. Расширьте таблицу tt_content двумя новыми полями (по одному для каждого столбца). Вы можете сделать это вручную в phpMyAdmin, но тогда вы рискуете, что поля случайно удаляются в инструменте установки при сравнении базы данных или что-то в этом роде. Поэтому для этого лучше создать очень простое расширение – на самом деле это всего лишь 2 файла: ext_emconf.php, описывающие расширение и ext_tables.sql для определения новых полей.

  2. Определите в typo3conf / extTables.php новый тип элемента содержимого (= контейнер) и два новых поля (один для левого столбца и один для правого столбца), каждый из которых является типом IRRE .

  3. Установите TCAdefaults.tt_content.pid = xxx в TypoScript. Конфигурация корневой страницы так, чтобы элементы левого / правого столбца не были сохранены на самой странице, а в некоторой папке sysfolder.

  4. Определите новый элемент контента в настройке шаблона, чтобы он отображался по своему желанию.

Обновления

Пример поля IRRE:

 'user_2col_left' => array( 'exclude' => 1, 'label' => 'Left column', 'config' => array( 'type' => 'inline', 'foreign_table' => 'tt_content', 'maxitems' => '10', 'appearance' => array( 'collapseAll' => '1', 'expandSingle' => '1', 'newRecordLinkPosition' => 'bottom', 'showAllLocalizationLink' => '1', 'showPossibleLocalizationRecords' => '1', 'showSynchronizationLink' => '1', 'useSortable' => '1', 'enabledControls' => array( 'hide' => '0', ), ), 'behaviour' => array( 'disableMovingChildrenWithParent' => '1', 'localizeChildrenAtParentLocalization' => '1', ), ) ), 

Пример нового типа контента:

 t3lib_div::loadTCA('tt_content'); $TCA['tt_content']['columns']['CType']['config']['items'][] = array( 0 => '2 columns', 1 => 'user_2cols', 2 => '../fileadmin/user_2cols.gif', ); t3lib_SpriteManager::addTcaTypeIcon('tt_content', 'user_2cols', '../fileadmin/user_2cols.gif'); $TCA['tt_content']['types']['user_2cols']['showitem'] = 'CType,header,--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.access,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.visibility;visibility,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.access;access,--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.appearance,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.frames;frames,--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.textlayout;textlayout,--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.extended'; 

Заметки

  • Это простое (и немного грубое) решение для вашего конкретного случая. Лучшее решение будет учитывать возможность динамического задания количества столбцов в контейнере.

  • Там будут некоторые ограничения по работе с элементами слева / справа столбца – вы не сможете легко перемещать их или копировать их между различными контейнерами.

Вот видео презентации конференции о том, как сделать FCE без использования TemplaVoila. К сожалению, только на немецком языке, но, возможно, это помогает.

http://vimeo.com/29213790

Я бы предложил вам попробовать плагин «многоколоночный». У него нет зависимостей в качестве других реализаций (я пробовал почти, если не все заменители FCE), и у него есть возможности вложенности. В целом он отлично играет с TYPO3. В последнее время он портирован на TYPO3 v6. Я использую его на нескольких сайтах, и я вполне доволен. (Есть несколько ошибок, например, отображение неправильных «Потерянных элементов», но есть исправление на странице кузницы)

Вот ссылка на документацию TER: http://typo3.org/extension-manuals/multicolumn/2.1.14/view/

Попробуйте использовать Fluid Powered TYPO3. С новым предварительно сконфигурированным «сайтом» распространения,

 http://typo3.org/extensions/repository/view/site 

Screencast от Claus Due

 http://vimeo.com/110469200 

Не забудьте добавить typo3conf / AdditionalConfiguration.php Как его установить?