Elian - 2010-12-21 08:34:36

Nie chcąc czekać na to, aż zostanie wgrana modyfikacja pozwalająca na dowolne zwijanie i rozwijanie kategorii, postanowiłem sam coś naskrobać. Oczywiście nie obyłoby się bez pomocy Rudika, który pomógł mi przeskoczyć jeden problem ze skryptem.
Pozwala on na zwijanie wybranej kategorii po kliknięciu myszką w jej tytuł.

Określam to mianem JSMod (JavaScript Modification) dla PunBB v1.2, gdyż jest to taka pseudo-modyfikacja w JS. Jej nazwa brzmi RollUpCategory :)
Wynik skryptu możecie zaobserwować na TUTAJ

<script>

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////

Z

// USTAWIENIA SKRYPTU
id = "idxX";
content = '<a href="javascript:showX()">Y</a>';

// KOD SKRYPTU
div = document.getElementById(id);
h2 = div.childNodes[1];
span = h2.childNodes[0];
span.innerHTML = content;

function showX() {
var div = document.getElementById(id);
box = div.childNodes[3];
span = h2.childNodes[0];

if (box.style.display == "none") {
box.style.display = "block";
}
else {
box.style.display = "none";
}
}

</script>

X - numer kategorii (Dla pierwszej w kolejności 1 dla drugiej 2 dla trzeciej 3 itd...)
Y - nazwa kategorii (skrypt zmieni ją niezależnie od ustawień w PA)
Z - byłbym wdzięczny, gdyby każdy kto skorzysta z tej modyfikacji dodał w tym miejscu linijkę, by podziękować w jakiś sposób:

document.write("<b><a href='http://www.pbfy.pun.pl'>Twoje Centrum PBF</a></b>")

Skrypt należy umieścić w stopce forum.  Niestety nie jest jeszcze doskonały i do każdej kategorii trzeba dodawać osobny, ale popracujemy jeszcze nad tym :)
Dodam, że nie gryzie się on z dodatkowymi boxami pod forum, więc można go stosować w zasadzie bez ograniczeń :)

UWAGA: Niestety nie działa dobrze w Internet Explorerze :/

Sayori - 2010-12-21 09:26:53

Świetny skrypt, mnie się bardzo podoba, należy ci się plusik

Arashi - 2010-12-21 12:32:18

Elian jak już mówiłem, zasłużyłeś sobie na plusika. :P Świetny skrypt, na pewno skorzystam z niego na SD. Może to skróci te wszystkie kilometrowe fora Naruto, hę? :D

Elian - 2010-12-21 12:36:06

Myślę, że tak :)
Z tym, że nie wiem jak on będzie współpracować z forami mającymi spora ilość grafiki. Sam w sobie jest lekki dla przeglądarki, więc powinno iść spokojnie :)

W planach mam kilka rozszerzeń tego JSMod'a więc na pewno jeszcze o nim usłyszycie :)

Arhol - 2010-12-23 13:51:55

Ja mam takie małe pytanie co do tego czy jest możliwość żeby zamiast klikać w nazwę kategorii to można dodać mały obrazek po prawej stronie np. taki http://mumaster.xaa.pl/Themes/zone99_20rc3/images/collapse.gif ?? jak się da to podajcie co gdzie i jak zmienić :P

Elian - 2010-12-23 14:03:52

Za kilka dni wrzucę rozszerzoną wersję 1.1 z takowym obrazkiem. Tylko muszę mieć kilka minut wolnego czasu, żeby spokojnie napisać posta z tym kodem ^^

Jednak ty chciałbyś zapewne, aby ten obrazek zmieniał się na +, gdy kategoria się zwinie?

Lostplanetomaniak - 2010-12-23 16:48:11

Skrypt rewelacja tylko czy nie istnieje jakiś sposób by po odświeżaniu nie wracało do stanu początkowego ?

Elian - 2010-12-23 17:16:27

Istnieje - także nad tym pracuję, jednak JS na tym polu jest mi nieco obce, jednak pierwsze kroki w tej materii juz poczyniłem, co zwiastuje, że powinienem do tego dojśc :)

Na pewno kolejne wersje beda sie ukazywac, jednak potrzebuję czasu, by je wykonac, a na chwile obecną pracuje nad kilkoma projektami JS.

Arhol - 2010-12-23 17:24:26

Elian napisał:

