[Error]  Problema con Proportal + Fit on page
* URL del foro: www.Infomaster21.com * Versión del foro: 1.6 Hace muchos meses que logre poner el redimensionador para el portal, editando la plant...


Hace muchos meses que logre poner el redimensionador para el portal, editando la plantilla pro_portal_announcement agregando al comienzo:

Cita:<script type="text/javascript" src="jscripts/fitonpage.js?ver=230"></script>
<script type="text/javascript">
<!--
var fitonpage_on = "{$mybb->settings['g33k_fitonpage_enabled']}";
var fitonpage_resize = "700";
var fitonpage_fluid = "80";
var fitonpage_topbar_resized = "{$lang->fitonpage_topbar_resized}";
var fitonpage_topbar_full = "{$lang->fitonpage_topbar_full}";
var fitonpage_topbar_text_class = "{$mybb->settings['g33k_fitonpage_topbar_text_class']}";
var fitonpage_topbar_bground = "{$mybb->settings['g33k_fitonpage_topbar_bground']}";
var fitonpage_topbar_icon = "{$mybb->settings['g33k_fitonpage_topbar_icon']}";
var fitonpage_location = "portal";
-->
</script>

El problema es que me acabo de dar cuenta que no funciona con los invitados, con los registrados si funciona bien.
Lo revise por todos lados y no encuentro la falla, tambien veo que los avatares personalizados tampoco salen en el bloque de la izquierda viendolo como invitado... como registrado sale todo perfecto.

Alguien conoce una solucion?.

Saludos!.
Última modificación: 2 Apr, 2011, 5:52 pm por YondaimeKuba.
Cambia la primera linea del codigo que posteaste por esta:

Código:
<script type="text/javascript" src="{$mybb->settings['bburl']}/jscripts/fitonpage.js?ver=230"></script>

Para los avatares hay que hacer lo mismo, pero en el PHP del bloque (postealo y veo que onda Smile).



No se como puede funcionar si estas logueado, se supone que no deberia.
Cita:No se como puede funcionar si estas logueado, se supone que no deberia.
Lo mismo pense.. pero asi pasa...

Gracias!!!!, lo del redimensionador se soluciono cambiando el enunciado que indicaste !!!.

El block_topposters.php contiene:
Código:
<?php
/***************************************************************
* ProPortal
* Copyright © 2010 ProMyBB, All Rights Reserved
*
* Website: http://www.promybb.com/
* License: http://creativecommons.org/licenses/by-nc-sa/3.0/
***************************************************************/

$tpaltbg = alt_trow();
$query = $db->query("SELECT uid, username, postnum, avatar, avatardimensions, usergroup, displaygroup FROM ".TABLE_PREFIX."users ORDER by postnum DESC LIMIT 0, 10");
while($user = $db->fetch_array($query))
{
    $username = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
    $profilelink = get_profile_link($user['uid']);
    if($user['postnum'] <= "1"){ $postnum = my_number_format($user['postnum'])." ".$lang->have_post; }else{ $postnum = my_number_format($user['postnum'])." ".$lang->have_posts; }
    
    if($user['avatar']){ $user['avatar'] = htmlspecialchars_uni($user['avatar']); }else{ $user['avatar'] = $mybb->settings['bburl']."/portal/images/user.png"; $user['avatardimensions'] = "40|40"; }
    $avatar_dimensions = explode("|", $user['avatardimensions']);
    
    if($avatar_dimensions[0] && $avatar_dimensions[1])
    {
        list($max_width, $max_height) = explode("x", my_strtolower("40x40"));
        if($avatar_dimensions[0] > $max_width || $avatar_dimensions[1] > $max_height)
        {
            require_once MYBB_ROOT."inc/functions_image.php";
            $scaled_dimensions = scale_image($avatar_dimensions[0], $avatar_dimensions[1], $max_width, $max_height);
            $block_avatar_width_height = "width=\"{$scaled_dimensions['width']}\" height=\"{$scaled_dimensions['height']}\"";
        }
        else
        {
            $block_avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\"";    
        }
    }
    
    $topposters .= "<tr><td class=\"{$tpaltbg}\" width=\"50\" align=\"center\"><img src=\"".$user['avatar']."\" alt=\"\" {$block_avatar_width_height} border=\"0\" /></td><td class=\"{$tpaltbg}\"><a href=\"{$mybb->settings['bburl']}/{$profilelink}\">{$username}</a><br />{$postnum}</td></tr>";
    $tpaltbg = alt_trow();
}

