Starší komentáře ke článku: Dynamické nahrazování textu

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Petr

Datum vložení: 9.2.2006 17:09:19

Nad něčím takovým jsem přemýšlel už delší dobu, takže díky za řešení ;)

Avatar

Autor komentáře: Fedor Tirsel

Datum vložení: 9.2.2006 23:09:34

Zdravim... sem-tam vyuzijem riesenie aj za pomoci FLASHu. Navod napriklad najdete tu: www.mikeindustries.com/sifr/

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 9.2.2006 23:18:57

Ovšem sIFR má oproti řešení popisovanému v tomto článku jednu podstatnou vadu - neobsahuje pojistku v podobě testování zobrazovacích schopností a konfigurace prohlížeče. Takže se může stát, že návštěvník webu používajícího sIFR nejen že neuvidí Flash nadpisy, on neuvidí vůbec nic, nebo maximálně čtverečky s křížkem v rohu. To se v případě zde popisované metody založené na JIR nemůže stát ;-)

Avatar

Autor komentáře: Martin Hložek

Datum vložení: 10.2.2006 12:19:43

Tuto připomínku jsem nějak nepochopil - vždyť sIFR nahrazuje flashem elementy, které již existují. Při vypnutém JavaScriptu k nahrazení nedojde - tudíž je vidět text standardním fontem, taktéž testuje přítomnost flashe a pokud flash neexistuje také element nenahradí. Lze otestovat např. na http://uvitacitony.cz/podminky.html - sIFRem jsou dělané nadpisy odstavců. Pokud vypnete JavaScript nebo Flash uvidíte obyčejné nadpisy úrovně h4.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.2.2006 12:36:58

Představte si situaci, kdy uživatel má zapnutý JavaScript, má i Flash player, ale Flash jako takový se nestahuje - pak to dopadne takto: http://interval.cz/podklady/rosenberger/1265/sifr.png Tento problém jsem diskutoval již mnohokrát, takže dodám jen tolik, že prohlížeč je "čistý", v defaultním nastavení po instalaci.

Avatar

Autor komentáře: mmm

Datum vložení: 10.2.2006 13:58:33

To vypada na dost expremni pripad a stejne tak je mozne namitnout, ze se nadpisy nezobrazi, pokud se nestahuji jen obrazky linkovane z CSS.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.2.2006 14:07:24

Právě že to není extrémní, ale zcela běžný případ. A pokud se nestahují obrázky linkované z CSS, text se zobrazí, to je ten rozdíl ;-)

Avatar

Autor komentáře: talbot

Datum vložení: 11.2.2006 11:21:35

Ktore nadpisi myslite? http://talbot.fossilgroup.net/zber/ktere_nadpisi.png

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 11.2.2006 12:17:42

Myslím, že nejlépe je to vidět na testovací stránce sIFR - http://interval.cz/podklady/rosenberger/1265/sifr-test-page.png (http://www.mikeindustries.com/blog/files/sifr/2.0/)

Avatar

Autor komentáře: Sqee

Datum vložení: 13.2.2006 14:36:33

Můžete mi prosím vysvětlit, proč by se neměl Flash stahovat?

Avatar

Autor komentáře: mysza

Datum vložení: 10.2.2006 10:48:57

slo by to i v asp, pripadne asp.net? dik

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.2.2006 11:17:05

Samozřejmě ;-)

Avatar

Autor komentáře: Zdenda

Datum vložení: 10.2.2006 11:45:57

[b]ad asp[/b]: Dělat to v asp by byla asi zrůdnost ... podpora práce s obrázky, potažmo streamy nulová... [b]ad asp.net[/b]: O podobných věcech už se tady na intervalu psalo. Jedna z cest by zřejmě vedla přes User Control s vlastnostmi jako velikost písma, barva pozadí, font či rodina fontů a třeba 3p dalších... a zdroj obrázku by byla nějaká funkce, handler (je asi 10 možností, bohužel nejsem programátor, který by řekl co je nejsprávnější)...jen jsem nakoukl do dokumentace dotNet Framework 2.0 a je tady zajímavá třída fontcollection s metodami IsFontAvailable, AddFontFile a tuny dalších nepotřebností - jistě víte, jak to využít v příkladu. [b]php vs asp.net[/b]: Na tomto příkladu je bezvadně vidět, jaký je php bastl - prostě si najdu partu funkcí, které kolem mě poletují bez většího řádu a šikovně je na sebe naroubuju. Za rok vyjde nová verze php a já své řešení zahodím, protože zpětná kompatibilita a bastl nejdou dohromady.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.2.2006 11:54:18

