Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Crear módulos en el ACPTema Solucionado

Soporte de MODs para phpBB 3.0.x
Dudas sobre AutoMOD aquí por favor.
Cerrado
Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Crear módulos en el ACP  Tema Solucionado

#1

Mensaje por Alorse »

Crear Módulos en el ACP

Viendo el interés de muchos usuarios lanzan desarrollar sus propios MODs sin tener aun el conocimiento necesario para hacerlo, me atrevo a posteaer esta guía hecha por mi y basaba en el articulo de la Wiki de phpBB Using the phpBB3.0 Module System, para ayudarlos en su labor de desarrollar y mas que todo de aprender.
La guía puede llegar a tornarse algo compleja, así que tratare de ser lo mas claro posible, dejando de comienzo algunos puntos claros:
  • Es para la creación de módulos en el ACP, mas no del UCP ni del MCP, aunque su funcionamiento sea exactamente igual.
  • No muestra como enlazar funciones de phpBB con el módulo que vamos a crear.
  • No enseña a crear MODs ni nada por el estilo solo modulos en el ACP de phpBB.
Dejo estos puntos claros para que las dudas que surjan, sean referentes a la guía y no a los puntos anteriores o similares.
Tomare como base el típico ejemplo del "Hola Mundo", que se podría decir es el primer programa que hacemos todos en cualquier lenguaje de programación.
El tutorial consta de la creación de 4 archivos y la edición de 1.
NOTA: Recuerden NO dejar ningún espacio en blanco al principio de los archivos antes del <?php

Sin mas rodeos comienzo, así que los archivos a crear con sus correspondientes rutas son:

  • includes/acp/acp_hola_mundo.php
  • includes/acp/info/acp_hola_mundo.php
  • language/xx/mods/hola_mundo.php (xx es el o los idiomas en que vallan a desarrollar el módulo)
  • adm/style/acp_hola_mundo.html

Todos los archivos están documentados mostrando que hace cada cosa, esto para hacer la guía mas breve.

Clase principal del Hola Mundo (includes/acp/acp_hola_mundo.php):

Código: Seleccionar todo

<?php

/**
 *
 * @package acp
 * @version $Id$
 * @copyright (c) 2007 phpBB Group 
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License 
 *
 */
/**
 * @ignore
 */
if (!defined('IN_PHPBB')) {
    exit;
}

/**
 * @package acp
 */
class acp_hola_mundo {

    var $action;

    function main($id, $mode) {
        global $user, $auth, $template, $phpEx;

        // Configuración inicial del módulo
        $user->add_lang('mods/hola_mundo'); //archivo de idioma language/xx/mods/
        $this->tpl_name = 'acp_hola_mundo'; //plantilla HTML del adm/style/
        $this->page_title = 'ACP_HELLO_WORLD'; //título del modulo en el ACP
        // Variables del módulo
        $hello = request_var('hello', '', true);
        $submit = request_var('submit', '', true) ? true : false;

        switch ($mode) {
            case 'index';
                $name = $user->data['username']; //Obtiene el nombre del usuario
                $info = $user->lang['CONFIG_UPDATED'] . adm_back_link($this->action); //Aviso de confimación
                break;
            case 'hello_world':
                $name = $user->lang['WORLD']; //Obtiene la varible de idioma 'WORLD'
                $info = sprintf($user->lang['SAY'], $hello, $name) . adm_back_link($this->action); //Aviso creado por nosotros
                break;
        }

        if ($submit) {
            trigger_error($info); // Muestra el aviso definido anteriormente.
        } else {
            $template->assign_vars(array(
                // Asignación de variables del sistema
                'S_NAME' => $name,
                'S_MODE' => $mode,
            ));
        }
    }

}

?>
Clase de información del Hola Mundo (includes/acp/info/acp_hola_mundo.php):

Código: Seleccionar todo

<?php

/**
 *
 * @package acp
 * @version $Id$
 * @copyright (c) 2005 phpBB Group
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 *
 */

/**
 * @package module_install
 */
class acp_hola_mundo_info {

    function module() {
        return array(
            'filename' => 'acp_hola_mundo', // Nombre del archivo
            'title' => 'ACP_HELLO_WORLD', // Titulo de la pagina en el ACP
            'version' => '0.0.0', // Versión de nuestro módulo
            'modes' => array(//Sub-módulos de nuestro modulo
                'index' => array('title' => 'INDEX_HELLO_WORLD', 'auth' => 'acl_a_user', 'cat' => array('')), //Módulo de Configuración Inicial
                'hello_world' => array('title' => 'HELLO_WORLD', 'auth' => 'acl_a_user', 'cat' => array('')), //Módulo de Hola Mundo
            ),
        );
    }

    function install() {
        
    }

    function uninstall() {
        
    }

}

?>
En esta clase se hace necesario definir algunas funciones, además como punto importante a tener en cuenta, es que este archivo se debe llamar exactamente igual al de la clase principal, en este caso los he llamado a ambos "acp_hola_mundo.php".

filename: nombre del archivo que debe ser igual al nombre del archivos de la Clase principal.
title: Variable de idioma que tendrá el nombre del Módulo.
version: Versión del Módulo.
modes: Los Sub-módulos asociados a nuestro modulo.

Cerrado

Volver a “Soporte de MODs”