PDA

Просмотр полной версии : формирование меню, а затем добавление к нему дополнительных тэгов


Vladimir_
03.10.2006, 17:08
тема перекликается с темой http://www.typo3.biz/showthread.php?t=1839
ещё раз всем добрый день!!!
задача по фомированию меню более менее решена, следующий шагом, как выяснилось, требуется, что бы после сформированного меню (строки таблицы), подставлялась ещё одна строка таблицы с двумя картинками, одна из которых должна зависеть от того какой пункт меню (в предыдущей строке таблицы) был выбран пользователем, т.е. в зависимости от параметров адресной строки, где
http://mydomain.ru/index.php?id=чемуто

а получаемый код вместе с меню
<table>
<tr><td>пунктменю1</td><td>пунктменю2</td><td>пунктменю3</td><td>пунктменю4</td><td>пунктменю5</td><td></td>пунктменю6</tr>
<tr><td colspan="6"><img src="/images/image1аздесьцифиркаравнаяid.jpg"><img src="/images/image2.jpg"></td></tr>
</table>

т.е. код typoscript должен выглядить видимо так
subparts.MENU = HMENU
subparts.MENU.1 = TMENU
subparts.MENU.1.NO {
doNotShowLink = 1
subst_elementUid = 1
allWrap = <td style="color: #FFFFFF;"><a href="?id={elementUid}"><img src="fileadmin/images/menu/m{elementUid}.jpg" id="m{elementUid}" onmouseover="document.images['m{elementUid}'].src='fileadmin/images/menu/m{elementUid}_.jpg';" onmouseout="document.images['m{elementUid}'].src='fileadmin/images/menu/m{elementUid}.jpg';" border="0"> | </a></td>
stdWrap = <td>a</td>
}
а после это кода, код, который отслеживает параметры строки, в частности id и формирует ещё одну строку таблицы, т.е. видимо
чтототам.stdWrap = <tr><td colspan="6">тэги для картинок</td></tr>

вот как должна выглядить последняя строка?

П.С.: дико извиняюсь за такие вопросы, но надеюсь мне помогут как и всем тем кто будет искать ответы в дальнейшем

Vladimir_
09.10.2006, 17:35
быть может, проблема решается через подобный код в шаблоне
<img src="m<--! ###THIS_ID### -->.jpg">
но(!) поясните пожалуйста, как тогда правильно должна выглядеть эта строка

PhilD
09.10.2006, 18:18
если я правильно понял, то
1. после выбранного пункта меню должна отображаться специфичная для пункта меню картинка? - тогда решается через свойства Act
2. брать картинки из приаттаченных к странице (в предыдущей теме намекали) что-то мешает?

Pavel Antonov
10.10.2006, 01:48
Очень много и сложно пишите... трудно понять что хотите...

Насколько я понял Вам нужен ID-текущей страницы.

Это можно сделать так:

10 = TEXT
10.data = TSFE : id
10.wrap = <img src="im|.gif" alt="image" />
Замечание: Для подстраниц работать не будет. Лучше воспользоваться еще одним меню (HMENU) и сконфигурировать ACT. Получится гибче.

Vladimir_
10.10.2006, 12:44
мне казалось что я может и сложно, но зато полно изложил суть проблемы.. прошу прощения за сложность
на самом деле, картинку нужно подставлять _после_всего_ меню и в зависимости от выбранного пункта меню
т.е. есть таблица, в которой первая строка содержит меню, а вторая сождержит ту самую картинку, о которой идёт речь
сейчас есть такой код

subparts.MENU = HMENU
subparts.MENU.1 = TMENU
subparts.MENU.1.NO {
ATagBeforeWrap = 1
doNotShowLink = 1
subst_elementUid = 1
allWrap = <td style="color: #FFFFFF;"><a href="?id={elementUid}"><img src="fileadmin/images/menu/m{elementUid}.jpg" id="m{elementUid}" onmouseover="document.images['m{elementUid}'].src='fileadmin/images/menu/m{elementUid}_.jpg';" onmouseout="document.images['m{elementUid}'].src='fileadmin/images/menu/m{elementUid}.jpg';" border="0"> | </a></td>
}
subparts.MENU.1.ACT = 1
subparts.MENU.1.ACT {
subst_elementUid = 1
doNotShowLink = 1
allWrap = <td style="color: #FFFFFF;"><a href="?id={elementUid}"><img src="fileadmin/images/menu/m{elementUid}a.jpg" border="0"> | </a></td>
}

