To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Propozycje modyfikacji - [beta] Ajaxowe stawianie piwka na podstawie BeerMod 2.2a FIN

kevin_ - 21-03-2011, 10:59
Temat postu: [beta] Ajaxowe stawianie piwka na podstawie BeerMod 2.2a FIN
Opis modyfikacji napisał/a:

Wirtualny browar stawiamy bez przeładowania strony WWW. Po udanej operacji wyświetla nam się obrazek kciuka do góry sugerujący poprawność wykonania operacji. W przypadku zablokowanej obsługi JAVASCRIPT w przeglądarce, skrypt normalnie stawia piwko (po staremu, z odświeżeniem i przekierowaniem do tematu)


SCREENY:

- Widok przed postawieniem piwa - standardowy wygląd, klikamy na piwko i..

- operacja udała się, piwko wystawione

- jeśli coś nie pójdzie po naszej myśli (jakiś błąd po stronie beermoda) bądź klikniemy później na ikonkę kciuka pojawi się nam inny obrazek: - kciuk w dół

W celu zmiany adresów obrazków (tych kciuków, obrazka loading...) udajemy się do pliku jsscripts.js i edytujemy wartości dla "Icon_Up", "Icon_Down", "Icon_Loading"

Modyfikacja jest prosta do bólu, prosty cel - żadnych zbędnych bajerów. Łatwo ją dostosować do np. portalu (gdy chcemy aby piwka można było też wystawiać z portalu). Wystarczy, aby nasz link do piwka był w mniej więcej takiej postaci:
Kod:

<a id="beer_url_{ID_POSTU}" onclick="postawPiwko({ID_POSTU}); return false;" href="beermod.php?mode=post_beer&amp;p={ID_POSTU}">(...) obrazek piwka</a>


Oczywiście musimy załączyć bibliotekę jQuery (standardowo w instrukcji ją dodajemy do sekcji HEAD w overall_header.tpl, stąd na każdej podstronie będzie załączona) oraz plik "jsscripts.js" - jednak on tak samo jest w sekcji HEAD, czyli na każdej podstronie forum.

Mod bazowałem na podstawie Beer Mod 2.2a FINAL, nie mam pojęcia czy zadziała na Beer 2.4 - choć moim zdaniem powinno być OK

kooza - 21-03-2011, 11:46

Działa z tym beer modem >> http://www.przemo.org/php...pic.php?t=65912
tylko że jest jeden problem:
Jak daje piwko to cały czas wyskakuje kciuk w dół. :roll:
Demo: http://cityfm.xaa.pl/przemo/

kevin_ - 21-03-2011, 11:50

kooza, weź podmień funkcje is_ajax() - właśnie wrzuciłem poprawioną instrukcje.
MagicalFire - 21-03-2011, 11:56

kooza, masz cos powalone bo niby stawia piwo ale tak naprawdę nie dodaje go
kevin_,moze masz jakos demo

kooza - 21-03-2011, 11:56

kevin_, Teraz jest wszystko ok. Działa ;)

MagicalFire napisał/a:
kooza, masz cos powalone bo niby stawia piwo ale tak naprawdę nie dodaje go

Jak go nie dodaje. jak go dodaje.
Wtedy nie dodawał. bo był ten błąd w funkcje is_ajax()
Ale już jest poprawione ;)

Pawliniak - 21-03-2011, 17:55

Polecam wszystko działa z 2.4 ;)
Anonymous - 22-03-2011, 16:07

Fajnie by było, gdyby zamiast kciuka w górę był napis lub obrazek, który po kliknięciu w niego piwo zostałoby również ajaxowo cofnięte. Kciuk w dół przy błędzie to złe rozwiązanie, ktoś, kto nie będzie wiedział, że oznacza to błąd będzie myślał, że dał piwo minusowe lub coś w tym stylu. Lepiej po prostu, żeby wyskoczył napis "błąd" i po krzyku.
MaTeK_ - 22-03-2011, 17:32

to masz kod
Kod:
Icon_Up            = 'http://members.multimania.co.uk/songoo/img_up.gif',
        Icon_Down        = 'http://members.multimania.co.uk/songoo/img_down.gif',
        Icon_Loading    = 'http://members.multimania.co.uk/songoo/ajax_loading.gif'

