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

}


}

список полей посмотрите в БД. И в норме так не делают :)


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

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