[PHPBB] Jak zautomatizovat zkracování uživ. napsaný link?

Diskuze na téma implementace, provozování, správy

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod durbatuluk 23. 1. 2006 08:16

Zajímalo by mě jak na to,když mi do fóra někdo napíše příliš douhý link. Tak aby se mi forum kvůli tomu nerozšířilo tak jak to udělat aby semi automaticky zkratilo pridanim tecek napr. link
http://www.neco.cz/hdhdhsjhzjfhjgj5j45h ... 6fh74d56h/
zkratit na
http://www.neco.cz/hdhdhsjhzjfhjgj5...74d56h/
Hledam nejaky mod nebo tak neco nechci aby se mi ten dlouhy link dal na dalsi radek ale zkratil podle ukazky.Dekuji vsem a nashle.
PS: myslim ze to mate zrovna vy tuto funkci ci mod...

// Howard - upraven nazev
// mbing : Téma přesunuto ● z Programování do Redakční systémy, fóra, galerie.
durbatuluk
Junior

Odeslat příspěvekod 2ge 23. 1. 2006 10:14

co je na tom take tazke ? Ved si to napis sam - nadefinuj si maximalnu velkost, ak to linka presiahne, tak ju skrat, ze zoberes nikolko prvych znakov, potom pridas bodky a potom zopar poslednych znakov.
v bbcode.php to tusim je, urcite to najdes.
SubDownloader - stahuj a nahravaj titulky k filmom pomocou opensource programu z OpenSubtitles.org
2ge
Junior
Uživatelský avatar

Odeslat příspěvekod THOMAS 23. 1. 2006 10:20

túto funkciu napísal miho , skús mu napísať možno ti nejak poradí ...
THOMAS
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod Mike.M 23. 1. 2006 10:43

2ge píše:co je na tom take tazke ? Ved si to napis sam - nadefinuj si maximalnu velkost, ak to linka presiahne, tak ju skrat, ze zoberes nikolko prvych znakov, potom pridas bodky a potom zopar poslednych znakov.
v bbcode.php to tusim je, urcite to najdes.
Myslim ze tazatel mysli sve vlastni forum, ze tam kdyz mu lidi pisi, aby se mu to tam neroztahalo.
Zivot je kurevsky tezky.
Mike.M
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod 2ge 23. 1. 2006 10:56

Mike.M: ved to je jedno, ci sa jedna o phpbb, alebo vlastne forum, princip ostava. Myslim, ze toto zvladne aj zacinajuci programator.
SubDownloader - stahuj a nahravaj titulky k filmom pomocou opensource programu z OpenSubtitles.org
2ge
Junior
Uživatelský avatar

Odeslat příspěvekod miho 23. 1. 2006 18:17

2ge nebagatelizuj prosim situaci, jednoduse to vypada jen a pouze na prvni pohled... obzvlaste zabudovat to do phpBB je ponekud nesnadne. Pokusy o easy reseni zahy selhavaji :)

Ja jsem pouzil jako inspiraci fci nalezenou nekde na netu a podle ni to udelal. V bbcode.php :

za
Kód: Vybrat vše
   // Remove our padding..
   $ret = substr($ret, 1);


pridat
Kód: Vybrat vše
   
   if(strpos($ret,"<a href=")) $ret = preg_replace("/<a href=(.*?)>(.*?)<\/a>/ie", "(strlen(\"\\2\") > 65 && (!eregi(\"<\", \"\\2\") && !strpos( \"\\2\", \" \") )) ? '<a href='.stripslashes(\"\\1\").'>'.substr(\"\\2\", 0, 42) . '...' . substr(\"\\2\", -10).'</a>' : '<a href='.stripslashes(\"\\1\").'>'.soft_hyphen(stripslashes(\"\\2\"),120).'</a>'", $ret);


+ pridat fci