и вот каким должен быть код, что бы к свормированному вышеуказанным кодом меню прицепилась строка <tr><td><img src="fileadmin/images/menu/m{elementUid}h.jpg"></td></tr> не знаю

PhilD
10.10.2006, 13:32
как и советовал павел - делаете еще одно меню прямо следом, No устанавливаете пустым, Act - как у вас только без линка.

Vladimir_
11.10.2006, 12:13
всё это конечно хорошо.. правильные слова.. согласен
в php у нас была бы переменная $_POST["id"] и мы бы лекго решили бы поставленную задачу
но, наверное всё таки новичкам (к коим я себя отношу) в typoscript этот вопрос не так лекго решить
и к сожалению, я вынужден просить вас о помощи, так как второй день экспериментов, только ещё больше меня запутал
в общем и целом вопросы такие
1. почему нельзя реализовать это через <img src="m<--! ###THIS_ID### -->.jpg"> прямо в html шаблоне? если всё же можно, то как правильно должна выглядить строка?
2. если вопрос 1 отпадает за счёт своей глупости, то прошу приянть посильное участие в решении поставленной задачи по отображению картинки сразу и в зависимости от меню, потому как ничего умнее чем

subparts.PAGE_HEADER = HMENU
subparts.PAGE_HEADER.1 = TMENU
subparts.MENU1.1.NO {
ATagBeforeWrap = 1
}
subparts.PAGE_HEADER.1.ACT = 1
subparts.PAGE_HEADER.1.ACT {
subst_elementUid = 1
doNotShowLink = 1
allWrap = | <img src="fileadmin/images/menu/m{elementUid}a.jpg" border="0">
}

у меня не получается :(

Pavel Antonov
11.10.2006, 12:34
перечитайте еще раз все написанное вам... там есть решение и первым и вторым способом!

Vladimir_
11.10.2006, 13:03
по поводу первого.. вы об этом?

Насколько я понял Вам нужен ID-текущей страницы.
Это можно сделать так:
10 = TEXT
10.data = TSFE : id
10.wrap = <img src="im|.gif" alt="image" />

ваши же слова...
Замечание: Для подстраниц работать не будет.
либо в них какой то смысл которого я не понимаю, либо всё таки это не лучшее решение.. поясните

и кстати, почему же всё таки нельзя использовать <!-- ###THIS_ID### --> или просто никто не использовал / не знает ?

по поводу второго... вы об этом?
Лучше воспользоваться еще одним меню (HMENU) и сконфигурировать ACT. Получится гибче.
вы же обратили внимание что я привёл код этого самого "ещё одного меню" и пока что ничего не получилось, а также я сказал что второй день поисков только ещё больше запутал ситуацию
если бы мне удалось решить этот вопрос я бы не стал просить о помощи, а просто привёл решение для всех остальных кто столкнётся с подобной проблемой, но пока, я самостоятельно, ни на йоту не стал к решению ближе

PhilD
11.10.2006, 14:44
и кстати, почему же всё таки нельзя использовать <!-- ###THIS_ID### --> или просто никто не использовал / не знает ? Потому что шаблон - это просто кусок HTML-кода. и он никаких переменных не знает и знать не может. а парсер шаблона просто берет кусок между метками и заменяет его =>

subparts.THIS_ID_IMAGE = TEXT
...далее по решению Павла

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

Vladimir_
11.10.2006, 14:58
хм.. расшифруйте тогда что в TSRef означает
Common markers
...
###THIS_ID###: Set to the current page id
...

и.. да, вы правы, что то я стормозил с id страницы, этот вариант всё равно не подходит

однако, попытка использоть доп.меню, пока что то также не увенчалась успехом... к сожалению
обратите внимание на пост номер 7, вроде бы, это то что мне посоветовали здесь... или нет? что в нём не правильно?

void
11.10.2006, 16:06
Вы видели, в каком разделе TSRef'a это находится? Это в описании fe_adminLib.inc, которую, я думаю, вы не используете.

Vladimir_
12.10.2006, 17:41
спасибо за комментарий
однако же задачка с картинкой всё ещё актуальна

PhilD
12.10.2006, 20:11
У ваc cколько уровней вложенности? два?

10 = TEXT
10.data = leveluid:1

выводит id 1-го уровня в rootline

Vladimir_
13.10.2006, 15:46
огромное спаисбо!!!
всё замечательно работает

subparts.PAGE_HEADER = TEXT
subparts.PAGE_HEADER {
data = leveluid:1
wrap = <img src="fileadmin/images/menu/m|a.gif" border="0">
}