echo "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
        <tr>
            <td class=\"thead\" colspan=\"2\"><div class=\"expcolimage\"><img src=\"{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div>
<strong>{$lang->top_posters}</strong></td>
        </tr>
        <tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        {$topposters}
        </tbody>
    </table>";
?>

Última modificación: 2 Apr, 2011, 7:03 pm por YondaimeKuba.
Reemplazalo por esto:
Código:
<?php
/***************************************************************
* ProPortal
* Copyright © 2010 ProMyBB, All Rights Reserved
*
* Website: http://www.promybb.com/
* License: http://creativecommons.org/licenses/by-nc-sa/3.0/
***************************************************************/

$tpaltbg = alt_trow();
$query = $db->query("SELECT uid, username, postnum, avatar, avatardimensions, usergroup, displaygroup FROM " . TABLE_PREFIX . "users ORDER by postnum DESC LIMIT 0, 10");

while($user = $db->fetch_array($query))
{
    $username = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
    $profilelink = get_profile_link($user['uid']);
    if ($user['postnum'] <= "1")
    {
        $postnum = my_number_format($user['postnum']) . " " . $lang->have_post;
    }
    else
    {
        $postnum = my_number_format($user['postnum']) . " " . $lang->have_posts;
    }

    if ($user['avatar'])
    {
        $user['avatar'] = htmlspecialchars_uni($user['avatar']);
    }
    else
    {
        $user['avatar'] = $mybb->settings['bburl'] . "/portal/images/user.png";
        $user['avatardimensions'] = "40|40";
    }
    
    $avatar_dimensions = explode("|", $user['avatardimensions']);

    if ($avatar_dimensions[0] && $avatar_dimensions[1])
    {
        list($max_width, $max_height) = explode("x", my_strtolower("40x40"));
        if ($avatar_dimensions[0] > $max_width || $avatar_dimensions[1] > $max_height)
        {
            require_once MYBB_ROOT . "inc/functions_image.php";
            $scaled_dimensions = scale_image($avatar_dimensions[0], $avatar_dimensions[1], $max_width,
                $max_height);
            $block_avatar_width_height = "width=\"{$scaled_dimensions['width']}\" height=\"{$scaled_dimensions['height']}\"";
        }
        else
        {
            $block_avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\"";
        }
    }

    if($user['avatartype'] != 'remote')
    {
        $user['avatar'] = $mybb->settings['bburl'] . $user['avatar'];
    }

    $topposters .= "<tr><td class=\"{$tpaltbg}\" width=\"50\" align=\"center\"><img src=\"" .
        $user['avatar'] . "\" alt=\"\" {$block_avatar_width_height} border=\"0\" /></td><td class=\"{$tpaltbg}\"><a href=\"{$mybb->settings['bburl']}/{$profilelink}\">{$username}</a><br />{$postnum}</td></tr>";
    $tpaltbg = alt_trow();
}

echo "<table border=\"0\" cellspacing=\"" . $theme['borderwidth'] . "\" cellpadding=\"" .
    $theme['tablespace'] . "\" class=\"tborder\">
<tr>
<td class=\"thead\" colspan=\"2\"><div class=\"expcolimage\"><img src=\"{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div>
<strong>{$lang->top_posters}</strong></td>
</tr>
<tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
{$topposters}
</tbody>
</table>";
?>

Si no funciona, prueba agregando esta linea:
Código:
global $mybb;
Justo antes de esta:
Código:
if($user['avatartype'] != 'remote')

No puedo probarlo ya que no tengo el ProPortal instalado... asi que antes que nada, haz un backup Smile
Esas ediciones hacen que desaparezcan todos los avatares, no funciona!.

Pero recorde que cuando puse la URL de un post en un block del portal, aquella vez encontre el error. Mi foro esta instalado en /foro y me paso que una URL funcionaba bien cuando estaba logeado, y como invitado no funcionaba porque me ponia 2 veces el /foro (o ninguna) y daba error.

O sea, el problema es una variable que no carga el /foro cuando esta uno como invitado. Por eso creo que en el Php habria que editar la direccion del avatar, solo eso... porque si el Php estuviese mal escrito no funcionaria (y si lo hace con los registrados).