Za kilka dni wrzucę rozszerzoną wersję 1.1 z takowym obrazkiem. Tylko muszę mieć kilka minut wolnego czasu, żeby spokojnie napisać posta z tym kodem ^^

Jednak ty chciałbyś zapewne, aby ten obrazek zmieniał się na +, gdy kategoria się zwinie?

Super czekam z niecierpliwością :)

Arashi - 2010-12-23 19:06:16

Hmm, a dałoby się zrobić, żeby kategoria się zwijała, po kliknięciu na belkę? :D

Elian - 2010-12-23 19:19:37

Myślę, że dałoby się, ale Prawdopodobnie już zostaniemy przy wersji z "-" i "+"

Arhol - 2010-12-23 20:47:17

Zapomniałem Elian odpowiedzieć na twoje pytanie z tym "+". Tak chciał bym aby po naciśnięciu znaczka "-" pojawił się znaczek "+" :)

Elian - 2010-12-24 22:45:05

Wersja 1.1 jest już gotowa, więc w ciągu najbliższych dwóch dni pojawi się na forum :)

Ale ostatnio zgłaszano mi, że skrypt nie działa. Są tu takie osoby, którym przy co najmniej dwóch kategoriach skrypt szwankował? Proszę zakomunikować to, żebym wiedział, czy warto szukać błędu.

Lostplanetomaniak - 2010-12-25 10:07:59

Nie wiem czy to było zgłaszane lecz jak wczoraj byłem na świętach u babci z swoim małym laptopem ( używałem Explolela ;d i się pod sieć kogoś podpiąłem :p) to wszystkie kategorie u mnie były zakryte i nie można było ich odkryć.

http://img411.imageshack.us/img411/2664/beztytuuzqf.png

Ogólnie rzecz biorąc u mnie na stacjonarnym przy explolerze jest tak samo. Poza tym jak widać kody nie działają ( np. belki ).

Nelgor - 2010-12-25 13:11:07

UWAGA: Niestety nie działa dobrze w Internet Explorerze :/

Sparrow - 2010-12-25 15:04:56

Nelgor napisał:

UWAGA: Niestety nie działa dobrze w Internet Explorerze :/

W tej przeglądarce 3/4 rzeczy nie działają przecież 0o

Nelgor - 2010-12-25 18:54:14

Wiem. IE to nie trzymający się standardów, dziurawy złom.
Przypominam tylko tym którzy używają IE... :>

Sayori - 2010-12-26 17:44:01

zgadzam się, IE to shitowa przeglądarka, osobiście polecam chrome'a. Co do IE tam nawet skrypt na tło nie działa poprawnie...

Alcarin - 2010-12-29 19:38:21

Na WK ten skrypt nie działa -.-'
Niby są klikalne nazwy kategorii, ale na tym się kończy działanie skryptu ;/
Nie zwija się i tyle... Chyba, że mi FF nawala O_o w co szczerze wątpię.

Nelgor - 2010-12-29 19:41:34

Albo gryzie się z kodami WK (raz widziałem tą stronę w opłakanym stanie uskryptowienia, teraz wygląda tragicznie tylko graficznie [nie czuję że rymuje]), albo coś źle zrobiłeś. Skrypt i tak się średnio opłaca bo nie zapamiętuje ustawień.

Alcarin - 2010-12-29 20:01:40

Być może gryzie się z obrazkami i boksami z nich wyskakującymi(choć podobno nie powinno być tego problemu).
Na grafikę nie poradzę bo na Ikiego nie ma co liczyć a Megera(admin/grafik) nie ma zbytnio czasu/ochoty by robić całą grafikę od nowa. Mamy nowe tło i logo a prócz tego dwa obrazki do for, ale to tyle ^^
Ja sam nie potrafię a innych grafików nie proszę bo jak prosiłem to bez odzewu -.-'

A skrypt się przyda bo WK się dłuugie robi O_o

Elian - 2010-12-29 20:54:50

Z tego co zdążyłem się dowiedzieć, to zmienne się mieszają gdy wrzucimy skrypt dla więcej niż jednego forum. Tak więc zapewne trzeba by zrezygnować ze zmiennych i po prostu wpisywać ręcznie do każdego skryptu odpowiednie ID itd...

Opozycjonista - 2011-01-20 21:53:07

Elian jaki z ciebie programista!

