Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Вывод данных объекта(массива) в шаблоне (http://forum.typo3.ru/showthread.php?t=11968)

iMoD 01.02.2016 17:58

Вывод данных объекта(массива) в шаблоне
 
Доброго времени суток всем. Кто знает, как инициализировать объект с данным или массив, чтобы его можно было вывести в шаблоне. Примерно в таком виде:
Код HTML:

<f:for each="{obj}" as="item">
    {item}
</f:for>

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

Manas 01.02.2016 18:59

Если это не будет плагин и его контроллер, как система будет знать какой объект вы собираетесь выводить?

iMoD 02.02.2016 13:08

Цитата:

Сообщение от Manas (Сообщение 40363)
Если это не будет плагин и его контроллер, как система будет знать какой объект вы собираетесь выводить?

Я вас понял. Проблема в том, что я не могу подключить к системе самый простой контроллер. Может есть вариант вызвать функцию в шаблоне через TypoScript, чтобы функция возвращала массив данных. Наподобие такого варианта:
PHP код:

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/0ByA...t?pref=2&pli=1

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

iMoD 02.02.2016 18:18

Цитата:

Сообщение от Николай Сипко (Сообщение 40366)
А какой у вас шаблон? "Примерно в таком виде"?

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

Цитата:

Сообщение от Николай Сипко (Сообщение 40366)
C точки зрения банальной эрудиции, каждый индивидуум, цинизм помыслов которого ассоциирует концепции парадоксальных иллюзий, просто не может не игнорировать критерии утопического субъективизма. (Иммануил Кант)

:D:D:D

Николай Сипко 02.02.2016 18:54

Цитата:

Сообщение от iMoD (Сообщение 40368)
да, использую fluid template :D:D:D

У нас, у англицких лордов, принято на слово верить
Кстати, между нами, канадскими лесорубами говоря, в Templavoila templating engine создавать backend_layout, на мой взгляд, удобней

iMoD 02.02.2016 21:04

Цитата:

Сообщение от Николай Сипко (Сообщение 40369)
У нас, у англицких лордов, принято на слово верить
Кстати, между нами, канадскими лесорубами говоря, в Templavoila templating engine создавать backend_layout, на мой взгляд, удобней

С Templavoila не работал. Хочу уже разобраться с fluid. Вот пробую инициализировать объект в контроллере, подключаю к странице в качестве плагина и ничего не происходит. Если подскажите, где я ошибся, то признателен. Знаю, что нюансов может быть очень много - от неправильного именования контроллера до использования устаревших конструкций. Может есть статьи или туториалы проверенные.
Скажу, что никак не могу подключить плагин к странице и уже давно этим страдаю. Строил плагин и через extension builder и по туториалу, но без толку. Использую Typo3 7.6.2

Manas 02.02.2016 21:14

Вы можете вызывать объекты из плагина через 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

Цитата:

Сообщение от iMoD (Сообщение 40368)
да, использую 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 спасибо, не надо

iMoD 17.02.2016 15:06

Цитата:

Сообщение от Николай Сипко (Сообщение 40372)
Может, следует подключать их в backend_layout страниц, которые "базируются на трех частях.
Часть 1: Шаблон HTML
Часть 2: Шаблон Typo3
Часть 3: CSS Таблица стилей"

Доброго времени суток! После долгих поисков, как создать свой плагин я столкнулся с проблемой, что не могу вывести данные плагина, который должен возвращать в шаблоне. Хотелось бы вывести какие-либо возвращающие данные с плагина хоть каким-нибудь способом. Вы упомянули выше, что плагины можно подключать через backend_layout. Как вы подключаете плагин через backend_layout, чтобы плагин заработал.
Благодарю вас за мануал по typo3 - весьма полезный. За ранее спасибо.


Часовой пояс GMT +4, время: 11:56.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot