Crear un archivo de instalación

Foro de debate para los escritores de MOD, sobre MOD en Desarrollo.

Moderador: Personalizaciones de Extensiones

Avatar de Usuario
Juanla
Menos de 100 mensajes
Menos de 100 mensajes
Mensajes: 48
Registrado: Lun Dic 13, 2010 7:49 pm

Crear un archivo de instalación

Mensaje sin leer por Juanla » Lun Jul 18, 2011 11:51 am

Patrocinador

El resultado que quiero es esto:

Imagen

Lo que he echo es ir aquí: http://www.phpbb.com/mods/umil/create.php

Rellenar los primeros datos (información usuario, nombre y versión del mod)

Luego no añadi nada más, ni permisos, ni config, ni tablas, etc.. ya que no usa (uso un config, pero se crea cuando lo activas la primera vez, así que creo que no es necesario añadir. Luego la parte viene en añadir módulos.

En Module Class (Clase del módulo) = Debería ir la clase php del mod no? "acp_phpbbsecurity.php"
En Module Parent (Módulo padre) = Debería ir el módulo padre? ".Mods"
En Module Basename (NombreBase) = Un nombre, supongo "PhpBBSecurity"

Pero me da error ('WRONG_DATA') con todo lo que he probado, he mirado algunos ejemplos pero nada, os dejo uno de los resultados:

Código: Seleccionar todo

$versions = array(
	'0.0.1-dev' => array(

		'module_add' => array(
			array('acp', 'ACP_CAT_DOT_MODS',
				array('module_basename'	=> 'PHPBBS_TITLE'),
			),
		),

	),
);
Se supone que añado el módulo al "acp", a la categoría de ".MODS" y ya a partir de ahí me pierdo jaja

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: Crear un archivo de instalación

Mensaje sin leer por Leviatan21 » Lun Jul 18, 2011 1:41 pm

Los módulos dependen un poco del archivo que colocas dentro de la carpeta raíz/includes/acp/info

Suponiendo que tu archivo se llama : acp_phpbbsecurity.php
mas o menos me imagino una estructura como esta :

Código: Seleccionar todo

<?php
class acp_phpbbsecurity_info
{
	function module()
	{
		return array(
			'filename'	=> 'acp_phpbbsecurity',
			'title'		=> 'ACP_PHPBBS_TITLE',
			'version'	=> '1.0.0',
			'modes'		=> array(
				'settings'	=> array('title' => 'ACP_PHPBBS_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_MODS')),
				'file'		=> array('title' => 'ACP_PHPBBS_FILE', 'auth' => 'acl_a_board', 'cat' => array('ACP_MODS')),
				'chmod'		=> array('title' => 'ACP_PHPBBS_CHMOD', 'auth' => 'acl_a_board', 'cat' => array('ACP_MODS')),
				'password'	=> array('title' => 'ACP_PHPBBS_PASS', 'auth' => 'acl_a_board', 'cat' => array('ACP_MODS')),
				'htaccess'	=> array('title' => 'ACP_PHPBBS_HTACCESS', 'auth' => 'acl_a_board', 'cat' => array('ACP_MODS')),
			),
		);
	}

	function install()
	{
	}

	function uninstall()
	{
	}
}
?>
Donde se leen los nombres de cada modo en la rama 'modes' => array()
Cada uno de esos modos, debe tener un módulo asociado, por lo que imagino un instalador asi :

Código: Seleccionar todo

<?php
// The array of versions and actions within each.
$versions = array(
	// Version 1.0.0
	'1.0.0'		=> array(
		// Modules
		'module_add'	=> array(
			// First, lets add a new category named ACP_PHPBBS_TITLE to ACP_CAT_DOT_MODS
			array('acp', 'ACP_CAT_DOT_MODS', 'ACP_PHPBBS_TITLE'),
			// Frontend Module
			array('acp', 'ACP_SD_TITLE', array(
					'module_basename'	=> 'acp_phpbbsecurity',
					'module_langname'	=> 'ACP_SD_SETTINGS',
					'module_mode'		=> 'settings',
					'module_auth'		=> 'acl_a_board',
				),
			),
			// file scaner Module
			array('acp', 'ACP_SD_TITLE', array(
					'module_basename'	=> 'acp_phpbbsecurity',
					'module_langname'	=> 'ACP_SD_STYLES',
					'module_mode'		=> 'file',
					'module_auth'		=> 'acl_a_board',
				),
			),
			// chmod Module
			array('acp', 'ACP_SD_TITLE', array(
					'module_basename'	=> 'acp_phpbbsecurity',
					'module_langname'	=> 'ACP_PHPBBS_CHMOD',
					'module_mode'		=> 'chmod',
					'module_auth'		=> 'acl_a_board',
				),
			),
			// password Module
			array('acp', 'ACP_SD_TITLE', array(
					'module_basename'	=> 'acp_phpbbsecurity',
					'module_langname'	=> 'ACP_PHPBBS_PASS',
					'module_mode'		=> 'password',
					'module_auth'		=> 'acl_a_board',
				),
			),
			// htaccess Module
			array('acp', 'ACP_SD_TITLE', array(
					'module_basename'	=> 'acp_phpbbsecurity',
					'module_langname'	=> 'ACP_PHPBBS_HTACCESS',
					'module_mode'		=> 'htaccess',
					'module_auth'		=> 'acl_a_board',
				),
			),
		),
	),
);
?>
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
Juanla
Menos de 100 mensajes
Menos de 100 mensajes
Mensajes: 48
Registrado: Lun Dic 13, 2010 7:49 pm

