
Převaděč do html Texy a problém s tagem EMBED
Zdravím vespolek,
řeším následující problém: redakční systém RS2 (aktuální verze), který obsahuje převaděč html Texy. Při vytváření nové stránky a vložení specifického kódu, který obsahuje tag EMBED, převede Texy špičaté závorky <> na entity lt a gt, takže se EMBED zobrazí v prohlížeči jako text. Vypnutí Texy nepomůže.
Ví někdo, jak v Texy nastavit, aby bral EMBED jako běžný tag? Googlem jsem hledal, zkoušel různé rady, ale prostě se mi to vyřešit nepovedlo.
Děkuju.
Nešlo by ten embed nějak "obejít"?
bye-bye-embed
http://interval.cz/clanky/flash-a-nahrada-elementu -embed-elementem-object-v-xhtml/
Obejít asi ne - nejedná se o Google video, Youtube nebo podobně. Je to vygenerovaný výstup z notového programu Sibelius.
A je tam nějaký soubor fla, swf nebo tak?
Je tam soubor sib.
Psal jsem, že se nejedná o žádné flashové video...
zkousel jsi primo fórum RS2?
Do toho fóra jsem se díval, když jsem hledal řešení, dotaz jsem tam zatím nepoložil. Nejdřív jsem se obrátil sem. Protože ono to v podstatě nemá přímou spojitost s RS2. Je to spíš záležitost Texy.
tak zkus primo forum autora Texy
Jo, to zkusím...
Možná by se mělo říct, že to převádí na entity pouze prohlížeč Firefox. V Opeře i v IE to funguje normálně (odzkoušeno).
Co někde v souboru, na který se odesílá formulář v administraci při vkládání HTML, vložit něco jako:
% = Str_Replace("<","<",%);
% = Str_Replace(">",">",%);
Samozřejmě neumím tu syntaxi.
Možná spíš takto:
$promenna = Str_Replace("<embed>","<embed>",$promenna);
$promenna = Str_Replace("</embed>","</embed>",$promenna) ;
jinak by mu to nahradilo všechny < a > a kdyby měl třeba článek ve kterém by bylo toto:
foo <=> bar nebo cokoliv s tím znakem tak by mohl být problém.
To se mu v jiných prohlížečích nahradí stejně, tak by to uměl i FF.
Prostě < a > se v čánku nepíše
Ne, přišel jsem na to, že je to převedené na entity i v Internet Exploreru (pohledem do zdrojového kódu). Jediný rozdíl je v tom, že Firefox to s entitami zobrazí jako text (na obrazovce), IE to nezobrazí vůbec...
Hromadné zrušení entit pomoco Str_Replace, jak navrhuješ, by mělo negativní účinky na ostatní případy, kdy jsou entity opodstatněné.
A jak to, že IE ten plugin zobrazí když je to embed v entitách? Ale jak to replace napsal marekdrtic nevypadá špatně.
IE ten plugin zobrazí, ale to je všechno - nefunguje. Nenačte se zdrojový soubor, který si bere právě asi z toho EMBED.
Já udělal obrázky:
FF místo zdrojáku se zobrazí nějaký oznamovatel
Opera - entita
![[http://img140.imageshack.us/img140/7169/embedopera tr6.th.gif]](http://img140.imageshack.us/img140/7169/embedoperatr6.th.gif)
IE6 - entita
![[http://img140.imageshack.us/img140/4517/embedieer9 .th.gif]](http://img140.imageshack.us/img140/4517/embedieer9.th.gif)
Nejlepší vidím ty dva řádky, jak to napsal marekdrtic. Zkus to schválně.
Jo, je to tak, jak jsem psal výše:
Řešit to pomocí Str_Replace je hodně nesystematické, když přímo Texy umí nastavit, jak se mají tagy chovat, a které se mají povolit a které zakázat... Jen to neumím.
Pokud nikoho nic dalšího nenapadne, ještě zkusím přímo fórum Texy.
Pokud existuje někde nějaký seznam zakázaných tagů, prohledal bych adresář s RS2 na výraz embed a třeba by se něco našlo.
Není to v souboru texy.php ?
edit:// řádek 15 "('TEXY_BLOCK_ELEMENTS',serialize(array_flip(array( 'address','blockquote','caption'...
To je IMHOj jenom seznam blokových elementů. Pak tam je dále ještě seznam inline elementů atd... Jak jsem psal, zkoušel jsem to cpát všude a nic.
Myslíš, že jsem to neudělal? Udělal, zkoušel měnit všude možně, kde se mi zdálo, že by to mohlo být, ale nepodařilo se.
oprava překlepu (host)
Tak co řešíš?

Tak mě tam pusť a já zkusím přidat ty 2 řádky jestli to pak bude OK.
Dva řádky si umím přidat taky, ale když nevíš, jaký to bude mít dopad na další chování skriptu, tak je to riskantní zásah.
Na 99,999% vím, co to bude dělat, jde jenom o nahrazení textu ve stringu, o nic víc.
Diskuze se začíná ubírat jiným směrem než na co jsem se ptal...
Chování tagu EMBED (i jakýchkoliv jiných tagů) by mělo jít nastavit přímo v Texy, bez dalších zásahů do PHP kódu. A mě zajímá jak?
Tagy môžeš v Texy povoliť pomocou nastavenia $allowedTags (api-texy - niekde dole je aj príklad použitia).
Díky za reakci. Tuto stránku jsem také studoval, bohužel se mi nepodařilo $allowedTags implementovat *). Ale je to právě to řešení, které hledám.
*) v kódu není vůbec $allowedTags nikde uvedeno.
Skús to doplniť v admin/texy-admin.php napr. pod $texy->allowedTags['img'] = TEXY_ALL;
To jsem už myslím taky zkoušel.
Teď jsem to tam vložil, ale nemá to žádný vliv. U embed to pořád převádí závorky na entity. Asi něco dělám blbě.
A nemá se doplnit do texy.php další řádek ve stylu:
class TexyallowedTags extends TexyModule{var$allowed=...
?
Teď nerozumím. V texy.php je toto:
já tam mám tohle
řádek 38
admin\texy\texy.php
Pro mě je důležitý, co tam mám já.
Asi mám jinou verzi a každý píšeme o něčem jiném.
verze: RS2 RC 5.3
Texy! version 2.0 Beta 2
Revision: 148
Date: 2007/07/20 03:53:12
Jéééé já asi koukám do jiného adresáře
Texy! Version 1RC (2005/7/22+)
Nojo, teď mám také jako ty, ale nemám ty adresáře (RC2-rc52).
Vyzerá to tak, že v Texy je definované, aké podelementy môžu obsahovať jednotlivé elementy. Predpokladám, že keby si použil element embed mimo elementu object, tak by to nezmenilo na entity.
Kód Texy v RS2 je zhustený, ale dá sa tam nájsť takáto konštrukcia:
Skúsil by som do toho druhého poľa pridať 'object'=>1. Je to len taký výstrel, ale mohlo by to pomôcť.
Děkuju za tip.
Teda to už začíná být drsný.... v kódu jsem to našel, upravil, nahrál na server.... a nic.