Forum Książki
Witamy w Księgogrodzie!

Pomysły i uwagi - Spoilery

Nieznany - 2011-11-29, 21:25
Temat postu: Spoilery
Ponieważ wynikła we wątku o książkach Martina taka sytuacja, że pojawił się spoiler i może się to pojawiać jeszcze często, to proponowałbym dodać do skryptu forum opcję dodawania do postu okienka ze spoilerem, które byłoby zakryte a odkrywało by się je po kliknięciu w przycisk "spoiler". Sprawdza się to jak najbardziej na KGB.

kod do zmian:

plik:
/includes/bbcode.php

znajdź:
Kod:
// [b] and [/b] for bolding text.
$text = preg_replace("#\[b\](.*?)\[/b\]#si", "[b:$uid]\\1[/b:$uid]", $text);

po nim wstaw:
Kod:
// [spoiler][/spoiler]
$text = preg_replace("#\[spoiler\](.*?)\[/spoiler\]#si", "[spoiler:$uid]\\1[/spoiler:$uid]", $text);

znajdź:
Kod:
// [b] and [/b] for bolding text.
$text = ($board_config['button_b']) ? str_replace("[b:$uid]", $bbcode_tpl['b_open'], $text) : str_replace("[b:$uid]", '', $text);
$text = ($board_config['button_b']) ? str_replace("[/b:$uid]", $bbcode_tpl['b_close'], $text) : str_replace("[/b:$uid]", '', $text);

po nim wstaw:
Kod:
// [spoiler][/spoiler]   
$text = str_replace("[spoiler:$uid]", $bbcode_tpl['spoiler_open'], $text);
$text = str_replace("[/spoiler:$uid]", $bbcode_tpl['spoiler_close'], $text);


plik:
/templates/Twój_styl/bbcode.tpl
znajdź:
Kod:
<!-- BEGIN b_open --><span style="font-weight: bold"><!-- END b_open -->
<!-- BEGIN b_close --></span><!-- END b_close -->

po nim wstaw :
Kod:
<!-- BEGIN spoiler_open --><div style="margin:20px; margin-top:5px"> <div class="smallfont" style="margin-bottom:2px"><b>Spoiler</b>: <input type="button" value="Pokaż" style="width:45px;font-size:10px;margin:0px;padding:0px;" onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = 'Ukryj'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Pokaż'; }"> </div> <div class="alt2" style="margin: 0px; padding: 6px; border: 1px inset;"> <div style="display: none;"><!-- END spoiler_open --><!-- BEGIN spoiler_close --><br /> </div> </div> </div><!-- END spoiler_close -->


zapisac zmiany i upnąć na serwa :) Pamiętaj tylko Uczniu o zmienieniu pliku .tpl we wszystkich trzech stylach. :)

Jak to działa i że się sprawdza można zobaczyć np. we wątku ze spoilerami na temat właśnie Gry o tron: http://ebooki.linuxpl.com/viewtopic.php?t=9106

Uczeń Czarnoksiężnika - 2012-02-03, 10:17

Ok powinno działać, ale pytanko jeszcze - jak dodać przycisk Spoiler? :)

Spoiler:
To jest próba działania kodu ukrywania spoilerów

Kamil - 2012-02-03, 10:49

Spoiler:
Przetestowac sobie musze :)

Działa :D no tylko ręcznie musiałem wpisać, ale pewnie nawet jak dodasz przycisk to będzie pod przyciskiem "Odpowiedz", a nie tam gdzie jest "Szybka odpowiedź"?

Uczeń Czarnoksiężnika - 2012-02-03, 10:54

Muszę poszukać w necie albo podpytać Na, może się da :)
Panna Jeż - 2012-02-03, 13:17

Spoiler:
Udało się! :D


Świetnie. ^^

Nieznany - 2012-02-03, 14:58

Żeby wstawić do "odpowiedz" przycisk "Spoiler" trzeba we wszystkich trzech stylach w plikach posting_body.tpl znaleźć ten kawałek:

Kod:
{BUTTON_CE}{BUTTON_F}{BUTTON_S}{BUTTON_ST}{BUTTON_HI}

i w dowolnym miejscu, ja mam na końcu, czyli po {BUTTON_HI}, dodać kod wstawiający przycisk:

Kod:
&nbsp;<input type="button" class="button" value="Spoiler" style="width: 50px; text-indent: -3px;" onclick="wrapSelection(document.post.message,'[spoiler]', '[/spoiler]')" />


Ostatecznie ma to wyglądać tak:

Kod:
{BUTTON_CE}{BUTTON_F}{BUTTON_S}{BUTTON_ST}{BUTTON_HI}&nbsp;<input type="button" class="button" value="Spoiler" style="width: 50px; text-indent: -3px;" onclick="wrapSelection(document.post.message,'[spoiler]', '[/spoiler]')" /></span></td>


------------

A dla szybkiej odpowiedzi (to w sumie powinno wystarczyć większości ;-) ) musisz wykonać podobną robotę, ale w plikach quick reply.tpl. Masz tam pookreślane kolejne przyciski, ostatni jest "quote".