Malý detail pro upřesnění celkového obrazu - v ASP.NET lze používat i PHP ;-)

Avatar

Autor komentáře: mn

Datum vložení: 13.2.2006 14:52:48

To by mě teda zajímalo jak :-O

Avatar

Autor komentáře: DavesMan

Datum vložení: 17.2.2006 11:31:40

Možná myslel odkaz na jiný server, popř. využití PHP jako procesu (něco jako exec), ale nevím, jestli toto v .NET jde (resp. je dovoleno), nedělám v něm.

Avatar

Autor komentáře: Finwe

Datum vložení: 10.2.2006 17:12:58

Postup pěkný, ale přístupnosti se moc nedrží - mám-li aktivní JS a nenechám zobrazovat obrázky, nevidím nadpisy. To by šlo řešit drobnou úpravou JS a speciáním CSS... Dal jsem si to za úkol;)

Avatar

Autor komentáře: myf

Datum vložení: 14.2.2006 11:11:04

Zvláštní, já při vyplých obrázcích (a zaplém JS) textové nadpisy vidím; od toho je tam ta kontrola načtení 1px obrázku. Pokud vidíte "slepé" obrázky tak je buď něco špatně právě v tomto skriptu nebo ve způsobu kterým ty obrázky zakazujete. (?) Ale máte pravdu že by stejný úkol šel řešit bez PHP pouze přes JS a CSS, ale neobešlo by se to bez poměrně velkého množství "zbytečného" (byť dodatečně generovaného) markupu (jak bylo popsáno v úvodu článku). Ale i tak by to mělo proti server-side řešení své výhody ; )

Avatar

Autor komentáře: zirafka

Datum vložení: 11.2.2006 19:04:48

Tento postup mě nadchl a tak jsem se hned pustila s chutí do díla, ale.... Mám problémy s češtinou při generování obrázku pomocí PHP skriptu. (používám apache na Linuxu). Snažím se zjistit jak to vyřešit ve skriptu, nebo jestli je problem ve fontu, ale stále na to nemůžu přijít. Máte někdo podobný problém? Můžete mi dát odkaz na jeho řešení, nebo se se mnou spojit? kontakt: zirafka(at)zirafka(dot)cz icq UIN: 228013929

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 11.2.2006 19:33:06

Byl bych rád, pokud by se řešení problému publikovalo zde na Intervalu ;-)

Avatar

Autor komentáře: stip

Datum vložení: 13.2.2006 19:06:33

Navrhoval bych následující řešení, které mi funguje (zkoušel jsem na www.webzdarma.cz). Prostě nahradíte například text: <h3>Náš Synek</h3> textem: <h3>Náš Synek</h3> a při fontu, který obsahuje české znaky to funguje. Pokud by se text do stránky vkládal pomocí formuláře (např. v nějakém blogu) bylo by snadné vytvořit funkci, která nahradí všechny znaky v nadpisech s diakritikou za entity podle konverzní tabulky. Třeba pomocí regulárních výrazů, nebo pomocí funkce Ord (PHP).

Avatar

Autor komentáře: stip

Datum vložení: 13.2.2006 19:32:42

se omlouvám, že jsem se ve svých úvahách tak rozpovídal, ona ta funkce na překlad textu do entit ve všech jazycích a tedy i PHP určitě už existuje (htmlentities() např.) takže netřeba ji tvořit :o) ... no, to se mi stává jendou za dvacet let.

Avatar

Autor komentáře: Plaváček

Datum vložení: 12.2.2006 7:53:40

Pokud písmo obsahuje české znaky, neměly by se vyskytnout žádné problémy. Viz http://klient.plavacek.net/fonty/.

