Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
[Tutorial] Columna del ultimo post con tiempo al estilo vBulletin
Páginas (2): 1 2   
Omar G.   9 Jan, 2010, 2:57 pm
#1
Para que te quede como en la imagen al final, tienen que hace también este tutorial.

Este tutorial estaba en el foro de mybb, solo lo traduje y lo coloco aquí para los que quieran, y por que ya había hecho un tutorial que con este juntos queda bien. Tutorial Original
_________________________________________________________
Descripcion: Muestra cuantos minutos/horas han pasado desde que el ultimo mensaje en el index.

Necesitaras editar estos archivos .php en tu servidor FPT

dir$/inc/functions.php
dir$/inc/functions_forumlist.php
dir$/forumdisplay.php
dir$/inc/lenguajes/global.lang.php

Abre inc/functions.php
Agrega este código asta el final antes de ?>
Código:
/**
* Calculates how many minutes past since the given time.
*
* @param int The unix timestamp of the given time
* @return string The formatted time
*/
function timeAgo($last)
{
    global $mybb, $mybbadmin, $lang;
    
    $timenow = TIME_NOW;
    $diff = $timenow - $last;
    
    if(!$offset && $offset != '0')
    {
        if($mybb->user['uid'] != 0 && array_key_exists("timezone", $mybb->user))
        {
            $offset = $mybb->user['timezone'];
            $dstcorrection = $mybb->user['dst'];
        }
        elseif(defined("IN_ADMINCP"))
        {
            $offset =  $mybbadmin['timezone'];
            $dstcorrection = $mybbadmin['dst'];
        }
        else
        {
            $offset = $mybb->settings['timezoneoffset'];
            $dstcorrection = $mybb->settings['dstcorrection'];
        }

        // If DST correction is enabled, add an additional hour to the timezone.
        if($dstcorrection == 1)
        {
            ++$offset;
            if(my_substr($offset, 0, 1) != "-")
            {
                $offset = "+".$offset;
            }
        }
    }

    if($offset == "-")
    {
        $offset = 0;
    }
        
    if($last < $timenow && $diff <= 46200)
    {
        $order = $timenow - $last;
        while($order >= 60){
            $order = $order-60;
            $ordermleft++;
        }
        while($ordermleft >= 60){
            $ordermleft = $ordermleft-60;
            $orderhleft++;
        }

        if($ordermleft == 0){
            $ordermleft = "";
        } else {
            $ordermleft = "$ordermleft {$lang->minutes}";
        }
        if($orderhleft == 0){
            $orderhleft = "";
        } elseif($orderhleft == 1) {
            $orderhleft = "$orderhleft {$lang->hour}";
        } else {
            $orderhleft = "$orderhleft {$lang->hours}";
        }
        
        if(!$ordermleft || $ordermleft == 1){ $ordermleft = "1 {$lang->minute}"; }
        $actualtime = gmdate($mybb->settings['timeformat'], $last + ($offset * 3600));
        
        if($orderhleft)
        {
            $result = "{$lang->df_ago} <abbr title=\"$actualtime\">$orderhleft</abbr>";
        } else {
            $result = "{$lang->df_ago} <abbr title=\"$actualtime\">$ordermleft</abbr>";
        }
            
        return $result;
    } else {
        return gmdate($mybb->settings['timeformat'], $last + ($offset * 3600));
    }
}



Abre inc/functions_forumlist.php
Encuentra:
Código:
$lastpost_date = my_date($mybb->settings['dateformat'], $lastpost_data['lastpost']);
$lastpost_time = my_date($mybb->settings['timeformat'], $lastpost_data['lastpost']);

Reemplaza por:
Código:
$lastpost_time = timeAgo($lastpost_data['lastpost']);
if(ereg($lang->minute, $lastpost_time) || ereg($lang->hour, $lastpost_time))
{
    $lastpost_date = "";
}
else
{
    $lastpost_date = my_date($mybb->settings['dateformat'], $lastpost_data['lastpost']);
}


Abre forumdisplay.php
Encuentra:
Código:
$lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']);
$lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']);

Reemplaza por:
Código:
$lastposttime = timeAgo($thread['lastpost']);
if(ereg($lang->minute, $lastposttime) || ereg($lang->hour, $lastposttime))
{
    $lastpostdate = "";
}
else
{
    $lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']);
}


Abre inc/lenguajes/IDEOMA/global.lang.php
Agrega este código asta el final antes de ?>
Código:
$l['df_ago'] = "Hace";

Puedes cambiar el "Hace" por otra palabra de tu gusto.


-----------------------------------
Modifique el código para que dijera:
Hace 2 horas

y no:
2 horas Ago

Todos los créditos para DragonFever quien fue el que creo el tema en Mybboard.net

.See ya!
Cluster   11 Jan, 2010, 9:28 am
#2
muy buen tutorial man felicidades

:)
vmaster17   15 Jan, 2010, 4:28 pm
#3
podrias especificar mas detalladamente dicho tutorial porque se me hace dificil aplicar dichos pasos ya que he probado algunas veces haciendo lo que vos decis y sin exitoSad!

Salu2s!
Omar G.   16 Jan, 2010, 2:21 pm
#4
(15 Jan, 2010, 4:28 pm)vmaster17 escribió: podrias especificar mas detalladamente dicho tutorial porque se me hace dificil aplicar dichos pasos ya que he probado algunas veces haciendo lo que vos decis y sin exitoSad!

Salu2s!

Tienes que modificar los archivos de tu foro que indica el tutorial, los encuentras en el servidor ftp de tu foro.


Para /inc/functions.php tienes que agragar el codigo asta al final de todo antes de ?>

Para /inc/functions_forumlist.php tienes que encontrar el codigo, borralo y colocar en el mismo lugar el que dice el tutorial.

Para /forumdisplay.php lo mismo que el anterior.

Y para /inc/lenguajes/global.lang.php , abres el global.lang.php y colocas el codigo asta el final antes de ?> igual al primero codigo.

[color]Espero me entiendasSleepy[/color]

Gracias Walkman 5.0
shiro51   22 May, 2010, 10:19 am
#5
donde quito la linea de puntos de debajo de las letras? gracias adelantadas.
Cluster   22 May, 2010, 12:54 pm
#6
en esta linea lo quitas <abbr title=\"$actualtime\"> </abbr>

Código:
if($orderhleft)
        {
            $result = "{$lang->df_ago} <abbr title=\"$actualtime\">$orderhleft</abbr>";
        } else {
            $result = "{$lang->df_ago} <abbr title=\"$actualtime\">$ordermleft</abbr>";
        }

:)
shiro51   23 May, 2010, 1:39 am
#7
ok, gracias ^^, asi me quedara mejor xd
Gmaster   16 Jul, 2010, 9:55 pm
#8
Pregunta 1:

Cuando la ultima respuesta fue hace mas de 24 horas me pone: 06-07-2010 12:31 AM
En vez de eso, me gustaria que diga: Hace 3 dias, es posible? como?.

Pregunta 2:
Instale este plugin: http://mods.mybb.com/view/post-icons-on-...-last-post

Y me muestra bien las imagenes de los post, pero los muestra al tamaño original 16 x 16 y es un poco grande. Alguien sabe donde se puede declarar el tamaño de esas imagenes?, quisiera que lo achique a 12x12.

Pregunta 3:
Alguien sabe donde debo editar para que la columna de Ultimo mensaje sea un poco mas ancha?. Por ejemplo, si ahora tiene 20% quisiera subirlo a 30%.

Cualquier duda, ver en mi foro: www.cyberamigos.net/foro

Saludos!.
Gypaete   17 Jul, 2010, 5:33 am
#9
Hello ,tengo todo ,menos el Global.Lang :S y busco en la carpeta de Mybb ,cuando me la bajé y tampoco lo tiene =S
Gmaster   17 Jul, 2010, 12:17 pm
#10
El lgobal lang esta en la carpeta espanol
Páginas (2): 1 2   
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.