Kód: Vybrat vše
function soft_hyphen($text, $max, $char = "­")
{
$words = explode(' ', $text);
   foreach($words as $key => $word)
   {
       $length = strlen($word);
       if($length > $max)
           $word = chunk_split($word, floor($length/ceil($length/$max)), $char);
       $words[$key] = $word;
   }
   return implode(' ', $words);
}
[
Naposledy upravil miho dne 23. 1. 2006 21:05, celkově upraveno 1
miho
Hlavní administrátor
Uživatelský avatar

Odeslat příspěvekod 2ge 23. 1. 2006 18:25

tento kus kodu (phpbb) celkom dobre poznam, lebo som robil dost davno 2pu.net mail protector MOD.
Myslim si, ze je to dost zlozito spravene, ide v podstate tiez o to , co som hore pisal, akurat ze to "krajsie" odsekava slova. Som zvedavy, ci to tazatel implementuje, ak to nepojde do phpbb :)
SubDownloader - stahuj a nahravaj titulky k filmom pomocou opensource programu z OpenSubtitles.org
2ge
Junior
Uživatelský avatar

Odeslat příspěvekod czbios 23. 1. 2006 18:34

2ge píše:tento kus kodu (phpbb) celkom dobre poznam, lebo som robil dost davno 2pu.net mail protector MOD.
Myslim si, ze je to dost zlozito spravene, ide v podstate tiez o to , co som hore pisal, akurat ze to "krajsie" odsekava slova. Som zvedavy, ci to tazatel implementuje, ak to nepojde do phpbb :)
tvoje uvaha ma chybu, pokud budu chtit rozhodit design a budu pocitat že napříkald v nějaké jednoduchéé knize by mohl obýt právě regulární výraz ,který heldá všechny odkazy atd.. tak jednoduše odkaz napíšu jako text ;-) a ragulární výraz záhy selhává, kod sem co poslal miho nezkoumal , ale myslím že zalamuje i slova neb ojak toje dělané :)
czbios
Junior
Uživatelský avatar

Odeslat příspěvekod Vebloud 23. 1. 2006 20:21

Na zalamování slov ti stačí wordwrap.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod miho 23. 1. 2006 21:08

Mno to je zase hodne zjednodusene receno... protoze wordwrap zalame slovo klidne uprostred bbcode tagu takze se vubec neda pouzit.
miho
Hlavní administrátor
Uživatelský avatar

Odeslat příspěvekod THOMAS 23. 1. 2006 21:34

ale zase môžeš nechať prebehnúť bbcode a potom zalomiť s wordwrap()
THOMAS
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod miho 23. 1. 2006 22:01

to je jeste horsi. zalomi uprostred html tagu ;-) tim myslim treba
Kód: Vybrat vše
<a href="dlooouhaadresa">kratke</a>
->
Kód: Vybrat vše
<a href="dlooouha adresa">kratke</a>
miho
Hlavní administrátor
Uživatelský avatar

Odeslat příspěvekod Vebloud 23. 1. 2006 22:49

Sakra, to mi nedošlo.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod starenka_oggova 30. 1. 2006 11:37

ja sem napsal kdysi tohle a IMHO to docela funguje
Kód: Vybrat vše
<?php
$kde = 'www.didohajzlu.cz/?sid=asdlkasldjasldjkl0823402349klr8903urlksdf23u02389740dsfjkf9283ur982349rfy23978r12345';

function cuthref ($href) {
    if (strlen($href[0]) >= 10) {
      $rhref = substr($href[0],0,10)."....".substr($href[0],(strlen($href[0])-5),5);
    }
   echo "<a href=\"http://$href[0]\">".$rhref."</a>";
}
$kde = preg_replace_callback ("/(^|\s)(www\.[_|-|A-Za-z0-9|]+[.]+[A-Za-z]{2,6}[-_~%#&=?.a-zA-Z0-9\/]*)/","cuthref",$kde);
?>
Bad command. Bad, bad command! Sit! Stay! Staaay..
starenka_oggova
Junior
Uživatelský avatar

Odeslat příspěvekod starenka_oggova 30. 1. 2006 11:40

pokud teda slo o vlastni forum, bo co to je. s phpbb neporadim
Bad command. Bad, bad command! Sit! Stay! Staaay..
starenka_oggova
Junior
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků