Cambiar password de Usuario desde el ACP

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

Re: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Juanla » Sab Jul 16, 2011 3:05 pm

Patrocinador

Juanla escribió:

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE --> checked="checked"<!-- ENDIF -->
funciona en el ACP correctamente, para usar el mismo comodín en las plantillas normales de prosilver tengo que hacer algo? he estado probando y no me funcionaba :?:

Y gracias de nuevo!
Cierto, faltaba un paréntesis! Ya solo me queda eso de arriba y espero no molestar en un día o dos al menos :oops:

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

Re: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Juanla » Sab Jul 16, 2011 5:29 pm

Si sirve de ayuda añado más información, que he echo más pruebas:
El campo de la tabla phpbb_config, trabaja bien con el form del ACP:
Imagen

Además el form del ACP, se mantiene en No o en Si dependiendo de ese valor, vamos que esa parte funciona bien.

Ahora añadí al ucp_register.html lo siguiente:

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE --> ESTA ACTIVO <!-- ENDIF -->
<!-- IF not PHPBBSPS_ENABLE --> NO ESTA ACTIVO<!-- ENDIF -->
Pero siempre el resultado es NO ESTA ACTIVO.

Pensando me dije, bueno, si el archivo que aquí se ejecuta es ucp.php, sólo tengo que buscar en el switch el "register" y le añado la variable (osea donde obtiene si está activo o no):

Código: Seleccionar todo

                $template->assign_vars(array(
                'PHPBBSPS_ENABLE'      => (isset($config['phpbbsps_enable'])) ? $config['phpbbsps_enable'] : false,    
                ));
Pero se sigue manteniendo el "NO ESTA ACTIVO".

He probado también a meter en la plantilla el IF así:

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE  == 1 --> ESTA ACTIVO <!-- ENDIF -->
Pero nada, sigo investigando :lol:

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: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Leviatan21 » Sab Jul 16, 2011 5:56 pm

Juanla escribió:Pero se sigue manteniendo el "NO ESTA ACTIVO".
Asegurate que la variable $config esté disponible en donde lo utilizas, como desarrollador siempre utilizo el modo DEBUG habilitado en busca de errores.

Si $config no está disponible, siempre dará falso, y si no está disponible agregas antes

Código: Seleccionar todo

glogal $config
Y en la plantilla :

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE -->
ESTA ACTIVO
<!-- ELSEIF -->
NO ESTA ACTIVO
<!-- ENDIF -->
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: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Juanla » Sab Jul 16, 2011 10:05 pm

Suponiendo que quiera usarlo en la página de registro, añadí eso al ucp.php, concretamente quedó así:

Código: Seleccionar todo

	
case 'register':
            global $config;
		if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		$module->load('ucp', 'register');
		$module->display($user->lang['REGISTER']);
                $template->assign_vars(array(
                'PHPBBSPS_ENABLE'      => (isset($config['phpbbsps_enable'])) ? $config['phpbbsps_enable'] : false,    
                ));
	break;
Si le añadí el config como puedes ver, pero claro, sin añadirselo también me fije que otros "cases" de ese mismo archivo usan ese array y supongo sin problemas :?:

El modo debug siempre lo tengo activado en el foro de pruebas, y en estos casos no me soltó error.

Probando tal y como está ahora /con el código para la plantilla que me has proporcionado), no me muestra nada cuando voy a la página de registro, si en la plantilla en vez de eso pongo esto:

Código: Seleccionar todo

</form>
<!-- IF PHPBBSPS_ENABLE -->
ESTA ACTIVO
<!-- ELSEIF -->
NO ESTA ACTIVO
<!-- ENDIF -->
<!-- IF not PHPBBSPS_ENABLE-->No esta activo (If not)<!-- ENDIF -->

<!-- INCLUDE overall_footer.html -->
Veo lo siguiente
Imagen

Vamos que no hay manera :? Voy a dejar aquí el código relevante aver si vemos donde falla:
-------------------------
includes/acp/acp_phpbbsecurity.php

