Просмотр полной версии : Вывод данных объекта(массива) в шаблоне
Доброго времени суток всем. Кто знает, как инициализировать объект с данным или массив, чтобы его можно было вывести в шаблоне. Примерно в таком виде:
<f:for each="{obj}" as="item">
{item}
</f:for>
Знаю, что данный объект можно инициировать в самом контроллере. создавая при этом свой модуль, потом вызывать в качестве плагина на странице, где вы хотите вывести данные. Такой способ тоже пробовал, но он очень замудренный, чтобы его разобрать с первого раза.
Подскажите какие еще есть варианты.
Если это не будет плагин и его контроллер, как система будет знать какой объект вы собираетесь выводить?
Если это не будет плагин и его контроллер, как система будет знать какой объект вы собираетесь выводить?
Я вас понял. Проблема в том, что я не могу подключить к системе самый простой контроллер. Может есть вариант вызвать функцию в шаблоне через TypoScript, чтобы функция возвращала массив данных. Наподобие такого варианта:
page = PAGE
page.10 = USER_INT
page.10 {
userFunc = user_printTime
# Include the PHP file with our custom code
includeLibs = fileadmin/example_time.php
}
Николай Сипко
02.02.2016, 14:48
А какой у вас шаблон? "Примерно в таком виде"?
TYPO3 Fluid template tutorial
http://typo3buddy.com/typo3-template-tutorial/fluid/
TYPO3 Fluid: Create a Fluid content template file
The file content will look like this:
<div id="content">
<div id="content_menu">
<f:cObject typoscriptObjectPath="lib.content_menu" />
</div>
<div id="content_main">
<f:format.raw>{content_main}</f:format.raw>
</div>
<div class="clearer"></div>
</div>
=======
TYPO3 Fluid: Create a backend layout
You'll name this backend layout "Main 1 column with menu" and put the following code in the "Config" box:
backend_layout {
colCount = 1
rowCount = 1
rows {
1 {
columns {
1 {
name = Content main (with menu)
colPos = 0
}
}
}
}
}
=======
TYPO3 Fluid: Use the backend layout on all pages
TYPO3 Fluid: Update the typoscript "Main template"
page.10 = FLUIDTEMPLATE
page.10 {
format = html
file = fileadmin/templates/main_1_column_with_menu.html
variables {
content_main < styles.content.get
content_main.select.where = colPos = 0
}
}
=======
TYPO3 Fluid: Add content to the home page
<div id="container">
<div id="container_header_bg">
<div id="container_header_top">
<f:render partial="header_top" arguments="{_all}" />
</div><!-- container_header_top -->
<div id="header_mobile">
<img src="/fileadmin/templates/images/mobile-menu_white.png" id="mobile_menu" alt="menu" title="menu" />
</div>
<div id="container_header_menu">
<div id="header_menu">
<f:cObject typoscriptObjectPath="lib.header_menu" />
</div><!-- header_menu -->
</div><!-- container_header_menu -->
</div><!-- container_header_bg -->
<div id="container_header_image">
<div id="header_image">
<f:cObject typoscriptObjectPath="lib.header_image" />
</div><!-- header_image -->
</div><!-- container_header_image -->
<div id="container_breadcrumb">
<div id="breadcrumb">
<f:cObject typoscriptObjectPath="lib.breadcrumb" />
</div><!-- breadcrumb -->
</div><!-- container_breadcrumb -->
<div id="container_content">
<f:render section="content" />
</div><!-- container_content -->
<div id="container_footer">
<f:render partial="footer" arguments="{_all}" />
</div><!-- container_footer -->
</div><!-- container -->
=======
Тогда можно вставлять контент и расширения через backend_layout
http://forum.typo3.biz/showthread.php?p=40299#post40299
О создании расширений
https://drive.google.com/file/d/0ByAXdHKcjipLTnh3WmVQN0tPdzQ/edit?pref=2&pli=1
C точки зрения банальной эрудиции, каждый индивидуум, цинизм помыслов которого ассоциирует концепции парадоксальных иллюзий, просто не может не игнорировать критерии утопического субъективизма. (Иммануил Кант)
А какой у вас шаблон? "Примерно в таком виде"?
TYPO3 Fluid template tutorial
http://typo3buddy.com/typo3-template-tutorial/fluid/
TYPO3 Fluid: Create a Fluid content template file
The file content will look like this:
<div id="content">
<div id="content_menu">
<f:cObject typoscriptObjectPath="lib.content_menu" />
</div>
<div id="content_main">
<f:format.raw>{content_main}</f:format.raw>
</div>
<div class="clearer"></div>
</div>
=======
TYPO3 Fluid: Create a backend layout
You'll name this backend layout "Main 1 column with menu" and put the following code in the "Config" box:
backend_layout {
colCount = 1
rowCount = 1
rows {
1 {
columns {
1 {
name = Content main (with menu)
colPos = 0
}
}
}
}
}
=======
TYPO3 Fluid: Use the backend layout on all pages
TYPO3 Fluid: Update the typoscript "Main template"
page.10 = FLUIDTEMPLATE
page.10 {
format = html
file = fileadmin/templates/main_1_column_with_menu.html
variables {
content_main < styles.content.get
content_main.select.where = colPos = 0
}
}
да, использую fluid template
C точки зрения банальной эрудиции, каждый индивидуум, цинизм помыслов которого ассоциирует концепции парадоксальных иллюзий, просто не может не игнорировать критерии утопического субъективизма. (Иммануил Кант)
:D:D:D
Николай Сипко
02.02.2016, 18:54
да, использую fluid template :D:D:D
У нас, у англицких лордов, принято на слово верить
Кстати, между нами, канадскими лесорубами говоря, в Templavoila templating engine создавать backend_layout, на мой взгляд, удобней
У нас, у англицких лордов, принято на слово верить
Кстати, между нами, канадскими лесорубами говоря, в Templavoila templating engine создавать backend_layout, на мой взгляд, удобней
С Templavoila не работал. Хочу уже разобраться с fluid. Вот пробую инициализировать объект в контроллере, подключаю к странице в качестве плагина и ничего не происходит. Если подскажите, где я ошибся, то признателен. Знаю, что нюансов может быть очень много - от неправильного именования контроллера до использования устаревших конструкций. Может есть статьи или туториалы проверенные.
Скажу, что никак не могу подключить плагин к странице и уже давно этим страдаю. Строил плагин и через extension builder и по туториалу, но без толку. Использую Typo3 7.6.2
Вы можете вызывать объекты из плагина через Typoscript примерно так
lib.myLib = USER
lib.myLib {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
pluginName = Myextension
extensionName = Myextension
controller = Item
vendorName = Myvendor
action = list
switchableControllerActions {
Item {
1 = list
}
}
settings =< plugin.tx_myextension.settings
persistence =< plugin.tx_myextension.persistence
view =< plugin.tx_myextension.view
}
И во fluid соответсвенно
<f:cObject typoscriptObjectPath="lib.myLib" />
Это будет плагин Myextension, контроллер Item, action List
Николай Сипко
02.02.2016, 23:26
да, использую fluid template :D:D:D
"На самом деле я не так давно стал разбираться в TYPO3. Прочитав много кол-во статей я пришел к выводу, что fluid оптимальное решение (*ДЛЯ ВЫВОДА РАСШИРЕНИЙ), только порог вхождения гораздо выше, чем использовать готовые модули. Файлы шаблонов, скрипты, стили, картинки храню пока в папке fileadmin, но думаю со временем перекинуть шаблоны в виде модуля"
http://forum.typo3.biz/showthread.php?t=11955&page=2
Неужели "с разбегу" совершите переворот, "напейсав шаблон в виде модуля"? Ведь Template как модуль в TYPO3 давно существует?
=======
Вы не можете "подключить к странице" плагин, который "строил и через extension builder и по туториалу, но без толку", и стабильный js_paginate
Может, следует подключать их в backend_layout страниц, которые "базируются на трех частях.
Часть 1: Шаблон HTML
Часть 2: Шаблон Typo3
Часть 3: CSS Таблица стилей"
=======
И бесплатный совет (чтобы "снизить порог вхождения"):
http://forum.typo3.biz/showthread.php?t=11883
А :D спасибо, не надо
Может, следует подключать их в backend_layout страниц, которые "базируются на трех частях.
Часть 1: Шаблон HTML
Часть 2: Шаблон Typo3
Часть 3: CSS Таблица стилей"
Доброго времени суток! После долгих поисков, как создать свой плагин я столкнулся с проблемой, что не могу вывести данные плагина, который должен возвращать в шаблоне. Хотелось бы вывести какие-либо возвращающие данные с плагина хоть каким-нибудь способом. Вы упомянули выше, что плагины можно подключать через backend_layout. Как вы подключаете плагин через backend_layout, чтобы плагин заработал.
Благодарю вас за мануал по typo3 - весьма полезный. За ранее спасибо.
Николай Сипко
17.02.2016, 21:34
Вы упомянули выше, что плагины можно подключать через backend_layout. Как вы подключаете плагин через backend_layout, чтобы плагин заработал.
Благодарю вас за мануал по typo3 - весьма полезный. За ранее спасибо.
За ранее спасибо?
TYPO3 Templating tutorial: choose a method
TYPO3 Fluid: Create a backend layout
http://typo3buddy.com/typo3-template-tutorial/fluid/backend-layout/
Templavoila: Map the root and data elements to the HTML template
http://typo3buddy.com/typo3-template-tutorial/templavoila/map-the-data-elements/
TYPO3 Traditional Templating
https://wiki.typo3.org/Templating_Tutorial_-_Basics
Установка typo3 экстеншенов (расширений)
http://typo3ua.com/extensions/ustanovka-rasshirenij/
Вы меня извините, но у вас какой-то сумбур в голове.
Backend_layout - это заранее созданный вами тип страницы который вы выбирате в админке. Например вы сделали 2-х и 3-х колоночные макеты. В свойствах страницы вы выбираете, что выводить, либо 2-х колоночный макет, либо 3-х колоночный. Каждый ваш backend_layout подключен к соответсвующим html файлам. И именно в них вы определяете области для отображения контента и области для тайпоскриптов. Область для контента у вас доступна в админке, туда вы можете вставлять плагин. Как вызывать плагин через Typoscript, уже было в этой теме.
Данная парадигма применима как к Fluid, так и к Templavoila.
Спасибо ребя всем за помощь. Я разобрался в проблеме и проблема была совсем в другом. Надо было лишь включить дебагер через install tool и дальше можно было разбираться в чем проблема. Спасибо за проявленной вами терпение.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot