1

Topic: Ulitma Visitas por minutos/dia/mes... - Last Visit minut/day/months...

¡Recomendaciones!
Antes que nada esto solamente esta testeado en la versión 2.5.3
Hagan backup de los archivos a modificar!!!
Si rompen algo NO soy responsable!!!

Como no tengo mucho tiempo para sentarme a programar una extension que realice esto, he modificados algunos archivos para lograrlo.

Simplemente lo que hacen estas modificaciones es calcular los minutos, días, meses, años, decadas trascurridas desde que un visitante ha mirado nuestro perfil. Dejo una captura como muestra.

http://img4.uploadhouse.com/fileuploads/4062/40622747d65eb6d7c5db469b80b02327faca51a.png


Archivos a modificar:
------------------------
includes/fns/fns.misc.php
includes/lib/lib.account_visitors.php



Abra su archivo includes/fns/fns.misc.php y busque la linea 1093.

Modifique esto:

//------------------------------------------
// Get templates
//------------------------------------------
function get_date($date, $format = "date")
{
    global $SESSION;

    $diff = $SESSION->conf['timezone']*60;
    $date = $date - (date("Z") - $diff) + (date("I") ? 3600 : 0);

    if ( $format == "date" ) {
        $format = $SESSION->conf['timeformat'] ? "m/d/Y" : "d/m/Y";
    }
    elseif ( $format == "time" ) {
        $format = $SESSION->conf['timeformat'] ? "h:i a" : "H:i";
    }
    elseif ( $format == "rss" ) {
        $format = "r";
    }
    elseif ( $format == "full" ) {
        $format = $SESSION->conf['timeformat'] ? "m/d/Y h:i a" : "d/m/Y H:i";
    }

    return date($format, $date);
}
// End function

Por esto:


//------------------------------------------
// Get templates
//------------------------------------------
function get_date($date, $format = "date")
{
    global $SESSION;

    $diff = $SESSION->conf['timezone']*60;
    $date = $date - (date("Z") - $diff) + (date("I") ? 3600 : 0);

    if ( $format == "date" ) {
        $format = $SESSION->conf['timeformat'] ? "m/d/Y" : "d/m/Y";
    }
    elseif ( $format == "time" ) {
        $format = $SESSION->conf['timeformat'] ? "h:i a" : "H:i";
    }
    elseif ( $format == "rss" ) {
        $format = "r";
    }
    elseif ( $format == "full" ) {
        $format = $SESSION->conf['timeformat'] ? "m/d/Y h:i a" : "d/m/Y H:i";
    }

    elseif ( $format == "mio" ) {
        $format = $SESSION->conf['timeformat'] ? "Y/m/d H:i:s" : "Y/m/d H:i:s";
    }


    return date($format, $date);
}
// End function

Y debajo de esto, agregar:


function dateDiff($date,$to) {
  $diff = $to - $date;
  $info = array();
  if($diff>315569260) {
    // Decadas
    $info['decadas'] = ($diff - ($diff&315569260))/315569260;
    $diff = $diff%315569260;
  }
  elseif($diff>31556926) {
    // Años
    $info['años'] = ($diff - ($diff%31556926))/31556926;
    $diff = $diff%31556926;
  }
   elseif($diff>2629743) {
    // Meses
    $info['meses'] = ($diff - ($diff%2629743))/2629743;
    $diff = $diff%2629743;
  }
  elseif($diff>604800) {
    // Semanas
    $info['semanas'] = ($diff - ($diff%604800))/604800;
    $diff = $diff%604800;
  }
  elseif($diff>86400) {
    // Dias
    $info['dias'] = ($diff - ($diff%86400))/86400;
    $diff = $diff%86400;
  }
  elseif($diff>3600) {
    // Horas
    $info['horas'] = ($diff - ($diff%3600))/3600;
    $diff = $diff%3600;
  }
  elseif($diff>60) {
    // Minutos
    $info['minutos'] = ($diff - ($diff%60))/60;
    $diff = $diff%60;
  }
  elseif($diff>0) {
  // Segundos
    $info['segundos'] = $diff;
  }
  $f = '';
  foreach($info as $k=>$v) {
    if($v>0) $f .= "$v $k, ";
  }
  return substr($f,0,-2);
}

Ahora abra su archivo includes/lib/lib.account_visitors.php y busque la linea 163.

Modifique esto:


$profile_obj[$i]['member_visit_date'] = $obj['visitdate'] ? get_date($obj['visitdate'], "full") : 0;

Por esto:


$profile_obj[$i]['member_visit_date'] = $obj['visitdate'] ? get_date($obj['visitdate'], "mio") : 0;

$fecha = preg_replace('/:[0-9][0-9][0-9]/','',$profile_obj[$i]['member_visit_date']);
$time = strtotime($fecha);
$profile_obj[$i]['member_visit_date'] = dateDiff($time,time());

Eso sería todo, el resultado que se obtiene es como el que figura en la captura de arriba.
Se puede mejorar muchisimo sin duda. También sería muy bueno que lo vea VLAD he implemente como una característica nueva para una futura actualización para poder mostrarlo en los resultados de busqueda, perfiles, etc, de una forma un poco más "limpia" de como lo he planteado yo.


Espero les sirva, Éxitos!
Good luck!

2

Re: Ulitma Visitas por minutos/dia/mes... - Last Visit minut/day/months...

Google translation

Thank you for nice tutorial.

www.vldMagic.com - first choice customizations help desk
www.vldCrowd.com/radioact - my profile at vldCrowd