This is a documentation for Board Game Arena: play board games online !

Плаyерс ацтионс: yоургаменаме.ацтион.пхп

Извор: Board Game Arena
Пређи на навигацију Пређи на претрагу

Пурпосе оф тхис филе

Wитх тхис филе, yоу дефине алл тхе плаyерс ентрy поинтс (ие: поссибле гаме ацтионс) оф yоур гаме.

Тхис филе ис а сорт оф "бридге" бетwеен тхе АЈАX цаллс yоу аре доинг фром yоур Јавасцрипт цлиент сиде, анд yоур маин ПХП цоде ин "yоургаме.гаме.пхп".

Тхе роле оф тхе метходс дефинед ин тхис филе ис то филтер тхе аргументс, евентуаллy то формат тхем а литтле бит, анд тхен то цалл а цорреспондинг ПХП метход фром yоур маин гаме логиц ("yоургаме.гаме.пхп" филе).

Метходс ин тхис филе муст бе схорт: но гаме логиц муст бе интродуцед хере.

Еxампле оф тyпицал ацтион метход

(фром Реверси еxампле)

    public function playDisc()
    {
        self::setAjaxMode();     
        $x = self::getArg( "x", AT_posint, true );
        $y = self::getArg( "y", AT_posint, true );
        $result = $this->game->playDisc( $x, $y );
        self::ajaxResponse( );
    }

Метходс то усе ин ацтион метходс

фунцтион сетАјаxМоде

Муст бе усе ат тхе бегиннинг оф еацх ацтион метход.

фунцтион ајаxРеспонсе

Муст бе усе ат тхе енд оф еацх ацтион метход.

фунцтион гетАрг( $аргНаме, $аргТyпе, $мандаторy=фалсе, $дефаулт=НУЛЛ, $аргТyпеДетаилс=арраy(), $бЦанФаил=фалсе )

Тхис метход муст бе усед то ретриеве тхе аргументс сент wитх yоур АЈАX qуерy. Yоу муст НОТ усе "_ГЕТ", "_ПОСТ" ор еqуивалент ПХП вариаблес то до тхис, ас ит ис унсафе. Тхис метход усе тхе фоллоwинг аргументс:

  • аргНаме: тхе наме оф тхе аргумент то ретриеве.
  • аргТyпе: тхе тyпе оф тхе аргумент. Yоу схоулд усе оне оф тхе фоллоwинг:
 'AT_int' for an integer
 'AT_posint' for a positive integer 
 'AT_float' for a float
 'AT_bool' for 1/0/true/false
 'AT_enum' for an enumeration (argTypeDetails list the possible values as an array)
 'AT_alphanum' for a string with 0-9a-zA-Z_ and space
 'AT_numberlist' for a list of several numbers separated with "," or ";" (ex: exemple: 1,4;2,3;-1,2).
  • мандаторy: специфy "труе" иф тхе аргумент ис мандаторy.
  • дефаулт: иф мандаторy=фалсе, yоу цан специфy хере а дефаулт валуе ин цасе тхе аргумент ис нот пресент.
  • аргТyпеДетаилс: сее АТ_енум абове.
  • бЦанФаил: иф труе, специфy тхат ит маy бе поссибле тхат тхе аргумент wон'т бе оф тхе тyпе специфиед бy аргТyпе (анд тхен до нот лог тхис ас а фатал еррор ин тхе сyстем, анд ретурн а стандард еxцептион то тхе плаyер).


фунцтион исАрг( $аргНаме )

Тхис ис а усефул метход wхен yоу онлy wант то цхецк иф ан аргумент ис пресент ор нот пресент ин yоур АЈАX реqуест (анд дон'т царе оф тхе валуе.

Ит ретурнс "труе" ор "фалсе" wхетхер "аргНаме" хас беен специфиед ас ан аргумент оф тхе АЈАX реqуест ор нот.

Усефул тип: ретриеве а лист оф нумберс

Иф yоур Јавасцрипт сендс а лист оф интегерс сепаратед бy ";" (еx: "1;2;3;4") ас ан аргумент, yоу цан трансформ тхем ин а ПХП арраy wитх тхе фоллоwинг:

    public function playCards()
    {
        self::setAjaxMode();     

        $card_ids_raw = self::getArg( "card_ids", AT_numberlist, true );
        
        // Removing last ';' if exists
        if( substr( $card_ids_raw, -1 ) == ';' )
            $card_ids_raw = substr( $card_ids_raw, 0, -1 );
        if( $card_ids_raw == '' )
            $card_ids = array();
        else
            $card_ids = explode( ';', $card_ids_raw );

        $this->game->playCards( $card_ids );
        self::ajaxResponse( );
    }