Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

ROZWIĄZANY: (Indo32) Today's Top Posters - wyświetlanie


Gangst3r

Rekomendowane odpowiedzi

Witam mamm problemik z którym nie umiem sobie proadzić. Chciałbym, aby w tym bloku parsowało nazyw użytkownikó, ponieważ jak są za długie to rozwala cały blok (foto).

topusers.jpg

Próbowałem edytować tą linijke kodu:

<a href='{parse url="showuser={$r['member_id']}" template="showuser" seotitle="{$r['members_seo_name']}" base="public"}' title='{$this->lang->words['view_profile']}'><img src='{$r['pp_thumb_photo']}' width='50px' height='50px' alt='{$this->lang->words['photo']}' class='photo' /></a><br />
<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

na:

<a href='{parse url="showuser={$r['member_id']}" template="showuser" seotitle="{$r['members_seo_name']}" base="public"}' title='{$this->lang->words['view_profile']}'>{parse expression="IPSText::truncate( $r['members_seo_name'], 10 )"}<img src='{$r['pp_thumb_photo']}' width='50px' height='50px' alt='{$this->lang->words['photo']}' class='photo' /></a>
<else />
{parse expression="IPSText::truncate( $r['members_seo_name'], 10 )"}<br />
<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

ale bez skutku.

Wie ktos może jak to można edytować, aby skracało nazwy użytkowników do określonej liczby znaków?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Dziś na spokojnie zasiadłem przy tym i przeanalizowałem kod, który jest bagatela bardzo czytelnie napisany i wiem, gdzie popełniałem bezmyślny błąd. Teraz już to naprawiłem tylko kolejne pytanie odnosi się do funkcji skryptu, którą nie potrafię wywołać poprawnie :)

Na początek podaję, gdzie umieszczamy kod:

Znajdujemy:

<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

Zamieniamy na:

<span class='name'>{parse expression="IPSText::truncate( $r['members_display_name'], 10 )"} ({$r['tpost']})</span>

gdzie 10 to liczba znaków (wraz z kropkami, które będą wyświetlane, jeśli nazwa użytkownika przekroczy ustalone maximum)

Tylko teraz mam pytanie, bo jak wstawiam zmienną IPSText::truncate to wyświetla mi nazwę użytkownika w postaci zwykłego tekstu. Jak zrobić, aby była wyświetlana jako wyświetlająca okienko profilu oraz po kliknięciu do niego przenosiła.

Próbowałem zmienić samo IPSText na IPSMember, bo taka zmienna istnieje, ale wywaliło mi błąd na forum, który mogłem usunąć jedynie opcją czyszczenia Cache stylów ;) dodawałem także template="userHoverCard" i group="global", ale to nic nie dało :D

Edytowane przez Gangst3r
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

No przecież podałem Ci ten kod.. :D

{parse expression="IPSText::truncate( $r['members_seo_name'], 10 )"}<br />
<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

Tak nie śmiga?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

<div class='general_box clearfix'>
<h3><img src='{$this->settings['img_url']}/user_comment.png' alt='' /> {$this->lang->words['todays_top_posters']}</h3>
<div class='_sbcollapsable'>
<if test="topposters:|:is_array($posters) AND count($posters)">
<ol id='top_posters' class='clearfix'>
<div class='list_content'>
<foreach loop="top_posters_hook:$posters as $r">
<li>
<a href=' {parse url="showuser={$r['member_id']}" template="showuser" seotitle="{$r['members_seo_name']}" base="public"}' title='{$this->lang->words['view_profile']}'> <img src='{$r['pp_thumb_photo']}' width='50px' height='50px' alt='{$this->lang->words['photo']}' class='ipsUserPhoto_medium' /></a><br />
<span class='name'>  
<font size="1">{IPSMember::makeProfileLink(IPSMember::makeNameFormatted( $r['members_display_name'], $r['member_group_id']), $r['author_id'])}{parse template="user_popup" group="global" params="$r['author_id'], $r['members_seo_name']"} ({$r['tpost']})</font></span>
</li>
</foreach>
</div>
</ol>
</if>
</div>

o to kod na wyświetlanie bez liń a żeby nie piepszyły duże znaki w nickach musisz zmienić limit znaków rejestracji do 10 bo inaczej bd cały czas bugowało złym wyświetlaniem
</div>

