Просмотр полной версии : Проблемы с выводом содержимого.
Dimanoss
06.07.2010, 21:10
Вроде простенький кусочек тормознул меня надолго. Задачка проще некуда - вывод текста (содержимого страницы) в темплейт.
page = PAGE
page {
bodyTag = <body>
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/template/index.html
10.workOnSubpart = DOCUMENT_BODY
10.marks.CONTENT_FRAME = CONTENT
10.marks.CONTENT_FRAME {
table = tt_content
}
}
.... но не работает. HTML-ный текст в полном порядке. Опять взываю к гуру: где собака порылась?
cherkatel
06.07.2010, 23:21
select.pidInList = this RTFM
Dimanoss
07.07.2010, 11:39
Стоп! А разве ID страницы не автоматом подставляется в запрос?
кстати, когда проверку делаю:
renderObj=COA
renderObj{
10=TEXT
10.data = debug:data
}
, то вижу все нужные записи из таблицы...
cherkatel
07.07.2010, 18:22
это смотрели ?
substMarksSeparately boolean If set, then marks are substituted in the content AFTER the substitution of subparts and wraps.
Normally marks are not substituted inside of subparts and wraps when you are using the default cached mode of the TEMPLATE cObject. That is a problem if you have marks inside of subparts! But setting this flag will make the marker-substitution a non-cached, subsequent process.
http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/8/26/
Dimanoss
07.07.2010, 20:12
спасибо, попробовал и это - не там проблемка. Ошибку нашёл сам случайно. Вся кака в том, что я не умею "разбирать" результат. Код рабочий:
tt_content = TEXT
tt_content.field = bodytext
page = PAGE
page {
typeNum = 0
15 = TEMPLATE
15 {
template = FILE
template.file = fileadmin/template/index.html
workOnSubpart = DOCUMENT_BODY
marks.CONTENT_FRAME = CONTENT
marks.CONTENT_FRAME {
table = tt_content
select {
pidInList = this
orderBy = sorting
}
}
}
тут у меня достаётся исключительно bodytext. Не угостите примерчиком, как "разпилить" массив? (header, bodytext, etc.)
Спасибо заранее...
cherkatel
07.07.2010, 20:36
а у вас css_styled _content вообще в шаблоне подключен? непонятна цель такого парсинга...
Dimanoss
08.07.2010, 11:17
Цель проста - дать возможность барышням самостоятельно изменять пару страниц в проекте. Т.е. - картинку и текст. Сам я склонялся к своей CMS (а чего там, два запроса, две таблицы), но начальство спит и видит перевести все наши проекты на стандартизированные TYPO3-рельсы. Ну что ж, по ходу проекта учим новое - всё равно ж пригодится.
Путь избрал простейший - сделал добротную статику (HTML+CSS) и воткнул туда маркеры типа ###MAIN_MENU###. Теперь моя задача - подменить маркеры динамичными кусками. С меню худо-бедно разобрался, пришла очередь содержимого. Того самого, из tt_content...
cherkatel
08.07.2010, 12:21
а зачем изобретать собственный парсинг при наличии стандартного???
Если хотите поизучать - шаблон - TypoScriptObjectBrowser - настройка (setup) - lib - tt_content (если вы его включили - info-modify - вся запись - включения) - и изучайте парсинг.
И систему прав.
Dimanoss
08.07.2010, 15:00
... наверное, я не совсем точно описал желаемое. В последней версии кода я смог считать записи из таблицы, НО! В этом случае возвращается значение только одного поля (bodytext). Мне же интересно знать, как обработать полученный из базы данных массив записей. Как это делается в большинстве языков. Ну, берём массив, дробим его на строки, строки дробим на поля. И полученные значения этих полей как-то выводим в темплейт...
А ObjectBrowser показывает лишь то, что я сам и написал. А если я фигню накатал, то тут он мне бесполезен... :)
cherkatel
08.07.2010, 16:41
marks.CONTENT_FRAME = CONTENT
marks.CONTENT_FRAME {
table = tt_content
select {
pidInList = this
orderBy = sorting
}
renderObj {
10 = TEXT
10.field = header
20 = TEXT
20.field = bodytext
}
}
список полей посмотрите в БД. И в норме так не делают :)
Dimanoss
08.07.2010, 17:44
И в норме так не делают :)
так вот и хотелось бы толком понять, КАК делают. То, что нарыл в инете - больше на техническую сторону налегает. Книга под рукой (O'Reily) вообще убитая - без всякой системы написана. Начал шефа терзать насчёт курсов, там хоть вопросов поназадавать можно будет, ну так курсы не каждый день бывают, ждать надо...
cherkatel
08.07.2010, 19:20
В норме включают css_styled_content который и решает проблемы рендеринга контента.
и пишут просто
page = PAGE
page.10 = CONTENT
page.10 {
table = tt_content
}
вот собственно вывод контента. ВСЕ!
это конечно без шаблона. если у вас есть шаблон, то изучаете либо MTB
http://typo3.org/documentation/document-library/tutorials/doc_tut_templselect/current/
оттуда (integration html template) чуть подправлено
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
template = FILE
template.file = fileadmin/template/test.html
workOnSubpart = DOCUMENT_BODY
subparts.INSIDE_CONTENT = CONTENT
subparts.INSIDE_CONTENT {
table = tt_content
}
}
# Default PAGE object:
page = PAGE
page.typeNum = 0
page.10 < temp.mainTemplate
и дальше по тексту читаете про automake_templateб как решаются проблемы с head
либо FTB
http://typo3.org/documentation/document-library/tutorials/doc_tut_ftb1/current/
а то что вы пытались сделать пишут или дял своих расширений или для хитрых вещей типа http://forum.typo3.biz/showthread.php?t=8708
Dimanoss
09.07.2010, 12:34
о!... оно и так тоже работает! Спасибище огроменное! Хотя, ежели честно, первый путь как-то мне ближе... Доктор, это нормально? :D
Dimanoss
09.07.2010, 13:26
вот ещё вопросец назрел (чтоб опять не в ту сторону не утопать). У меня есть готовый статичный (HTML+CSS) шаблон. Картинка в нём, например, имеет свой класс и/или id и упакована в определённый div. Когда я вывожу содержимое из TYPO3, то, само собой, все эти тонкости отсутствуют. Как я понял, в скрипте это учесть нереально - скрипт не различает, что там за картинка (могут ведь и две картинки с разными id существовать), валит всё, что имеется, в общую кучу. Какие-то поля, где можно сохранить подобные параметры, при сохранении картинки в документе, отсутствуют. Вот и вопрос: как можно решить эту заморочку, и можно ли решить её стандартными средствами....
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot