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

Własny BBCode: ukrycie zawartości przed gośćmi


unbreak

Rekomendowane odpowiedzi

Aby stworzyć własny tag którego zawartość będzie chowana przed niezalogowanymi wystarczy wykonać kilka kroków.

Uwaga: tag działa tylko przy wyłączonym cache'owaniu postów.

  1. tworzymy plik .php z treścią podaną poniżej (kodowanie utf-8):
    <?php
           class bbcode_hide extends bbcode_parent_class implements bbcodePlugin{
                   public function __construct( ipsRegistry $registry ){
                           $this->currentBbcode    = 'hide';
                           parent::__construct( $registry );
                   }
    
                   protected function _replaceText($txt){
                           $_tags = $this->_retrieveTags();
    
                           foreach( $_tags as $_tag ){
                               $txt = ereg_replace( "\n", " ", $txt );
                               if( $this->memberData['member_id'] ){
                                       $txt = preg_replace( "/\[{$_tag}\](.+?)\[\/{$_tag}\]/i", "<div style=\"border: 1px dotted #333; padding: 1px; background-color: #333; color: #fff; font-weight: bold; height: 16px; font-size: 13px;\">Ukryta zawartość:</div><div style=\"border: 1px dotted #333; border-top: none;\">\\1</div>", $txt );
                               }else{
                                      $txt = preg_replace( "/\[{$_tag}\](.+?)\[\/{$_tag}\]/i", "<div style=\"border: 1px dotted #333; padding: 1px; background-color: #333; color: #fff; font-weight: bold; height: 16px; font-size: 13px;\">Ukryta zawartość:</div><div style=\"border: 1px dotted #333; border-top: none;\">By zobaczyć treść trzeba się <a href='" . $this->settings['board_url'] . "/index.php?app=core&module=global&section=login'>zalogować</a>. Nie masz konta? <a href='" . $this->settings['board_url'] . "/index.php?app=core&module=global&section=register'>Zarejestruj się</a> już teraz!</div>", $txt );
                               }
                           }
    
                           return $txt;
                   }
    
    
           }
    ?>

    Gdzie hide to nazwa tagu.

  2. Wrzucamy go na serwer do katalogu:
    /admin/sources/classes/bbcode/custom/


  3. Teraz odpalamy ACP i w edycji bbcode (Wygląd > Post Content > BBCode Management) dodajemy nowy kod (Dodaj BBCode)
  4. Dodajemy nowy BBCode jak zwykle, tyle że w polu "lub plik PHP do wykonania" wpisujemy nazwę pliku php przez nas stworzonego w kroku 1. i zapisujemy.
    phpc.jpg
  5. Cieszymy się nowym tagiem
    [hide]aasdasdasd blablabla...[/hide]


    który wygląda tak:
    Tak widzi zalogowany użytkownik:
    loginax.jpg
    a tak niezalogowany:
    logoutr.jpg
    UWAGI:

    • TAG działa dla treści mieszczącej się w wielu liniach
    • formatowanie danego bloku, oraz treść wiadomości widzianej przez niezalogowanych, można samemu łatwo zmienić.

Poradnik stworzony przez unbreak, dla serwisu invisionize.pl, kopiowanie, powielanie oraz przetwarzanie go, bez zgody autora, zabronione!

Zgodnie z ustawą z dnia 4 lutego 1994 roku o prawie autorskim i prawach pokrewnych.

  • Lubię to 3

userbar1.jpg

Twiztid Tribe ®

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Dzięki! :)

Pozwoliłem sobie dodać kod odpowiadający za dodanie nazwy domeny forum, zamiast ręcznej zmiany. Zmieniłem również skrócony tag <? na <?php - nie wszystkie serwery je obsługują.

  • Lubię to 1

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

Czy tego kodu nie mozna wkleic zamiast definicji tagu

? Bo nie wiem czy ktokolwiek bedzie wiedzial ze trzeba uzywac hide zamiast code. Ewentualnie czy da sie to jakos automatycznie zamieniac tag code na hide? Czy jest szansa ze ten problem bedzie rozwiazany w kolejnych wersjach IPB, czy oni w ogole o tym nie wiedza? 
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Czy jest szansa ze ten problem bedzie rozwiazany w kolejnych wersjach IPB, czy oni w ogole o tym nie wiedza? :preved:

O jakim Ty problemie piszesz? Ludzie.

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

  • 2 tygodnie później...

Witam

Czy w pliku .php który wysyłamy na serwer muszę zmienić polskie literki na ich odpowiedniki w utf? Widzę że tutaj nie ma takiej wzmianki, a po załadowaniu i zrobieniu krok po kroku :P pokazują mi się krzaki.

