Página 1 de 1

Email on birthday - No funciona

Publicado: 29 Nov 2008, 14:46
por RedSpider
Versión de phpBB: 3.0.3
Tipo de phpBB: phpBB estandar, (tambien llamado Vanilla) phpBB2 o phpBB3
MODs Instalados: Si
Tu conocimiento: Principiante
Enlace del Foro: http://foro.prisamata.com

¿Qué recuerdas haber hecho en el foro antes de aparecer este error?
Instalar este mod

¿Qué has realizado para intentar resolver el problema?
Revisar las instrucciones de instalación y repasar modificación de ficheros.

Descripción y Mensaje
Hola.
He instalado este MOD y en principio la instalación ha ido bien, y aparece la activación de email en el ACP dentro del apartado de características del foro.
El problema es que no ha enviado ningún mail ...

Durante la instalación tuve la duda de donde poner parte del código. Se trata de la línea

}
$db->sql_freeresult($result);

Que según las instrucciones hay que reemplazar por otras líneas de código.
La duda está en que dentro del fichero index.php esta línea aparece hasta 3 veces. Las instrucciones dan como pista que está alrededor de la línea 94, y no sé si el error puede estar ahí.
¿Alguien que lo tenga instalado podría decirme donde va esa parte del código exactaemente?
Yo lo he colocado después de esta parte del código:

if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list .= ' (' . ($now['year'] - $age) . ')';
}


Gracias.

Re: Email on birthday - No funciona

Publicado: 03 May 2009, 09:49
por Turbooo
en mis archivos estaba en la linea 106 y ese elegi yo

Re: Email on birthday - No funciona

Publicado: 03 May 2009, 19:14
por Alorse
Mira amigo, el codigo debe quedar así, en esta parte.

Código: Seleccionar todo

    // Generate birthday list if required ...
    $birthday_list = '';
    $bd_list_ary = array();
    if ($config['load_birthdays'] && $config['allow_birthdays'])
    {
        $now = getdate(time() + $user->timezone + $user->dst - date('Z'));
        $sql = 'SELECT user_id, username, user_colour, user_birthday, user_email, user_lang,user_notify_type, user_jabber 
            FROM ' . USERS_TABLE . "
            WHERE user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%'
                AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
        $result = $db->sql_query($sql);

        while ($row = $db->sql_fetchrow($result))
        {
            $birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);

            if ($age = (int) substr($row['user_birthday'], -4))
            {
                $birthday_list .= ' (' . ($now['year'] - $age) . ')';
            }
            if (trim($row['user_email']) && $config['birthday_emails'])
            {
                $bd_list_ary[] = array(
                    'method'    => $row['user_notify_type'],
                    'email'        => $row['user_email'],
                    'jabber'    => $row['user_jabber'],
                    'name'        => $row['username'],
                    'lang'        => $row['user_lang']
                );
            }
        }
        $db->sql_freeresult($result);

        $nowvar = getdate(time() + ($config['board_timezone'] + $config['board_dst'])*3600 - date('Z'));

        if ( sizeof($bd_list_ary) && $config['birthday_run'] < mktime(0, 0, 0, $nowvar['mon'], $nowvar['mday'], $nowvar['year']) && $config['birthday_emails'] )
       {
       set_config('birthday_run', mktime(0, 0, 0, $nowvar['mon'], $nowvar['mday'], $nowvar['year']));

       include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
        $messenger = new messenger();

        foreach ($bd_list_ary as $pos => $addr)
        {
            $messenger->template('birthday_email', $addr['lang']);

            $messenger->to($addr['email'], $addr['name']);
            $messenger->im($addr['jabber'], $addr['name']);

            $messenger->assign_vars(array(
                'USERNAME'        => htmlspecialchars_decode($addr['name'])
            ));

            $messenger->send($addr['method']);
        }
        unset($bd_list_ary);

        $messenger->save_queue();
        unset($messenger);
        }
        $cache->destroy('config');
    }  
Y recuerda que lo debes activar desde el ACP... (pero no recuerdo en que parte :nolose: creo que es en configuración de mensajes.)