Za postawienie za przeproszeniem takiego ścierwa na forum chcesz, aby ludzie wpisywali odnośnik do twojej strony. Nie trzeba pisać oddzielnie każdej kategorii, żeby zrobić takie coś na swoim forum. Ten mod to czysta żenada. Może nie programuję w JS, ale w internecie znajdę coś takiego do innego forum i przerobię to na kompatybilne z punBB tak, aby użytkownik nic nie musiał robić poza wstawieniem kodu.

Napisałeś, że z pomocą Rudika - niech zgadnę ty zrobiłeś to:

Kod:

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////

... a Rudik całą resztę, ale jesteście znajomymi więc prawa autorskie można przypisać tobie.

Sayori - 2011-01-20 21:58:14

noi natrafiam na kolejny bezsensowny post twojego autorstwa, spytaj się Rudika co on robił, a co Elian.
Proszę, przerabiaj taki skrypt, nie mogę się doczekać.

Nelgor - 2011-01-20 22:07:05

Ja także czekam, i z wypiekami na twarzy zobaczę twój niedziałający złom, webmasterze. ;)
Ale zobaczymy, nie wątpię w twoje umiejętności.

Jass - 2011-01-20 22:22:11

... a Rudik całą resztę, ale jesteście znajomymi więc prawa autorskie można przypisać tobie.

Nie wtrącając się całkowicie do dyskusji... (ach, jak ja uwielbiam jak ktoś zabiera zdanie na temat, który nie ma zielonego pojęcia):

Kod:

Art. 8. 1. Prawo autorskie przysługuje twórcy, o ile ustawa nie stanowi inaczej. 2. Domniemywa się, że twórcą jest osoba, której nazwisko w tym charakterze uwidoczniono na egzemplarzach utworu lub której autorstwo podano do publicznej wiadomości w jakikolwiek inny sposób w związku z rozpowszechnianiem utworu. (...)
Art. 9. 1. Współtwórcom przysługuje prawo autorskie wspólnie. Domniemywa się, że wielkości udziałów są równe. (...)

- z ustawy o prawie autorskim i prawach pokrewnych

Więc co do praw autorskich drogi Opozycjonisto - jeżeli Rudik wyraził zgode na rozpowszechnianie swojego wkładu pod osobą Eliana, Twój zarzut co do praw autorskich nie ma prawa istnienia w związku z art. 8 pkt. 2 cytowanej przeze mnie ustawy, a jeśli nawet wykonywali pracę wspólnie prawo autorskie przysługuje im wspólnie bez względu na wielkość udziałów o czym mówi art. 9 pkt. 1.
Z pozdrowieniami dla pana, który krytykuje wszystkich innych zarzucając im brak profesjonalizmu, a sam wypowiada się o rzeczach o których nie ma pojęcia ;)
(Sorry za off, ale niestety... nie mogłam się oprzeć przed wtrąceniem).
//Ależ nie ma za co. Ludzi trzeba uświadamiać.
~ Nelgor.

Lostplanetomaniak - 2011-01-21 15:15:56

No to ja już z innej beczki;

więc czy jest możliwość dla każdej kategorii ( powiedzmy Administracja ) na całą szerokość belki postawić taki ''+'' ? i dla każdej kategorii inny obrazek ?

ikiooo - 2011-01-24 14:28:24

Mi niestety nie działa (FF).
Kod który wklejam:

<script>

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////



// USTAWIENIA SKRYPTU
id = "idx1";
content = '<a href="javascript:show1()">Night Moon - Twoja ścieżka fantasy</a>';

// KOD SKRYPTU
div = document.getElementById(id);
h2 = div.childNodes[1];
span = h2.childNodes[0];
span.innerHTML = content;

function showX() {
var div = document.getElementById(id);
box = div.childNodes[3];
span = h2.childNodes[0];

if (box.style.display == "none") {
box.style.display = "block";
}
else {
box.style.display = "none";
}
}

</script>

Próbowałem też na forach następnych. Niestety gdy klikam w odnośnik, kategoria się nie chowa.

Arashi - 2011-01-24 15:35:18

Zapomniałeś po podmieniać id. :] tam gdzie jest "GetElementByID(id)" musisz podmienić to id w nawiasie na "idx" (x to zmienna którą określiłeś wcześniej, w tym wypadku jeden).

Spróbuj czy to coś da. :)

Elian - 2011-01-24 17:24:26

