Polish Bittorrent Tracker Support

  • Maj 18, 2012, 03:42:20
  • Witamy, Gość
Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Szukanie zaawansowane  

Aktualności:

Autor Wątek: Ucinanie dowolnej nazwy  (Przeczytany 949 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Piter

  • Gość
Ucinanie dowolnej nazwy
« dnia: Marzec 27, 2007, 11:23:11 »

W kilku modach (zwłaszcza przy tytułach torrentów) pojawiło się ucinanie nazw. Wiele osób nie wie jak to działa i z tego nie korzysta, a moim zdaniem jest to dość przydatne ponieważ powoduje, że możemy wpisywać dłuższe nazwy nie powodując tym samym rozjechania się całej tabelki.
Aby zastosować takie ucinanie należy postąpić następująco (na przykładzie nazwy torrenta w browse):

najpierw dodajemy funkcję CutName w global.php:
function CutName ($txt, $len)
{
return (strlen($txt)>$len ? substr($txt,0,$len-1) .'...':$txt);
}

następnie w bittorrent.php mamy:
$dispname = htmlspecialchars($row["name"]);i kilka linijek niżej:
print("\"><b>$dispname</b></a>\n");
aby dodać tutaj ucinanie, zamiast bezpośredniego podania nazwy
$dispnamestosujemy funkcję CutName w której parametrami wejściowymi są: ciąg znaków (w naszym wypadku nazwa torrenta) oraz jako drugi parametr liczba znaków do jakiej ma być ucięta (w naszym przypadku będzie to 50 - w rzeczywistości będzie 49 bo jako 50 znak będzie "..."), a więc wpisujemy:
CutName($dispname,50)a następnie dodajemy w miejscu wyświetlania:
" . CutName($dispname,50) . "i otrzymujemy:
print("\"><b>" . CutName($dispname,50) . "</b></a>\n");
aby po najechaniu na nazwę myszką pojawiał się cały tytuł musimy dodać parametr "title", w którym podajemy nasz ciąg znaków (u nas nazwa torrenta):
title=\"" . $dispname ."\"po wstawieniu do naszego linku otrzymujemy:
print("\" title=\"" . $dispname ."\"><b>" . CutName($dispname,50) . "</b></a>\n");
i koniec, otrzymujemy link który jest ucięty i po najechaniu otrzymujemy całą nazwę, tą procedurę możemy zastosować praktycznie wszędzie

powodzenia w stosowaniu :D
« Ostatnia zmiana: Marzec 27, 2007, 11:37:04 wysłana przez Piter »
Zapisane

kamil13151

  • Gość
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #1 dnia: Listopad 14, 2007, 05:54:42 »

Jak zrobić, żeby po np. 50 znakach był enter?

np. 12345678901234567890123456789012345678901234567890 - 50 znaków
5553 - tutaj dalszy ciąg

i żeby dopiero po np. 100 były ...
Zapisane

null

  • Super zaawansowany
  • ******
  • Reputacja 40
  • Offline Offline
  • Wiadomości: 1679
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #2 dnia: Listopad 14, 2007, 07:20:21 »

$str = substr($str, 0, 50) . '<br/>' . substr($str, 50, 50) . '...'
Zapisane
NullPointerException. chantico podejście drugie. Faza projektowania.

kamil13151

  • Gość
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #3 dnia: Listopad 16, 2007, 05:11:34 »

Kropki  i < br/ > są zawsze na końcu nawet jak nazwa ma mniej niż 50 znaków :whistling:.
« Ostatnia zmiana: Listopad 16, 2007, 05:24:42 wysłana przez kamil13151 »
Zapisane

null

  • Super zaawansowany
  • ******
  • Reputacja 40
  • Offline Offline
  • Wiadomości: 1679
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #4 dnia: Listopad 16, 2007, 05:49:03 »

$str=strlen($str)<50?$str:(substr($str,0,50).'<br />'.(strlen($str)>100?substr($str,50,50).'&hellip;':substr($str, 50)));
« Ostatnia zmiana: Listopad 16, 2007, 05:52:38 wysłana przez nav »
Zapisane
NullPointerException. chantico podejście drugie. Faza projektowania.

kamil13151

  • Gość
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #5 dnia: Listopad 16, 2007, 07:47:44 »

ehh... nadal nie działa dobrze, gdy nazwa jest taka:
September-In Orbit-Reissue-2007-BFHMP3 444444444444444444444 777777777777777777 8888888888888
to pokazuje
September-In Orbit-Reissue-2007-BFHMP3 44444444444
a jak jest taka
September-In Orbit-Reissue-2007-BFHMP3 444444444444444444444 777777777777777777 8888888888888 99999 11111
to pokazuje
September-In Orbit-Reissue-2007-BFHMP3 44444444444
4444444444 777777777777777777 8888888888888 99999 …    
Zapisane

Misiek

  • Średnio zaawansowany
  • ****
  • Reputacja 0
  • Offline Offline
  • Wiadomości: 79
  • Użytkownik jest na liście obserwowanychObserwowany
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #6 dnia: Listopad 16, 2007, 08:41:45 »

$str = (strlen($str) > 100 ? (substr($str,0,50).'<br />'.substr($str,50,50).'...') : (strlen($str) > 50 ? (substr($str,0,50).'<br />') : $str));
Zapisane

kamil13151

  • Gość
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #7 dnia: Listopad 16, 2007, 08:53:30 »

nadal to samo
Zapisane

Misiek

  • Średnio zaawansowany
  • ****
  • Reputacja 0
  • Offline Offline
  • Wiadomości: 79
  • Użytkownik jest na liście obserwowanychObserwowany
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #8 dnia: Listopad 16, 2007, 09:03:22 »

$str = (strlen($str) > 100 ? (substr($str,0,50).'<br />'.substr($str,50,50).'...') : (strlen($str) > 50 ? (substr($str,0,50).'<br />'.substr($str,50,strlen($str)-50)) : $str));
« Ostatnia zmiana: Listopad 16, 2007, 09:04:58 wysłana przez Misiek »
Zapisane

kamil13151

  • Gość
Odp: Ucinanie dowolnej nazwy
« Odpowiedź #9 dnia: Listopad 16, 2007, 09:09:31 »

Działa, dzięki :)
Zapisane
 

Strona wygenerowana w 0.205 sekund z 23 zapytaniami.