Posiblemente editando esto?:

Cita: $topposters .= "<tr><td class=\"{$tpaltbg}\" width=\"50\" align=\"center\"><img src=\"".$user['avatar']."\" alt=\"\" {$block_avatar_width_height} border=\"0\" /></td><td class=\"{$tpaltbg}\"><a href=\"{$mybb->settings['bburl']}/{$profilelink}\">{$username}</a><br />{$postnum}</td></tr>";

Intente algunas cosas pero no resulto, no es mi fuerte el php, jejejeje.

--------------------------------------
Agrego, cuando haces click derecho como invitado sobre el avatar (inexistente) de algun usuario, coloca la URL:

Código:
www.infomaster21.com/uploads/avatars/avatar_52.png?dateline=1294715265


El problema esta claro, a la URL le falta el /foro, pero como se lo agrego al Php ?
Última modificación: 3 Apr, 2011, 8:53 am por YondaimeKuba.
Habría que matar a la gente que no sigue los estándares de indentación ¬¬

Este funciona perfectamente, hasta donde pude probar:
Código:
<?php
/***************************************************************
* ProPortal
* Copyright © 2010 ProMyBB, All Rights Reserved
*
* Website: http://www.promybb.com/
* License: http://creativecommons.org/licenses/by-nc-sa/3.0/
***************************************************************/

$lualtbg = alt_trow();
$query = $db->query("SELECT uid, username, regdate, avatar, avatardimensions, avatartype, usergroup, displaygroup FROM ".TABLE_PREFIX."users ORDER by regdate DESC LIMIT 0, 10");
while($user = $db->fetch_array($query))
{
    $username = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
    $profilelink = get_profile_link($user['uid']);
    $regdate = my_date($mybb->settings['dateformat'], $user['regdate']);
    $regtime = my_date($mybb->settings['timeformat'], $user['regdate']);
    
    if($user['avatar']){
        $user['avatar'] = htmlspecialchars_uni($user['avatar']);
        if($user['avatartype'] != 'remote')
        {
            $user['avatar'] = $mybb->settings['bburl'] . '/' . $user['avatar'];
        }
    }
    else
    {
        $user['avatar'] = $mybb->settings['bburl']."/portal/images/user.png"; $user['avatardimensions'] = "40|40";
    }
    $avatar_dimensions = explode("|", $user['avatardimensions']);
    
    if($avatar_dimensions[0] && $avatar_dimensions[1])
    {
        list($max_width, $max_height) = explode("x", my_strtolower("24x24"));
        if($avatar_dimensions[0] > $max_width || $avatar_dimensions[1] > $max_height)
        {
            require_once MYBB_ROOT."inc/functions_image.php";
            $scaled_dimensions = scale_image($avatar_dimensions[0], $avatar_dimensions[1], $max_width, $max_height);
            $block_avatar_width_height = "width=\"{$scaled_dimensions['width']}\" height=\"{$scaled_dimensions['height']}\"";
        }
        else
        {
            $block_avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\"";    
        }
    }


    
    $latestusers .= "<tr><td class=\"{$lualtbg}\" width=\"30\" align=\"center\"><img src=\"".$user['avatar']."\" alt=\"\" {$block_avatar_width_height} border=\"0\" /></td><td class=\"{$lualtbg}\" style=\"font-size:11px;\"><a href=\"{$mybb->settings['bburl']}/{$profilelink}\">{$username}</a><br />{$regdate} {$regtime}</td></tr>";
    $lualtbg = alt_trow();
}
echo "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
        <tr>
            <td class=\"thead\" colspan=\"2\"><div class=\"expcolimage\"><img src=\"{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>{$lang->latest_users}</strong></td>
        </tr>
        <tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        {$latestusers}
        </tbody>
    </table>";
?>
Me pasaste el codigo del block_latestusers.php (que funciona perfecto! Smile ) en vez del block_topposters.php

De cualquier forma, que hay que editar?, asi ya lo aprendo para la proxima... seguramente este problema lo tendre con todos los bloques...
Última modificación: 3 Apr, 2011, 9:46 am por YondaimeKuba.
Uhh, bien pelotudo de mi :p
Ahora si:
Código:
<?php
/***************************************************************
* ProPortal
* Copyright © 2010 ProMyBB, All Rights Reserved
*
* Website: http://www.promybb.com/
* License: http://creativecommons.org/licenses/by-nc-sa/3.0/
***************************************************************/