Avatar

Autor komentáře: Andrew

Datum vložení: 12.2.2006 9:36:05

Právěže jenom *neměly*. Problém je v tom, že od jisté verze (5?) textové funkce GD knihovny změnily kódování z ISO-8859-2 na UTF-8. Takže musíte do imagettftextu poslat text v UTF-8, jinak vám to diakritiku zobrazí špatně.

Avatar

Autor komentáře: zirafka

Datum vložení: 12.2.2006 21:53:58

právě, že jsem české znaky zapsala v utf-8, ale stejně to nefunguje. Vypadá to tak, že GD si interně znaky převádí do iso1. Zkoušela jsem to tak s několika písmy. I s takovými, které na http://www.dafont.com/ zobrazovali české znaky dobře. možná bych se jich měla zeptat jakou verzi GD a jaký skript používají (-;

Avatar

Autor komentáře: Jakub Klouzal

Datum vložení: 12.11.2007 12:06:05

to na plavackovi ale neni Sifr jde o nahradu textu obrazky ktere generuje php, problém s češtinou v sifru mam take pokud jste ho prosím někdo vyřešil dejte mi vědět díky moc kuba.

Avatar

Autor komentáře: herry

Datum vložení: 11.2.2008 10:18:34

já taky ne...

Avatar

Autor komentáře: myf

Datum vložení: 14.2.2006 11:37:44

podle funce innerText() soudím, že nadpis typu <h1>Nějaký <del>nadpis</del> <ins><em>sémanticky formátovaný</em> text</ins></h1> tím přeobrázkovaním asi něco informace pozbyde (?)

Avatar

Autor komentáře: stip

Datum vložení: 26.2.2006 12:59:50

Mám problém v MSIE při použití tohoto skriptu. Jde o to, že když změním styl stránky (společně s fontem a velikostí generovaného písma), tak si prohlížeč uchová původní velikost obrázků do kterých resampluje nově generované. Výsledkem je pak nevzhledné zubaté písmo. Jde to nějak řešit? Firefox tohle nedělá, ale zase občas zobrazí původní obrázek, nebo zahlásí chybu. Jedině Opera funguje bezchybně.

Avatar

Autor komentáře: Jura.z.Brna

Datum vložení: 5.8.2008 22:15:45

Použil jsem na to takovou kličku. IE obrázek znovu načte v tomto případě pouze, pokud se změní jeho adresa. Řádek č. 89 v replacement.js (zde se vytváří text odkazu, kterým bude daný prvek nahrazen) jsem tedy doplnil o "&tag=nahodne_cislo", čímž se pro IE obrázek vždy tváří jako jiný. Celý řádek: var url = items[i].url + "?text="+escape(tokens[k]+' ')+"&selector="+escape(items[i].selector)+"&tag="+Math.ceil(Math.random()*6000);

Avatar

Autor komentáře: Budvar

Datum vložení: 20.1.2008 9:32:19

Ještě bych dopnil, že s truetype fontem, mě čeština valila až s tímhle... function toUTF8($s) { $czUTF8=array("á"=>225,"č"=>269,"ď"=>271,"é"=>233,"ě"=>283,"í"=>237, "ĺ"=>314,"ľ"=>318,"ň"=>328,"ó"=>243,"ř"=>345,"š"=>353,"ť"=>357, "ú"=>250,"ů"=>367,"ý"=>253,"ž"=>382,"Á"=>193,"Č"=>268,"Ď"=>270, "É"=>201,"Ě"=>282,"Í"=>205,"Ĺ"=>313,"Ľ"=>317,"Ň"=>327,"Ó"=>211, "Ř"=>344,"Š"=>352,"Ť"=>356,"Ú"=>218,"Ů"=>366,"Ý"=>221,"Ž"=>381); for($i=0; $i<strlen($s); $i++) { if ($czUTF8[$s[$i]]) $out.=sprintf("&#%d;",$czUTF8[$s[$i]]); else $out.=$s[$i]; } return $out; } viz. http://www.builder.cz/art/php/clanek913373996.html

Zpět na článek | Úvodní stránka Interval.cz