Вход

Просмотр полной версии : TS-Извлечь родителей раздела для нав.цепочки...


Ивано++
21.08.2013, 09:57
Добрый день.

Одно время пробовал сделать следующее...
Есть стрктура разделов на базе таблицы "X".

Раздел 1 >> Раздел 2 >> Раздел 3 >> Раздел 4
По ссылке /category-4/ - мы находимся в разделе 4.

И суть TS-что бы выбрать всех родителей Раздела 4...
Для создания нав.цепочки.

Пробовал как-то сделать это на TS - но чесно не получилось...
Т.к. мало извлечь родителей - нужно еще их последовательность как-то развернуть (порядок следования) развернуть.

Необходимость данного скрипта вызвана тем, что бы не создавать PHP-файл со скриптом наполнения массива для MENU itemProcFunc... А делать это все на TS.


lib.otherContent = CONTENT
lib.otherContent {
table = tx_catalog_auto
select {
pidInList = 340
#orderBy = sorting
where = uid = 84
#andWhere = uid = {REGISTER:param}
#andWhere.insertData = 1

#languageField = sys_language_uid
}

renderObj = COA
renderObj {
10 = LOAD_REGISTER
10 {

NextUid.cObject = TEXT
NextUid.cObject.field = pelem
NextUid.cObject.insertData = 1

}

#Уровень №5
20 = TEXT
20 {
insertData = 1
field = title
wrap = <b> | {register:Counter}. </b><br/> >
}

#Уровень №4
30 < lib.otherContent
30.select.where = uid = {register:NextUid}
30.select.where.insertData = 1

#Уровень №3
50 < lib.otherContent
50.select.where = uid = {register:NextUid}
50.select.where.insertData = 1

#Уровень №2
70 < lib.otherContent
70.select.where = uid = {register:NextUid}
70.select.where.insertData = 1

#Уровень №1
80 < lib.otherContent
80.select.where = uid = {register:NextUid}
80.select.where.insertData = 1



}
}


#Уровень 1
lib.otherContent2 = COA
lib.otherContent2.10 < lib.otherContent
lib.otherContent2.20 = TEXT
lib.otherContent2.20.value = {register:level_5_uid}
lib.otherContent2.20.insertData = 1


Может кто-то такое делал...


--
Иван.

dmartynenko
21.08.2013, 13:20
HMENU.special=rootline не то же самое, что вам нужно, делает?
http://typo3.org/documentation/snippets/sd/23/

Ивано++
21.08.2013, 13:37
HMENU.special=rootline не то же самое, что вам нужно, делает?
http://typo3.org/documentation/snippets/sd/23/

Так это же по идее только для таблицы pages?

dmartynenko
21.08.2013, 13:40
Согласен, не внимательно прочитал ваш пост.

Ивано++
21.08.2013, 14:22
Вот не знаю насколько это реально - но уже давно в идее...
Есть такое:

сделать hook (даже не hook а полный клон) - с cobj MENU /HMENU/TMEMU (вот этот замечательный класс class.tslib_menu.php) -
и назвать его HMENU2 TMENU2 - лишь с той раздницей...

что можно будет указывать название таблицы...
но не знаю насколько тогда данная табшица по колонкам и TCA ctrl должна быть = TCA ctrl pages...

Этакая виртуальная страничка...
В репозитории на эту тему даже есть расширение "nsb_cat2menu" - но это не полноценный аналог объекта HMENU - он может только выбрать через функцию API-TYPO3... И все...

И что дико не удобно в TMENU - объекте - это то, что есть excludeUidList - и нет ему противоположного includeOnlyUidList

Не знаю правда что из - этого выйдет...

Ивано++
21.08.2013, 14:33
Посмотрел - class.tslib_menu.php

К сожалению так не пройдет...
С ним с этим классом - там слишком много всего, что заточено под именно pages ...

dmartynenko
21.08.2013, 14:45
Задача то тривиальная если смотреть просто как на выборку родительских записей. А в меню по страницам столько всего учитывается... ссылки, точки монтирования, права доступа и т.п.

Сделайте свой сObject и запилите там выборку :)

По идее, нужно только настроить задание в каком поле храниться uid родителя. И это точно не поле pid, потому что оно "page id", а не "parent id". Хотя для таблицы pages получается и то и другое одновременно.

Ивано++
21.08.2013, 15:23
Задача то тривиальная если смотреть просто как на выборку родительских записей. А в меню по страницам столько всего учитывается... ссылки, точки монтирования, права доступа и т.п.

Сделайте свой сObject и запилите там выборку :)

По идее, нужно только настроить задание в каком поле храниться uid родителя. И это точно не поле pid, потому что оно "page id", а не "parent id". Хотя для таблицы pages получается и то и другое одновременно.

В общем пока оставлю эту затею...