PDA

Просмотр полной версии : Как сделать про линк без текста?


thebat
14.10.2010, 19:46
Привет!

Мне нужен линк без текста..., а именно сам тег <a>

Написал такой TYPOSCRIPT:

10 = COA
10 {
10 = CONTENT
10 {
table = tt_content
select {
pidInList = 1
selectFields = image_link
}
renderObj = COA
renderObj {
5 =TEXT
5.typolink.parameter.field = image_link
}
}
}

На выводе имею:

<a href="http://www.domen.com/" title="www.domen.com/" target="_blank" class="style">www.domen.com/</a>

А мне нужно просто:

<a href="http://www.domen.com/" title="www.domen.com/" target="_blank" class="style"></a>

Как это сделать с помощью typoscript'a?

Пробовал разные варианты..., к примеру такой:

5 = TEXT
5.value =
5.typolink.parameter.field = image_link

..., но так и ничего не вышло.

Может у кого есть идеи на этот счет?

Спасибо!

-=UncleByte=-
15.10.2010, 01:06
Павел Антонов описывал построение xml для flash меню - там можно найти необходимый код. Создаем XML дерева страниц TYPO3 для Flash меню (http://codeline.richmd.ru/2008/05/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC-xml-%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%B0-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86-typo3-%D0%B4%D0%BB%D1%8F-flash-%D0%BC%D0%B5%D0%BD%D1%8E/)

thebat
15.10.2010, 02:48
Это ближе к тому что нужно, но не так как нужно ...
Вот что у меня вышло:

10 = TEXT
10.typolink.parameter.field = image_link
10.typolink.returnLast = url
10.noTrimWrap = |<a href="|" |
20 = TEXT
20.field = image_link
20.wrap = title="|"
30 = TEXT
30.field = image_link
30.wrap = target="|"
40 = TEXT
40.field = image_link
40.wrap = class="|"></a>

На выводе:
<a href="http://www.domen.com/" title="www.domen.com/ _blank style" target="www.domen.com/ _blank style" class="www.domen.com/ _blank style"></a>
..., а нужно так:
<a href="http://www.domen.com/" title="www.domen.com" target="_blank" class="style"></a>

Пока у меня нет решения...

Хочу добавить, что данные берутся из элемента контента.

-=UncleByte=-
15.10.2010, 06:38
А что хранится в поле image_link? Может быть стоит там хранить исключительно адрес ссылки, а не все атрибуты ее? Ну или, если по умолчанию только все вместе там лежит, split по пробелу использовать и потом уже оборачивать.

thebat
15.10.2010, 15:22
.... Ну или, если по умолчанию только все вместе там лежит, split по пробелу использовать и потом уже оборачивать.

Да, действительно все там лежит в месте ...url, title, target и class. Вот как в этом случае использовать "split" мне пока не ясно.

Может есть пример?

-=UncleByte=-
15.10.2010, 18:11
Пример из TSRef вполне сгодится, только вместо вместо перевода строки взять пробел и все. А дальше все по описанию stdWrap и ничего более. Еще можно посмотреть пример парсинга ul в setup css_styled_content.

20 = TEXT
20.field = bodytext
20.split {
token.char = 10
cObjNum = 1
1.current = 1
1.wrap = <TR><TD valign="top"><IMG src="dot.gif"></TD><TD valign="top"> | </TD></TR>
}
20.wrap = <TABLE border="0" cellpadding="0" cellspacing="3" width="368"> | </TABLE><BR>

thebat
15.10.2010, 19:46
Смотря на этот и другие примеры, до меня так и не дошло ..., что и как и почему...

В принципе это код:
5 = TEXT
5.value =
5.typolink.parameter.field = header_link

Выводит то что мене нужно
<a href="http://www.domen.com" title="domen" target="_blank" class="style">www.domen.com</a>

..., за исключением текста внутри тега <a>...

вот это в теге а www.domen.com мне не нужно.

Когда пишу вот так
5 = TEXT
5.value = &nbsp;
5.typolink.parameter.field = header_link

тогда имею на выводе это:
<a href="http://www.domen.com" title="domen" target="_blank" class="style">&nbsp;</a>..., а мне нужно что бы там было вообще пусто...

Как все таки удалить текст внутри тега <a>

<a href="http://www.domen.com" title="domen" target="_blank" class="style">здесь должно быть пусто</a>

..???

-=UncleByte=-
15.10.2010, 23:37
Ну вот опробовал такой вариант:
lib.test = COA
lib.test {
10 = TEXT
### получаем данные
10.data = DB:tt_content:20:image_link
### начинаем их разделять по пробелам
10.listNum.splitChar = 32
### берем первый элемент
10.listNum = 0
### и оборачиваем как нам нужно
10.noTrimWrap = |<a href="|" |
### копируем предыдущие действия
20 < .10
### берем второй элемент
20.listNum = 1
### и оборачиваем по-другому
20.noTrimWrap = |target="|" |
30 < .20
30.listNum = 2
30.noTrimWrap = |class="|" |
40 < .30
40.listNum = 3
40.noTrimWrap = |title="|"></a>|
}
В принципе неважно как получать данные, я на время эксперимента просто использовал одну и ту же запись.

thebat
16.10.2010, 13:48
Спасибо! :)

Действительно не важно...

Некоторые строки переписал и все выводит, то что нужно и в нужном порядке.
10.data = DB:tt_content:20:image_link
на
10.field = header_link
и еще это
10.noTrimWrap = |<a href="|" |
на это
10.noTrimWrap = |<a href="http://|" |
По скольку на выводе я имел не корректную ссылку
http://www.domen.com/www.domen.net
Еще хотелось бы понять некоторые строки..., а именно:
что означает цифра в этой строке?
10.listNum.splitChar = 32
..., и как эта цифра влияет на вывод данных?

-=UncleByte=-
16.10.2010, 17:59
Это смена символа разделителя для listNum. По умолчанию разделитель запятая, а в данном случае нам нужен пробел, в ascii код пробела 32.

thebat
20.10.2010, 10:35
Спасибо за разъяснение.

:) ... еще один довольно простой способ решить туже задачу
5 = TEXT
5.value = <!-- &nbsp; -->
5.typolink.parameter.field = header_link

-=UncleByte=-
20.10.2010, 16:52
В принципе вариант рабочий, но лишний код все-таки будет выведен, хотя если использовать что-то типа sourceopt, то он вычистит все комментарии.

thebat
22.10.2010, 01:25
Оба варианта хороши.

Один чистый и управляемый код выдает, а второй выдает лишний код, но очень прост.

В любом случае спасибо вам за направление.