function showX() {

Jak widać, nie zmieniłeś "X" na numer kategorii - co za tym idzie klikając w nazwę kategorii nie wywołujesz funkcji ze skryptu.

Lostplanetomaniak - 2011-01-24 19:00:41

Elian napisał:

function showX() {

Jak widać, nie zmieniłeś "X" na numer kategorii - co za tym idzie klikając w nazwę kategorii nie wywołujesz funkcji ze skryptu.

Niestety ja odpowiedź na swoje pytanie nie dostałem. Po za tym nie mogę zmienić tego obrazka ( + ).

Elian - 2011-01-24 19:55:56

LPM ten obrazek jest w ulepszonej wersji, która jest umieszczona na naszym forum, ale nie udostępniona do użytku ogólnego - co za tym idzie nie mam zamiaru komentować i pomagać w podkradaniu wersji 1.1 :P

Co do indywidualnych rozwiązań dla każdej kategorii, to jest taka możliwość. Trzeba pobawić się z poniższą linijką:

content = '<a href="javascript:showX()">Y</a>';

Tak naprawdę ta część JSMod'a decyduje co będzie zawierać dana belka z nazwą kategorii.

Arashi - 2011-01-24 22:51:06

A JSowy "content" może zawierać znaczniki html, dla niewtajemniczonych. :whistle:

ikiooo - 2011-01-25 07:48:31

Elian, Twoja rada mi pomogła.
Teraz niestety gdy mam kod na dwie kategorie, klikanie w pierwszą ukrywa i odsłania drugą. To dziwne, bo ma inne hiperłącze.

<script>

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////



// USTAWIENIA SKRYPTU
id = "idx1";
content = '<a href="javascript:show1()">Night Moon - Twoja ścieżka fantasy</a>';

// KOD SKRYPTU
div = document.getElementById(id);
h2 = div.childNodes[1];
span = h2.childNodes[0];
span.innerHTML = content;

function show1() {
var div = document.getElementById(id);
box = div.childNodes[3];
span = h2.childNodes[0];

if (box.style.display == "none") {
box.style.display = "block";
}
else {
box.style.display = "none";
}
}

</script>
<script>

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////



// USTAWIENIA SKRYPTU
id = "idx2";
content = '<a href="javascript:show2()">Świątynia Nieba i jej okolice</a>';

// KOD SKRYPTU
div = document.getElementById(id);
h2 = div.childNodes[1];
span = h2.childNodes[0];
span.innerHTML = content;

function show2() {
var div = document.getElementById(id);
box = div.childNodes[3];
span = h2.childNodes[0];

if (box.style.display == "none") {
box.style.display = "block";
}
else {
box.style.display = "none";
}
}

</script>

Elian - 2011-01-25 09:11:28

Właśnie tu wychodzi niedoskonałość skryptu... Przy dwóch kategoriach zaczyna się to mieszać i wszystko się chrzani... Bedę musiał to troszkę połatać i podrzucić troszkę inną wersję.
Ale spróbuj wrzucić to:

<script>

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////



// USTAWIENIA SKRYPTU
content1 = '<a href="javascript:show1()">Night Moon - Twoja ścieżka fantasy</a>';

// KOD SKRYPTU
div = document.getElementById("idx1");
h2 = div.childNodes[1];
span = h2.childNodes[0];
span.innerHTML = content1;

function show1() {
var div = document.getElementById("idx1");
box = div.childNodes[3];
span = h2.childNodes[0];

if (box.style.display == "none") {
box.style.display = "block";
}
else {
box.style.display = "none";
}
}

</script>
<script>

/////////////////////////////////////////////////////////////
// RollUpCategory v1.0 by Elian - www.pbfy.pun.pl //
/////////////////////////////////////////////////////////////



// USTAWIENIA SKRYPTU
content2 = '<a href="javascript:show2()">Świątynia Nieba i jej okolice</a>';

// KOD SKRYPTU
div = document.getElementById("idx2");
h2 = div.childNodes[1];
span = h2.childNodes[0];
span.innerHTML = content2;

function show2() {
var div = document.getElementById("idx2");
box = div.childNodes[3];
span = h2.childNodes[0];

if (box.style.display == "none") {
box.style.display = "block";
}
else {
box.style.display = "none";
}
}

</script>

Teraz powinno działać poprawnie.

ikiooo - 2011-01-25 14:38:47

Super ;). Działa. Już wiem o co chodzi.

pasjart.pl leotti.pl Ostrowo wakacje