Tak wiec pytanko czy po prostu zmienić te polskie znaki (sprawdzałem i oczywiście działa) czy jednak pozostawić i coś zrobić jeszcze na forum aby zawartość pliku pozostała oryginalna?

Mam zainstalowane najnowsze forum +spolszczenie też najnowsze dostępne tutaj na forum.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Witamy na forum!

generalnie to wystarczy przekodować plik np. w programie PSPad, w którym będą widoczne polskie ogonki, ale de facto znaki kodowane będą w wybranym języku.

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 tak. Po kodowaniu na utf, polskei znaki wyświetlają się prawidłowo.

Ale powstał kolejny problem :>

Moje ustawienia bbcode są takie

post-1552-1260566376,4334_thumb.png

Jeszcze dokładnie nie wiem co to jest "Zawartość pamięci podręcznej została włączona" ale ustawiam na tak, przed zapisem.

Ale zauważyłem, że po edycji postu nawet nic nie zmieniająć, po prostu, edytuj i ponownie zapisz, pole które ma być ukryte przed gośćmi (a w tej chwili tylko admini moga widzieć) te pole staje się widoczne dla każdego. Muszę ponownie odwiedzić bbcode menadżer, ustawić "Usunąć wszystkie 1 zkeszowanych pozycji? na tak" i ponownie zawartość bbcode jest uryta dla wszystkich?

Może ktoś wyjaśnić o co chodzi z tym cache? trochę bez sensu że po edycji postu moje ustawienia w jakimś stopniu się kasują, nie wszystkie bo jednak widać działanie ale nieprawidłowe :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Cache jest to specjalna sformatowana zawartość postów. Więcej informacji o nowym systemie tagów BBCode znajdziesz tutaj.

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

Za wiele to tam nie jest rozpisane :). Generalnie to rozumiem o co chodzi z tymi bbcodami a przynajmniej tak mi się wydaje

Tu chodzi chyba jednak o ten plik .php

Pisałem przed chwilą że po "Usunąć wszystkie 1 zkeszowanych pozycji? na tak" Ukryta wiadomość działa że nie widzą jej goście, ale właśnie zauważyłem że również zalogowanym jako admin tez wyświetla się ta informacja "By zobaczyć treść trzeba się zalogować. Nie masz konta? Zarejestruj się już teraz!" bez sensu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Skoro nie do końca działa to autor tematu musi popracować nad tym.

A jakbyś wyłączył cache'owanie postów? Działa wtedy?

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

heh, na pierwszy rzut oka po wyłączeniu działa prawidłowo :-)

PS

A dokładnie o co chodzi z tym cashowaniem? Tutaj szukajka nic ciekawego nie znalazła na ten temat.

Mogę coś specjalnego z funkcjonalności forum stracić jak będę miał wyłączone?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Za każdym razem posty są ładowane z tabeli z postami ( nie cache postów ) i parsowane w locie. Cache zawiera już sparsowane posty.

Funkcja nie polecana ( wyłączenie cache ) na duże i z dużą ilością ludzi online fora. Na te postawione na słabszych serwerach również.

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

  • 9 miesięcy temu...

Mam problem jak chce wejść w temat wyskakuje mi taki błąd "Fatal error: Class 'bbcode_parent_class' not found in /home/hardshar/domains/test-warez.vot.pl/public_html/admin/sources/classes/bbcode/custom/hide.php on line 2"

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

No to forum i taka domena.. Nie szkoda ci czasu na takie dziecinne zajęcie jak pseudo-warez? Nie lepiej spożytkować inaczej czas, zrobić forum o swojej pasji?

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

Właśnie akurat tylko na warezie sie znam tyla razy juz myślalem jaką można tu zrobić strone i nic innego nie przychodziło mi na myśl ;/

W tym linku co podałeś wyżej nie znalazłem żadnej pomocy ;/

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

  • Manager

No to poczytaj jeszcze raz, bo pomoc tam jest, zupełna i dobra.

Nie znasz się na niczym innym, jak na okradaniu innych z ich pracy? :thumbsup: A może uprawiasz jakiś sport? A poza tym po co tworzyć kolejny milionowy warez? Jest sens?

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

  • 9 miesięcy temu...
  • Manager

Jak zrobić,ustawić by tag hide był widoczny podczas pisania postu(w oknie edytora)?

Edytuj owy tag w ACP i tam przeczytaj opis pola Grafika BBCode.

  • Lubię to 1

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

Nie chodzi mi o tag CODE,tylko o ten co w temacie.

Pisze co by kodować w UTF-8 wtedy poprawnie będą się wyświetlały polskie znaki.

Robię tak i pokazuje mi błąd składni,można w inny sposób zrobić,aby polskie znaki czyli np:"ukryta zawartość"wyświetlały się prawidłowo ?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • 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ę.