Odnośnik do komentarza
Udostępnij na innych stronach

DawPi ten kod podwaja nicki jeden z wyświetlaniem userHoverCard a ten powyższy to kod właśnie IPSText::truncate

:D Wygląda to tak po Twoim zabiegu:

82131333.jpg

A tak po zabiegu kolegi Booski:

25367891.jpg

Dodał on tylko nowe klasy, ale nie zrobił formatowania do skracania nazwy nicka i nie rozumiem po co te spacje   jak można dać albo <br> albo w niektórych przypadkach "zwykłą" spację :D

Tutaj znajduje się klasa od wyświetlania nicku jak widać pomiędzy <span class="name"> odwołujący się do css:

<span class='name'>{IPSMember::makeProfileLink(IPSMember::makeNameFormatted( $r['members_display_name'], $r['member_group_id']), $r['author_id'])}{parse template="user_popup" group="global" params="$r['author_id'], $r['members_seo_name']"} ({$r['tpost']})</span>

Edytowane przez Gangst3r
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

No to:

<php>$r['members_seo_name'] = IPSText::truncate( $r['members_seo_name'], 10 );</php>
<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Nic dalej nie pomogło nawet z użyciem kodu php dla zmiany parametru $r odpowiadającego za wyświetlanie zmiennej members_seo_name :D

W miejsce liczby 10 dałem 7, bo jeden nick ma 10 znaków i nie sparsuje go jak nie przekroczy tej ilości, więc po testach nadal nie działa :D muszę dalej pogłówkować, ale co programista to programista, więc DawPi jakbyś mógł to bardzo bym prosił o dalszą pomoc ;)

Edytowane przez Gangst3r
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Kombinuj - ja mam inne rzeczy na głowie, a nie takie rzeczy.. ;) Widzę, że sobie jako taki radzisz, więc będziesz bardzo usytasy jak sam to zrobisz. :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

No będę kombinował, bo ten skrypcik jest o wiele prostszy od tego na którym początkowo się uczyłem (phpbb by przemo) :P Musze tylko oblukać zmienne i zobaczyć jak wpływają na silnik :D Trzeba też ograniczyć liczbę zapytań, więc te kolorki i inne dodatki co podał Booski, trzeba będzie wywalić :P

Edytowane przez Gangst3r
Odnośnik do komentarza
Udostępnij na innych stronach

No i gotowe już sobie opracowałem kod do parsowania nazwy nicków :P Próbowałem dodawać zmienne w kodzie php powyżej, żeby zmienić paramter $r odpowiadającą za wyświetlanie nicku tak, aby go parsowało, ale nie wyszło, więc zacząłem dłubać ponownie w tym kodzie i udało się :P

Kod do zmiany:

Znajdujemy:

<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

Zamieniamy na :

<span class='name'>{IPSMember::makeProfileLink( IPSText::truncate( $r['members_display_name'], 9 ), $r['member_group_id']), $r['author_id'])}{parse template="user_popup" group="global" params="$r['author_id'], $r['members_seo_name']"} ({$r['tpost']})</span>

Efekt końcowy z możliwością wyświetlania userHoverCard (użyłem nieco innej zmiennej):

22883478.jpg

Jeśli ktoś chce mieć normalne nicki bez formatowania grup (kolory, pogrubienie, itp.) wystarczy to usunąć z kodu ;)

Znając, życie i tak większość mało obeznanych będzie tego szukać więc podam gotowy kod:

Znajdujemy:

<span class='name'>{parse template="userHoverCard" group="global" params="$r"} ({$r['tpost']})</span>

Zmieniamy na:

<span class='name'>{IPSMember::makeProfileLink( IPSText::truncate( $r['members_display_name'], 9 ), $r['author_id'])}{parse template="user_popup" group="global" params="$r['author_id'], $r['members_seo_name']"} ({$r['tpost']})</span>

Dzięki temu zabiegowi efekt końcowy powinien wyglądać tak:

98349346.jpg

Macie wszystko na gotowe. Według mnie problem rozwiązany i można zamknąć :P Pozdrawiam!

Edytowane przez Gangst3r
  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.