Как да вградите HTML карта на изображения в TYPO3 с функционалност typolink / realURL?

Контекстът:

Трябва да вмъкна карта на изображение в страница в TYPO3 6.1.

Тъй като EXT:imagemap_wizard не работи в момента в 6.1, мога да създам картата на изображението офлайн и след това да я вмъкна чрез типа съдържание HTML.

Въпросът:

Би било хубаво да можете просто да напишете вътрешните URL адреси в HTML, но да извеждате реални URL адреси. Може ли полето за тип "HTML" да бъде предадено през анализатора, който изобразява URL адреси?

Така че

<area shape="rect" href="/bgindex.php?id=55" coords="6,153,189,231" alt="">

ще се изведе като

<area shape="rect" href="/bg/my/realurl/" coords="6,153,189,231" alt="">

Или има друг начин? Може би да поставите HTML в течен шаблон и да му кажете да изобрази всеки URL адрес, който намери в шаблона?


person Urs    schedule 17.01.2014    source източник
comment
Въпросът е по-скоро академичен, отколкото спешен, но би било интересно да се знае дали е възможно.   -  person Urs    schedule 17.01.2014


Отговори (2)


Простият подход с parseFunc_RTE не работи, защото трябва да действаме спрямо атрибута. И така, този код е тестван с css_styled_content TYPO3 6.1. Така че, просто използвайте функцията тагове:

# we parse the HTML, but we only focus on tag *area*
# i created an COA, because IMHO it is easier to maintain.
# i guess, it would be possible in a few lines only, but i did not tested that
tt_content.html.parseFunc.tags.area = COA
tt_content.html.parseFunc.tags.area {
 wrap = <area |/>
 20 = TEXT
 # all attributs are loaded into parameters array
 20.data = parameters:shape
 20.noTrimWrap = | shape="|" |
 30 = TEXT
 30.typolink.parameter.data = parameters:href
 # we only need the URL, not the full link
 30.typolink.returnLast = url
 30.noTrimWrap = | href="/bg|" |
 40 = TEXT
 40.data = parameters:coords
 40.noTrimWrap = | coords="|" |
 50 = TEXT
 50.data = parameters:alt
 50.noTrimWrap = | alt="|" |
}

# for testcase, create TS-Template with css_styled_content included
# and create html-record on that page in column 0
page = PAGE
page.10 < styles.content.get
person maholtz    schedule 11.03.2014
comment
Фантастично! Благодаря много. Приложих го успешно. Мисля, че ще отворя нов въпрос Как да вмъкна карта на изображение в TYPO3, за да може да се намери по-лесно - искате ли да публикувате и вашето решение там (за да мога да го приема)? - person Urs; 12.03.2014
comment
Вашето действително заглавие е много по-добро - става въпрос за типолинкове в HTML-полета. IMHO не трябва да отваряте нов въпрос. Не можете ли просто да промените заглавието, ако смятате, че е необходимо? - person maholtz; 12.03.2014
comment
Хм, както казахте, вие ми спасихте деня! :-) Харесва ми, когато намерите урок за stackoverflow. Ще сменя заглавието. Както и да е, добавих вашето решение към forge.typo3.org/issues/53263, което е доста годен за гугъл - person Urs; 12.03.2014

Ако анализирате обекта HTML-Content чрез lib.parseFunc, можете да използвате -Tag, който ще създаде връзки към типа. С инсталиран realurl получавате URL адресите, които искате:)

Обектът HTML-Content ще бъде изобразен (с css_styled_content) чрез tt_content.html.

Така че добавете

  tt_content.html.parseFunc < lib.parseFunc_RTE

Към вашия HTML обект и поставете във вашето съдържание LINK-Tag:

  <area shape="rect" href="/bg<link>55</link>" coords="6,153,189,231" alt="">

IMHO не е академичен въпрос, винаги трябва да използвате typolinks :)

person maholtz    schedule 17.01.2014
comment
Звучи страхотно! Но lib.parsefunc entity-кодира таговете ‹map› и ‹area› (но не ‹img›). Опитах да задам tt_content.html.parseFunc.allowTags = area,map,img или tt_content.html.parseFunc.allowTags:=addToList(area,map,img), но все още нямам успех - person Urs; 18.01.2014
comment
не, не променяйте самия parseFunc, просто го използвайте. Той ще анализира вашия HTML-обект и ще създаде връзка към страница 55, ако имате ‹link›55‹/link›. Ако realurl е активиран, вие го получавате чрез /path/to/site/ - person maholtz; 20.01.2014
comment
Проблемът е, че извежда следното: &lt;map name=&quot;image_map&quot;&gt; &lt;area shape=&quot;rect&quot; href=&quot;&lt;link&gt;55</link>&quot; coords=&quot;6,153,189,231&quot; alt=&quot;&quot; /&gt; &lt;/map&gt; <img src="images/css_imagemap.png" alt="" usemap="#image_map" width="1043" height="871"> - person Urs; 20.01.2014
comment
Така че parseFunc (без настройките allowTags, споменати по-горе) прави някаква htmlescape или подобна трансформация на етикетите за карта и област, която не трябва да прави. И дори не анализира връзката към типа, току-що забелязах --- какво може да е това? Някаква предишна настройка го обърква? - person Urs; 20.01.2014
comment
о, съжалявам, lib.parseFunc_RTE трябва да е правилният избор... можете ли да опитате това? - person maholtz; 20.01.2014
comment
Без настройка на allowTags, parseFunc_RTE просто избягва целия код. Ако задам tt_content.html.parseFunc.allowTags:=addToList(area,map,img)- тогава той приема таговете map и img (напредък!) - но все пак избягва етикета за област, без да анализира typolink. Ако вместо това използвах течен шаблон за същия код, ще има ли възможност да се приложи друг анализатор, който може би е по-малко строг? - person Urs; 21.01.2014