Kod:
<!-- BEGIN button_q -->
<tr>
    <td>&nbsp;<input type="button" class="button" value="Quote" style="width: 38px; text-indent: -3px;" onclick="bbcode('[quote]', '[/quote]')" /></td>
</tr>
<!-- END button_q -->


no i musisz tam dodać przycisk Spoiler, najlepiej, żeby był obok "quote". Zamień więc powyższe na:

Kod:
<!-- BEGIN button_q -->
<tr>
    <td>&nbsp;<input type="button" class="button" value="Quote" style="width: 38px; text-indent: -3px;" onclick="bbcode('[quote]', '[/quote]')" /></td> <td>&nbsp;<input type="button" class="button" value="Spoiler" style="width: 50px; text-indent: -3px;" onclick="wrapSelection(document.post.message,'[spoiler]', '[/spoiler]')" /></td>
</tr>
<!-- END button_q -->


I to musi być we wszystkich stylach, żeby każdy to widział. :)

Swoją drogą ja do niemal wszystkiego dochodziłem sam, bo choć kiedyś miałem kurs HTMLa, to w pehapie jest więcej zabawy, bo są te wszystkie zmienne... w każdym razie zazwyczaj wystarczy popatrzeć, jak rozwiązane zostało to wcześniej, w gotowym skrypcie albo podobnej modyfikacji (zawsze szukam ich na forum przemo) i skopiować dla własnych celów. :) Często jest to metoda prób i błędów, ale tylko raz udało mi się zrypać trochę forum, a właściwie forum było OK tylko kolory w stylu poszły się... gonić. :-P Zamiast normalnych wyskoczyły jakieś seledyny, żółcie itp... okazało się, że kiedy chce się zmienić jakąś wartość w edycji stylu w PA, np. zmienić kolor nicku admina czy moda, to trzeba najpierw ściągnąć na dysk plik css stylu, dokonać zmiany a potem podmienić nowy plik css starym, wtedy wszystko "zagra". :) Z moich doświadczeń wiem, że nie jest to konieczne przy subSilverze, ale przy nowych, dodawanych stylach, trzeba tak robić, bo się mogą rozsypać ustawienia. :)

motylek727 - 2012-02-03, 15:17

A ja nie umiem :-(
Panna Jeż - 2012-02-03, 15:20

Wstawiasz tag [ spoiler ]tu wpisujesz tekst, który chcesz ukryć i a potem wstawiasz[ /spoiler ]
Tylko bez tych spacji w nawiasach kwadratowych ^^

motylek727 - 2012-02-03, 15:22

Czyli tak jak cytat czy coś innego? xD Aaa... Myślałam, że to bardziej skomplikowane :-P
Nieznany - 2012-02-03, 15:33

Motylku...
Spoiler:
Ależ to jest bardzo proste. :D Spróbuj sama. :mg:

Panna Jeż - 2012-02-03, 15:38

Rav, Córko, to teraz możecie poukrywać spoilery w temacie o Atwood. ^^
motylek727 - 2012-02-03, 15:39

Spoiler:
Zobaczymy, czy się uda

Ravena - 2012-02-03, 16:00

Cytat:
Rav, Córko, to teraz możecie poukrywać spoilery w temacie o Atwood. ^^

Ukryłam w moich postach, ale nie mam uprawnień do edycji Córki w tym dziale, więc musisz poczekać na nią sama, jeszcze tam nie zaglądaj :)

Panna Jeż - 2012-02-03, 17:05

Ok, poczekam tę chwilę :D
Uczeń Czarnoksiężnika - 2012-02-03, 20:21

N, serdecznie dziękuję Ci za wskazówki na wagę złota. Wydaje się, że wszystko działa ok. Zrobiłem dokładnie jak napisałeś. Wielkie dzięki.

Teraz wszyscy mogą spoilerować do woli. :)

Nieznany - 2012-02-03, 21:08

Nie ma sprawy, pomagać, kiedy wie się, jak, to niewątpliwa przyjemność. :D

Swoją drogą dla niektórych osób przydały by się odnośne do ich działalności okienka - wtedy można by oddzielić właściwą treść postu i np. okienko "offtop" u panny Jeż albo okienko "smęcenie" u pana M. :hehe:




Żarcik^^

Panna Jeż - 2012-02-03, 21:33

Znaczka to Ty się nie doczekasz :-P

Ale jak już założycie mi okienko offtopowe, pozwolę Ci z niego korzystać :-P


Żarcik ^^
Okienko będzie tylko moje!

Córka Lavransa - 2012-02-03, 22:50

Nieznany napisał/a:
okienko "smęcenie" u pana M.

Niewiele by wtedy z jego postów zostało... :hehe:

Dzięki wielkie, Uczniu! :*

Nieznany - 2012-02-03, 23:14

Córka Lavransa napisał/a:
Niewiele by wtedy z jego postów zostało...
Taktownie wolisz sie nie wypowiadać o postach Evy? :-P Ja też. :hehe:
Panna Jeż - 2012-02-03, 23:41

Kto jest bez winy, niech pierwszy rzuci kamieniem :terefere:

Powered by phpBB modified by Przemo © 2003 phpBB Group