w images/jsscripts.js to wgraj obrazek jaki chcesz i pozamieniaj ścieżki

Anonymous - 26-03-2011, 11:06

A jak y tym cofaniem wystawionego piwa?
kevin_ - 26-03-2011, 11:10

jakim cofaniem? jest w ogóle taka opcja w beermodzie? - jeśli nie, to ja jej nie będę dorabiał
japi55 - 26-03-2011, 15:17

kevin_ napisał/a:
jakim cofaniem? jest w ogóle taka opcja w beermodzie?

Nie ma ;)

MagicalFire - 27-03-2011, 13:06

Cytat:
Nie ma ;)

jest ale nie bezpośrednio w tematach

d!r3k - 05-04-2011, 22:01

kevin_, a nie lepiej wywalić to potwierdzenie postawienie piwa?

Dla zainteresowanych:
Kod:
#----[ ZAMIAST ]----
    case 'post_beer':   
        if ( !$post_id )
        {
            message_die(GENERAL_ERROR, $lang['Beermod_no_post_id']);
        }

        if ( isset($HTTP_POST_VARS['cancel']) AND $beermod->is_ajax() === FALSE)
        {
            redirect( ( strpos($ref_url, $_SERVER['HTTP_HOST']) ) ? basename($ref_url) : append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id") . "#$post_id" );
        }
        if ( !$confirm AND $beermod->is_ajax() === FALSE )
        {
            $message = '</span><form action="' . append_sid("beermod.$phpEx?mode=post_beer&amp;" . POST_POST_URL . "=$post_id") . '" method="post">' . $lang['Beermod_confirm_text'] . '<br /><br /><input type="submit" name="confirm" value="' . $lang['Yes'] . '" class="mainoption" /> &nbsp; <input type="submit" name="cancel" value="' . $lang['Cancel'] . '" class="liteoption" /><input type="hidden" name="ref_url" value="' . str_replace('=', '', base64_encode($_SERVER['HTTP_REFERER'])) . '" /></form><span class="gen">';
            message_die(GENERAL_MESSAGE, $message, $lang['Beermod_confirmation_required']);
        }
        if ( $beermod->submit_beer($db, $post_id, $userdata_user_id) )
        {
            if ( $beermod->is_ajax() )
            {
                echo 'BeerSet';
               
                return true;
            }
            else
            {
                redirect( ( strpos($ref_url, $_SERVER['HTTP_HOST']) ) ? basename($ref_url) : append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id") . "#$post_id" );
            }
        }
        break;

#----[ DAJCIE ]----
    case 'post_beer':   
        if ( !$post_id )
        {
            message_die(GENERAL_ERROR, $lang['Beermod_no_post_id']);
        }

        if ( isset($HTTP_POST_VARS['cancel']) AND $beermod->is_ajax() === FALSE)
        {
            redirect( ( strpos($ref_url, $_SERVER['HTTP_HOST']) ) ? basename($ref_url) : append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id") . "#$post_id" );
        }
        if ( $beermod->submit_beer($db, $post_id, $userdata_user_id) )
        {
            if ( $beermod->is_ajax() )
            {
                echo 'BeerSet';
               
                return true;
            }
            else
            {
                redirect( ( strpos($ref_url, $_SERVER['HTTP_HOST']) ) ? basename($ref_url) : append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id") . "#$post_id" );
            }
        }
        break;

Gangst3r - 29-04-2011, 10:57

Wszystko niby pięknie ładnie ale u mnie przeładowuje strone tylko bez potwierdzenia :(
Wie ktoś jak temu zaradzić? Osobiście te łapki mnie wkurzały i moim zdaniem był to zbędny dodatkiem dlatego jsscripts.js nie edytowałem. Wcześniej miałem te łapki po postawieniu piwa, a chciałbym, żeby było tak jak w standardzie tylko bez tego potwierdzenia Tak/Anuluj i ten napis autor piwa otrzymał X piw powoli się odsłaniał taki efekt Fade in :P

Master93 - 29-09-2013, 20:57

działa na 2.4 wersji? :)


Powered by phpBB modified by Przemo © 2003 phpBB Group