Liste de controllers :
Dedans, il y a le dossier actions avec ses propres controllers.
Ici on gère toutes les actions d'un joueur sur la map (la bulle verte).
Si vous créez une de ces classes ci-dessus, vous écraserez les fichiers par défaut. En cas d'erreur ou mauvaise manipulation, il vous suffira de supprimer votre fichier pour que celui par défaut revienne.
<?php defined( 'SYSPATH' ) OR die( 'No direct access allowed.' ); /** * Controller public du template. cette class est l'extends de tous * les controllers qui souhaitent afficher le template du jeu. * * @package Template * @author Pasquelin Alban * @copyright (c) 2011 * @license http://www.openrpg.fr/license.html * @version 2.0.0 */ abstract class Template_Controller extends Authentic_Controller { /** * Permet de faire passer l'object template qui sera la vue finale. * * @var object protected */ protected $template = FALSE; /** * Permet d'afficher ou non le template. * * @var bool protected */ protected $auto_render = TRUE; /** * Afficher ou non le menu de l'utilisateur. * * @var bool protected */ protected $menu = TRUE; /** * Afficher les informations de l'utilisateur. * * @var bool protected */ protected $information_menu = TRUE; /** * Afficher l'inventaire de l'utilisateur. * * @var bool protected */ protected $inventaire_menu = TRUE; /** * Afficher l'équipement de l'utilisateur. * * @var bool protected */ protected $stuff_menu = TRUE; /** * listing des fichiers JS à charger dans le template propre au systeme. * * @var array protected */ protected $script = FALSE; /** * listing des fichiers JS à charger dans le template propre à l'utilisateur. * * @var array protected */ protected $my_script = FALSE; /** * listing des fichiers CSS à charger dans le template mais qui ne seront pas compressés. * * @var array protected */ protected $script_no_compress = FALSE; /** * listing des fichiers CSS à charger dans le template. * * @var array protected */ protected $css = FALSE; public function __construct() { parent::__construct(); $this->template = new View( 'template/global' ); $this->template->msg = $this->input->get( 'msg' ); Event::add( 'system.post_controller', array( $this, '_render' ) ); } /** * Traitement du template après le chargement de toutes les méthodes (page). * * @return void */ public function _render() { if( $this->auto_render === TRUE ) { self::meta_link(); $this->template->login = $this->user ? TRUE : FALSE; $this->template->admin = isset( $this->role->name ) && (in_array( 'admin', $this->role->name ) || in_array( 'modo', $this->role->name )) ? TRUE : FALSE; if( $this->user && $this->menu ) self::info_user_right(); $this->template->render( TRUE ); } } /** * Gestion des informations utilisateur sur le template. * * @return void */ private function info_user_right() { $this->template->menu = new View( 'user/menu' ); if( $this->information_menu ) { $this->template->menu->information = new View( 'user/information' ); $this->template->menu->information->user = $this->user; } if( $this->inventaire_menu ) { $arrayItem = FALSE; if( ($items = Item_Model::instance()->user_quick( $this->user->id ) ) !== FALSE ) foreach( $items as $item ) $arrayItem[$item->item_position] = $item; $this->template->menu->inventaire = new View( 'user/inventaire' ); $this->template->menu->inventaire->items = $arrayItem; } if( $this->stuff_menu ) { $attaque = $defense = 0; $arrayStuff = FALSE; if( ($stuffs = Item_Model::instance()->stuff_user( $this->user->id ) ) !== FALSE ) foreach( $stuffs as $stuff ) { $arrayStuff[$stuff->item_position] = $stuff; if( $stuff->attaque ) $attaque += $stuff->attaque; if( $stuff->defense ) $defense += $stuff->defense; } $this->template->menu->stuff = new View( 'user/stuff' ); $this->template->menu->stuff->items = $arrayStuff; $this->template->menu->stuff->attaque = number_format( $attaque ); $this->template->menu->stuff->defense = number_format( $defense ); } } /** * Methode : compresse les donnée en JSON */ protected function json( array $txtArray ) { foreach( $txtArray as $txt ) $display[] = json_encode( $txt ); return implode( ',', $display ); } /** * Gestion des JS/CSS du jeu. * * @return void */ private function meta_link() { $script = array( 'jquery', 'jquery.tipsy', 'loading', 'inventaire' ); $css = array( 'core' ); $script[] = Router_Core::$controller; $css[] = Router_Core::$controller; if( $this->script && is_array( $this->script ) ) $script = array_merge( $script, $this->script ); if( $this->css && is_array( $this->css ) ) $css = array_merge( $css, $this->css ); $script = array_unique( $script ); $css = array_unique( $css ); $this->template->script = false; if( $this->script_no_compress ) $this->template->script = html::script( $this->script_no_compress ); $this->template->script .= html::script( array( 'js/phpjs', Kohana::config( 'url.js' ) . 'js/compress--' . implode( '--', $script ) ) ); if( $this->my_script ) $this->template->script .= html::script( $this->my_script ); $this->template->css = html::stylesheet( 'css/compress--' . implode( '--', $css ) ); } } ?>