$tpaltbg = alt_trow();
$query = $db->query("SELECT uid, username, postnum, avatar, avatardimensions, avatartype, usergroup, displaygroup FROM ".TABLE_PREFIX."users ORDER by postnum DESC LIMIT 0, 10");
while($user = $db->fetch_array($query))
{
    $username = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
    $profilelink = get_profile_link($user['uid']);
    if($user['postnum'] <= "1"){ $postnum = my_number_format($user['postnum'])." ".$lang->have_post; }else{ $postnum = my_number_format($user['postnum'])." ".$lang->have_posts; }
    
    if($user['avatar']){
        $user['avatar'] = htmlspecialchars_uni($user['avatar']);
        if($user['avatartype'] != 'remote')
        {
            $user['avatar'] = $mybb->settings['bburl'] . '/' . $user['avatar'];
        }
    }
    else
    {
        $user['avatar'] = $mybb->settings['bburl']."/portal/images/user.png"; $user['avatardimensions'] = "40|40";
    }
    $avatar_dimensions = explode("|", $user['avatardimensions']);
    
    if($avatar_dimensions[0] && $avatar_dimensions[1])
    {
        list($max_width, $max_height) = explode("x", my_strtolower("40x40"));
        if($avatar_dimensions[0] > $max_width || $avatar_dimensions[1] > $max_height)
        {
            require_once MYBB_ROOT."inc/functions_image.php";
            $scaled_dimensions = scale_image($avatar_dimensions[0], $avatar_dimensions[1], $max_width, $max_height);
            $block_avatar_width_height = "width=\"{$scaled_dimensions['width']}\" height=\"{$scaled_dimensions['height']}\"";
        }
        else
        {
            $block_avatar_width_height = "width=\"{$avatar_dimensions[0]}\" height=\"{$avatar_dimensions[1]}\"";    
        }
    }
    
    $topposters .= "<tr><td class=\"{$tpaltbg}\" width=\"50\" align=\"center\"><img src=\"".$user['avatar']."\" alt=\"\" {$block_avatar_width_height} border=\"0\" /></td><td class=\"{$tpaltbg}\"><a href=\"{$mybb->settings['bburl']}/{$profilelink}\">{$username}</a><br />{$postnum}</td></tr>";
    $tpaltbg = alt_trow();
}

echo "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
        <tr>
            <td class=\"thead\" colspan=\"2\"><div class=\"expcolimage\"><img src=\"{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div>
<strong>{$lang->top_posters}</strong></td>
        </tr>
        <tbody style=\"{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        {$topposters}
        </tbody>
    </table>";
?>



Lo que hice fue agregar "avatartype" a la consulta SQL (linea 11)
Y modificar esto:
Código:
    if($user['avatar']){ $user['avatar'] = htmlspecialchars_uni($user['avatar']); }else{ $user['avatar'] = $mybb->settings['bburl']."/portal/images/user.png"; $user['avatardimensions'] = "40|40"; }
Por algo mas legible y arreglado:
Código:
    if($user['avatar']){
        $user['avatar'] = htmlspecialchars_uni($user['avatar']);
        if($user['avatartype'] != 'remote')
        {
            $user['avatar'] = $mybb->settings['bburl'] . '/' . $user['avatar'];
        }
    }
    else
    {
        $user['avatar'] = $mybb->settings['bburl']."/portal/images/user.png"; $user['avatardimensions'] = "40|40";
    }
Siiiiiiii, justo acabo de hacer eso y funcionoooo !!!, lo que hice fue poner un IF cuando el avatar existe, para que a este le ponga la variable correspondiente...

Excelente! Big Grin

Gracias, cerrado!.
(3 Apr, 2011, 9:54 am)Gmaster escribió: Siiiiiiii, justo acabo de hacer eso y funcionoooo !!!, lo que hice fue poner un IF cuando el avatar existe, para que a este le ponga la variable correspondiente...

Excelente! Big Grin

Gracias, cerrado!.

Pero cuidado...
Porque si el usuario esta usando un avatar remoto, la URL es absoluta. Si le agregas la direccion del foro la vas a romper.