Re: Crear un archivo de instalación

Mensaje sin leer por Juanla » Lun Jul 18, 2011 7:16 pm

Pues se me complicó un poco con la variable 'ACP_SD_TITLE' que me dijiste, pero la cambié por la de la primer módulo que añadimos y fue fenomenal :)

Lo instalo en un foro desde 0 y si va lo posteo en phpBB para que lo pruebe alguien aver como va, espero que no cause mucho problema porque casi todo lo hace sobre él mismo.

----

Bueno esto pasa por la emoción, cuando voy a la pestaña Mods me encuentro esto:

Código: Seleccionar todo

Cannot find module ./../includes/acp/acp_acp_phpbbsecurity.php
Por lo que veo metió un acp_ de más.. no se porqué os dejo aquí el install tal y como me quedó:

Código: Seleccionar todo

<?php
/**
 *
 * @author Juanla (Juan Javier R.G.) juanjavierrg@gmail.com
 * @version $Id$
 * @copyright (c) 2011 Juanla
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 *
 */

/**
 * @ignore
 */
define('UMIL_AUTO', true);
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();


if (!file_exists($phpbb_root_path . 'umil/umil_auto.' . $phpEx))
{
	trigger_error('Please download the latest UMIL (Unified MOD Install Library) from: <a href="http://www.phpbb.com/mods/umil/">phpBB.com/mods/umil</a>', E_USER_ERROR);
}

// The name of the mod to be displayed during installation.
$mod_name = 'PhpBBSecurity';

/*
* The name of the config variable which will hold the currently installed version
* UMIL will handle checking, setting, and updating the version itself.
*/
$version_config_name = 'phpbbsecurity_version';


// The language file which will be included when installing
$language_file = 'mods/phpbbsecurity';


/*
* Optionally we may specify our own logo image to show in the upper corner instead of the default logo.
* $phpbb_root_path will get prepended to the path specified
* Image height should be 50px to prevent cut-off or stretching.
*/
//$logo_img = 'styles/prosilver/imageset/site_logo.gif';

/*
* The array of versions and actions within each.
* You do not need to order it a specific way (it will be sorted automatically), however, you must enter every version, even if no actions are done for it.
*
* You must use correct version numbering.  Unless you know exactly what you can use, only use X.X.X (replacing X with an integer).
* The version numbering must otherwise be compatible with the version_compare function - http://php.net/manual/en/function.version-compare.php
*/
$versions = array(
   // Version 0.0.1
   '0.0.1'      => array(
      // Modules
      'module_add'   => array(
         // First, lets add a new category named ACP_PHPBBS_TITLE to ACP_CAT_DOT_MODS
         array('acp', 'ACP_CAT_DOT_MODS', 'ACP_PHPBBS_TITLE'),
         // Frontend Module
         array('acp', 'ACP_PHPBBS_TITLE', array(
               'module_basename'   => 'acp_phpbbsecurity',
               'module_langname'   => 'INDEX_PHPBBSECURITY',
               'module_mode'      => 'index',
               'module_auth'      => 'acl_a_board',
            ),
         ),
         // file scaner Module
         array('acp', 'ACP_PHPBBS_TITLE', array(
               'module_basename'   => 'acp_phpbbsecurity',
               'module_langname'   => 'PHPBBSECURITY_FS',
               'module_mode'      => 'file_scanner',
               'module_auth'      => 'acl_a_board',
            ),
         ),
         // chmod Module
         array('acp', 'ACP_PHPBBS_TITLE', array(
               'module_basename'   => 'acp_phpbbsecurity',
               'module_langname'   => 'CHMOD_PERMISSIONS',
               'module_mode'      => 'chmod_permissions',
               'module_auth'      => 'acl_a_board',
            ),
         ),
         // password Module
         array('acp', 'ACP_PHPBBS_TITLE', array(
               'module_basename'   => 'acp_phpbbsecurity',
               'module_langname'   => 'PHPBBSECURITY_PS',
               'module_mode'      => 'password_strong',
               'module_auth'      => 'acl_a_board',
            ),
         ),
         // htaccess Module
         array('acp', 'ACP_PHPBBS_TITLE', array(
               'module_basename'   => 'acp_phpbbsecurity',
               'module_langname'   => 'PHPBBSECURITY_HTACCESS',
               'module_mode'      => '.htaccess',
               'module_auth'      => 'acl_a_board',
            ),
         ),
      ),
   ),
);

