Autor Zpráva
niCe
Profil
Ahoj,
Mějme dlouhé slovo nejpopulárnější (je to jen příklad, nikoliv skutečně použité slovo).
tohle slovo potřebuju zkrátit, dělám to pomocí php funkce substr(slovo, 0, 10).
Na stránce pak skončí jen nejpopulár....
No ale vyhledávače pak nenajdou můj web na slovo nejpopulárnější, ale zato jej najdou na slovo nejpopulár.
Co byste mi poradili?
Jak jinak udělat zkracování slov tak, aby na původní nezkrácenou verzi slova byly stránky k nalezení? Lze doplnit (v tomto případě k tagu p) atribut alt, který nese celé nezkrácené slovo?

Díky za nápady. Pěkný den,
niCe
Railbot
Profil
ze doplnit (v tomto případě k tagu p) atribut alt, který nese celé nezkrácené slovo?
Alt je alternativní text k obrázkům a jejich atribut, nikoli nějakého odstavce. Celé slovo můžeš dávat do titlu. U vyhledávačů ti to ovšem nepomůže.
quinux
Profil
niCe
Tak asi by bylo vhodné uvést důvod proč ty slova zkracuješ? Osobně to chápu jako omezení délky textu v seznamu článků, ale to je pak nezkrácená verze slova v detailu daného článku. Pokud to zkracuješ jinde, tak by bylo lepší se zamyslet nad tím jestli by nebylo možné daný text zkrátit až na konci slova a nikoliv uprostřed, ostatně to bude i lépe vypadat :)
niCe
Profil
Railbot
k, díky.

quinux
Ano, ve výpisu v seznamu, kde mám 3 <div>y vedle sebe na řádku, mají pevnou šířku cca 120px a v php to tedy zkrátím na dejme tomu 20 znaků. Plus tam mám tedy title a po klinutí se otevře obsah, kde je celé slovo. Jistě by i šlo to zkracovat jen v místě mezery, ale hrozím se (jak výstižné slovo :) toho, že vznikne něco jako "Parkovné..." namísto "Parkovné zlevn...", odkud lze alespoň částečně zjistit, o čem to je. Ikdyž je to nejspíš na nic. V každém případě díky za radu.

Takže pravděpodobně jediným řešením bude nezkracovat. Kdysi jsem někde četl o vlastnosti css overflow:xxx, která měla stejnou funkci jako overflow:hidden, ale zobrazila tam ty 3 tečky. Ale šlo to jen v IE6 a výše. Netuším co s tím a tápám nadále.
Gappa
Profil
nebylo to "overflow", ale "text-overflow: ellipsis" z CSS 3, který náhodou IE6 a 7 umějí - velice užitečná věcička, která by si zasloužila širší podporu.

Napadá mě pak třeba to zkracování ošetřit tak, aby se vždy ty 3 tečky udělaly za slovem a ne v půlce slova a zbytek článku dát do elementu, který bude přes CSS skrytý, ale to je dost prasárna a osobně bych to nedělal :) Krom toho by měl mít daný článek detail, kde právě celý text bude.
quinux
Profil
niCe
Ano, ve výpisu v seznamu,
Tak v tom případě bych se tím až tolik nezabýval, protože to slovo bude pak v detailu článku, tudíž bude zaindexováno správně.

Problém bych, ale stejně viděl v tom dělení slova, ale na tohle by lépe odpověděl některý z přítomných "češtinářů". Myslím, že 1) dělení slova by minimálně mělo podléhat nějakým pravidlů (tzn. slovo "zlevněné" usekneš podle nějakých pravidel - třeba jako, když půlíš slovo na další řádek - a né jak se ti zlíbí) a nebo za 2) bys opravdu slova neměl dělit vůbec.

Vím, že "kdysi" jsem to řešil stejným způsobem jako ty, prostě text omezit na 300 znaků a kde se usekne tam se usekne, ale přišel klient, kterému to hodně vadilo, že to nevypadá dobře a pokud si dobře vzpomínám, tak to odůvodňoval i pravidly českého praopisu.
niCe
Profil
Gappa
Však říkám, že jen IE6 a výše. Ale netuším teď jak to bylo s FF a Operou. Rozhodně s tebou souhlasím, že taková věc by si podporu opravdu zasloužila.
Ten tvůj nápad není zas až tak špatný. Asi to alespoň vyzkouším, ale aby mi tam nevzniklo něco jako "Jedna dva... tř". Jediná nevýhoda je v tom, že ty tři tečky rozdělí ta slova "dva tři", na které chci být vyhledáván. V každém případě děkuji za pomoc.

quinux
Jistě, v tom detailu bude. Jenže ono je to složitější. V tom výpisu se mi totiž některá slova opakují, čímž chápeš můj záměr - zvýšit hustotu toho slova :) No jenže když jsou useknutá, tak tam mam třeba desetkrát "Jedna dv...", což je vlastně zahozený text.

S těmi pravidly je to pravda, ale dělat algoritmus na dělení slova je dosti náročné :) Jedině dělit tam, kde je mezera, tedy vlastně slova nedělit, přestat tam kde končí poslední slovo. Ale v tomhle případě by mi mohlo vzniknout klidně "Jedna...", což je opět zase (jak jsem psal výše) ten "zahozený text", kterému nechci zvyšovat hustotu. A navíc se v tom ani návštěvník pak nevyzná.

Já osobně si myslím, že to tak řeší skoro všichni a i na seriozních serverech (včetně anglických), takže pravidla jdou mimo. Pokud se to doplní atributem title, pak je to pro návštěvníky pohodlné. Jenže vyhledávače to nepochopí.
Osobně si myslím, že by byl vhodný nějaký atribut (popř. stávající title), který by vyhledávač porovnal s tím co je uvnitř tagu a v případě, že by rozpoznal to zkrácené slovo, tak by jej nahradil slovem celým. Ale to chci asi moc :)

Díky za odpovědi, pěkný den,
niCe
Gappa
Profil
niCe

To jsem tam zapomněl dopsat :) FF a Opera v současných verzích neumějí.

Edit: Na seriozních webech se to řeší perexem, tedy krátkým úvodním textem :)
Kamil V
Profil
niCe
mají pevnou šířku cca 120px a v php to tedy zkrátím na dejme tomu 20 znaků

Myslím, že se dá těžko porovnávat šířka v pixelech a počet znaků.
Třeba 20x písmeno I je určitě jinak široké než 20x písmeno H.
Pokud tedy ten web nesázíš v Courieru :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0