Código: Seleccionar todo

        $submitpasschecker = request_var('submitsc', '', true) ? true : false;

        include($phpbb_root_path . 'includes/functions_phpbbsecurity.' . $phpEx);
        
        switch ($mode) {
            case 'index':
                $estado_debug = "";
                obtener_versiones();
                if(comprobar_debug() > 0){
                    $estado_debug = "<span style='color:red'>ON</span>";}
                else{$estado_debug = "<span style='color:green'>OFF</span>";}

                if($submitpasschecker){
                    set_config('phpbbsps_enable', request_var('phpbbsps_enable', 0));
                    trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
                }

                $template->assign_vars(array(
                'PHPBBSPS_ENABLE'      => (isset($config['phpbbsps_enable'])) ? $config['phpbbsps_enable'] : false,    
                'PHPBBS_CD'            => $estado_debug,
                ));
               
                break;
Lo relevante aquí es el if($submitpasschecker) hasta el break;
--
/adm/style/acp_phpbbsecurity.html

Código: Seleccionar todo

<form method="post" name="passwordcheck" action="{U_ACTION}">
<fieldset>
<legend>{L_PHPBBSPS_CONFIG}</legend>
<dl>
        <dt><label for="phpbbsps_enable">{L_PHPBBSPS_ENABLE}:</label></dt>
        <dd><input type="radio" class="radio" name="phpbbsps_enable" value="1"<!-- IF PHPBBSPS_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp;
            <input type="radio" class="radio" name="phpbbsps_enable" value="0"<!-- IF not PHPBBSPS_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<p class="quick">
        <input type="submit" id="submit_set_config" name="submitsc" value="{L_SUBMIT}" class="button1"/>
</p>
</fieldset>
</form>
Esto es el formulario que lo activa, esta en la parte del "index", y por lo que entiendo creo que hasta aquí trabaja bien.
-----
Vuelvo a poner mi situación, por si refresca o aclara mejor. Intento que en la página de registro del foro (ucp_register.html) añadir un código siempre que la opción que hemos creado arriba esté activada, y si no está activada no aparezca (lo típico en muchos mods).

Para ello voy a ucp.php, y busco el case "register" que es el que marca en la página de registro (ucp.php?mode=register), y lo dejo así:

Código: Seleccionar todo

	case 'register':
            global $config;
		if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		$module->load('ucp', 'register');
		$module->display($user->lang['REGISTER']);
                $template->assign_vars(array(
                'PHPBBSPS_ENABLE'      => (isset($config['phpbbsps_enable'])) ? $config['phpbbsps_enable'] : false,    
                ));
	break;
Sólo le añado la variable global $config, y mando la variable PHPBBSPS_ENABLE a la plantilla de nuevo.

Luego voy a upc_register.html (La página de registro) y añado antes del overall_footer.html esto:

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE -->
ESTA ACTIVO
<!-- ELSEIF -->
NO ESTA ACTIVO
<!-- ENDIF -->
<!-- IF not PHPBBSPS_ENABLE-->No esta activo (If not)<!-- ENDIF -->
El resultado el que hemos visto.

Si hace falta algún usuario de pruebas, o puedo aportar más información lo haré sin problemas

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: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Leviatan21 » Dom Jul 17, 2011 2:02 am

Prueba utilizando <!-- ELSE --> y no <!-- ELSEIF -->

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE -->
ESTA ACTIVO
<!-- ELSE -->
NO ESTA ACTIVO
<!-- ENDIF -->
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: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Juanla » Dom Jul 17, 2011 7:34 am

Pues sigue exactamente igual, solo me muestra el del If not:

Código: Seleccionar todo

<!-- IF PHPBBSPS_ENABLE -->
ESTA ACTIVO
<!-- ELSE -->
NO ESTA ACTIVO
<!-- ENDIF -->
<!-- IF not PHPBBSPS_ENABLE-->No esta activo (If not)<!-- ENDIF -->
http://foropruebas.net76.net/ucp.php?mode=register

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: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Leviatan21 » Dom Jul 17, 2011 1:24 pm

Acabo de darme cuenta por que no funciona, en el caso del ucp.php y los módulos nada funciona luego de una llamada a :

Código: Seleccionar todo

$module->display();
Y ese es el motivo por el cual esto nunca se llega a ejecutar :

Código: Seleccionar todo

      		$module->display($user->lang['REGISTER']);

       		$template->assign_vars(array(
       			'PHPBBSPS_ENABLE'      => (isset($config['phpbbsps_enable'])) ? $config['phpbbsps_enable'] : false,
       		));
Solo debes invertir el orden de esas lineas y dejar que

Código: Seleccionar todo

$module->display($user->lang['REGISTER']);
sea lo último

Es un caso de mala elección del archivo para ver si el ejemplo funcionaba...
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: Cambiar password de Usuario desde el ACP

Mensaje sin leer por Juanla » Dom Jul 17, 2011 1:57 pm

Efectivamente era eso, muchas gracias me has dado trabajo para un rato ya :)

Un saludo!

Responder