// Include the UMIL Auto file, it handles the rest
include($phpbb_root_path . 'umil/umil_auto.' . $phpEx);
Bueno, supongo que será una tontería, pero hasta que no acabe de entender esto :?

Avatar de Usuario
Juanla
Menos de 100 mensajes
Menos de 100 mensajes
Mensajes: 48
Registrado: Lun Dic 13, 2010 7:49 pm

Re: Crear un archivo de instalación

Mensaje sin leer por Juanla » Lun Jul 18, 2011 7:24 pm

Ya vi que no hay que indicar "acp_loquesea" en el install y me lo terminó de instalar siento las molestias por escribir post tan largos, creo que por muy poco no pude volver a editarlo.

Ahora el problema que tuve es que perdí la codificación de idioma, pero lo arreglaré es solo html. Gracias por todo leviatan21!

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: Crear un archivo de instalación

Mensaje sin leer por Leviatan21 » Lun Jul 18, 2011 9:37 pm

Juanla escribió:Pues se me complicó un poco con la variable 'ACP_SD_TITLE' que me dijiste,
Eso pasa por abusar del copy/paste, lo saque de un instalador mío, en su lugar debe ir ACP_PHPBBS_TITLE
Juanla escribió:Por lo que veo metió un acp_ de más.. no se porqué os dejo aquí el install tal y como me quedó:
En estas lineas está el error : ( en total 5 veces)

Código: Seleccionar todo

'module_basename'   => 'acp_phpbbsecurity',
Deben ser sin el acp_:

Código: Seleccionar todo

'module_basename'   => 'phpbbsecurity',
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: Crear un archivo de instalación

Mensaje sin leer por Leviatan21 » Lun Jul 18, 2011 9:38 pm

Juanla escribió:Ahora el problema que tuve es que perdí la codificación de idioma, pero lo arreglaré es solo html.
No lo entendí :oops:
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
Juanla
Menos de 100 mensajes
Menos de 100 mensajes
Mensajes: 48
Registrado: Lun Dic 13, 2010 7:49 pm

Re: Crear un archivo de instalación

Mensaje sin leer por Juanla » Lun Jul 18, 2011 9:57 pm

Leviatan21 escribió:
Juanla escribió:Pues se me complicó un poco con la variable 'ACP_SD_TITLE' que me dijiste,
Eso pasa por abusar del copy/paste, lo saque de un instalador mío, en su lugar debe ir ACP_PHPBBS_TITLE
Juanla escribió:Por lo que veo metió un acp_ de más.. no se porqué os dejo aquí el install tal y como me quedó:
En estas lineas está el error : ( en total 5 veces)

Código: Seleccionar todo

'module_basename'   => 'acp_phpbbsecurity',
Deben ser sin el acp_:

Código: Seleccionar todo

'module_basename'   => 'phpbbsecurity',
Jajaja si, totalmente abuse del copy and paste, pero claro, cuando no sabes que tocar.. ya entiendo mucho mejro este tipo de archivos (que no completamente) pero logre que funcionara :)

En cuanto a la codificación, tras instalarlo perdí las tildes y ñ, pero eso se debe a otra cosa, voy a descansar un poco y cuando pueda, quiero re-escribir parte del código de lo que llevaba, y luego añadiré algunas funcionalidades más que tengo previstas :)

Muchas gracias por tu ayuda leviatan21, sinceramente sin tí dudo que hubiera encontrado ganas de seguir con esto, porque hay muy poca información buena en castellano, en inglés está la justa y bueno, dejo el tema. Gracias de nuevo!

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: Crear un archivo de instalación

Mensaje sin leer por Leviatan21 » Lun Jul 18, 2011 10:23 pm

Juanla escribió:En cuanto a la codificación, tras instalarlo perdí las tildes y ñ, pero eso se debe a otra cosa
Aconsejo que utilices buenos editores como puede ser el notepad++ configurado para almacenar los archivos en formato UTF-8 sin BOM
Es gratis y es bueno para casi cualquier tipo de código
Juanla escribió:Muchas gracias por tu ayuda leviatan21, sinceramente sin tí dudo que hubiera encontrado ganas de seguir con esto, porque hay muy poca información buena en castellano, en inglés está la justa y bueno, dejo el tema. Gracias de nuevo!
Asi estaba yo cuando comencé, pero sin ayuda en español, :roll:
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Responder