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=8707)

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/docum...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

Цитата:

Сообщение от cherkatel (Сообщение 28409)
И в норме так не делают :)

так вот и хотелось бы толком понять, КАК делают. То, что нарыл в инете - больше на техническую сторону налегает. Книга под рукой (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/docum...elect/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/docum..._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 существовать), валит всё, что имеется, в общую кучу. Какие-то поля, где можно сохранить подобные параметры, при сохранении картинки в документе, отсутствуют. Вот и вопрос: как можно решить эту заморочку, и можно ли решить её стандартными средствами....


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

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