¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa.
Por favor, regístrate utilizando un correo electrónico válido para completar la activación.

Descarga Risus Nova 2.0   (Ver notas de la versión) (ACT-15/06/2026- 21:00 ESP)

Regístrate Descargar Risus Nova
Últimos temas

Estadísticas del foro
  • Mensajes del foro:1,957
  • Temas del foro:614
  • Miembros:1,036
  • Último miembro:carlos007r


Enviado por: moyo
02-06-2023, 12:27 AM
Foro: Ayuda y Soporte
- Respuestas (1)

Hola saludos.

Estoy en localhost quiero modificar c.comunidades.php para instalar un [mod].

Pero al modificar algo de ese archivo me sale este error en miembros de la comunidad.


Estoy en miembros de mi comunidad y voy a cambiarle el rango a un miembro.
[img]Registrate o inicia tu sesión para ver este contenido[/img]


Antes de modificar c.comunidades.php todo esta bien con la ventana modal.
[img]Registrate o inicia tu sesión para ver este contenido[/img]


Ahora la ventana modal después de modificar c.comunidades.php
[img]Registrate o inicia tu sesión para ver este contenido[/img]



¿Por qué pasa eso?
¿Cómo edito c.comunidades.php sin que me salga ese error?

Imprimir


Enviado por: moyo
02-02-2023, 07:24 PM
Foro: Ayuda y Soporte
- Respuestas (2)

No se si solo me pase a mi. uso v6dark 1.3.0.0

En centro de moderacion /denuncias de comunidades

Cuando quiero ver la información y detalles del denunciante no la muestra ejemplo:

[img]Registrate o inicia tu sesión para ver este contenido[/img]


Cuando le doy a la flecha que indica en la imágen de arriba no me muestra la información, me sale:
[img]Registrate o inicia tu sesión para ver este contenido[/img]

Imprimir


Enviado por: Triple_XXX
02-02-2023, 01:52 AM
Foro: Pedido de Complementos
- Respuestas (2)

Hola tengo una pregunta si me podrian ayudar no creo que sea complemento solo quiero poner algo para que se pueda poner un codigo embed code para poner videos en codigo embed algo asi gracias de antemano saludos

Imprimir


Enviado por: moyo
01-31-2023, 08:34 PM
Foro: Pedido de Complementos
- Respuestas (4)

Hola saludos. me gustaría poner otro idioma en la web que estoy por terminar, habrá manera de puedas construír el complemento perfecto para esta petición, y que los visitantes pueden cambiar el idioma.?


-- Agregar otro idioma a tu pagina web. --

Yo por ejemplo solo me viene a la mente usando estos códigos:

{if $tsLang.l_english}Hello welcome!{else}Hola bienvenido!{/if}    

Big Grin Big Grin


[img]Registrate o inicia tu sesión para ver este contenido[/img]

Código:
<form action="/index.php">
  <label for="idiomas">IDIOMA:</label>
  <select name="idiomas" id="idiomas">
    <optgroup label="idioma">
      <option value="espanol">Español</option>
      <option value="english">English</option>
    </optgroup>
  </select>
  <input type="submit" value="Submit">
</form>

Imprimir


Enviado por: Miguel92
01-12-2023, 09:08 PM
Foro: Complementos Terminados
- Sin respuestas

[font]Añadir estadísticas de las comunidades al home[/font]

1 - Ejecutan esta consulta (solo si no lo tienen)

Código:
ALTER TABLE w_stats ADD `stats_comunidades` int(11) NOT NULL DEFAULT 0, ADD `stats_temas` int(11) NOT NULL DEFAULT 0, ADD `stats_respuestas` int(11) NOT NULL DEFAULT 0;

2 - Ir a inc/class/c.tops.php y buscar
Código PHP:
$q5 db_exec('fetch_row'db_exec([__FILE____LINE__], 'query''SELECT COUNT(cid) AS fc FROM f_comentarios')); 

debajo agregar
Código PHP:
$q6 db_exec('fetch_row'db_exec([__FILE____LINE__], 'query''SELECT COUNT(c_id) AS total FROM c_comunidades WHERE c_estado = \'0\''));
$q7 db_exec('fetch_row'db_exec([__FILE____LINE__], 'query''SELECT COUNT(t_id) AS total FROM c_temas LEFT JOIN c_comunidades ON c_id = t_comunidad WHERE t_estado = \'0\' AND c_estado = \'0\''));
$q8 db_exec('fetch_row'db_exec([__FILE____LINE__], 'query''SELECT COUNT(r_id) AS total FROM c_respuestas LEFT JOIN c_temas ON t_id = r_tema LEFT JOIN c_comunidades ON c_id = t_id WHERE r_estado = \'0\' AND t_estado = \'0\' AND c_estado = \'0\'')); 

un poco más abajo buscar
Código PHP:
$return['stats_comments'] = $q4[0];
$return['stats_foto_comments'] = $q5[0]; 

y debajo añadir
Código PHP:
$return['stats_comunidades'] = $q6[0];
$return['stats_temas'] = $q7[0];
$return['stats_respuestas'] = $q8[0]; 

luego deben buscar
Código PHP:
stats_foto_comments = \''.$return['stats_foto_comments'].'\' 

y a lado agregan lo siguiente
Código PHP:
stats_comunidades = \''.$return['stats_comunidades'].'\', stats_temas = \''.$return['stats_temas'].'\', stats_respuestas = \''.$return['stats_respuestas'].'\' 


3 - Luego en themes/TUTHEME/templates/modules/m.home_stats.tpl buscan
Código PHP:
</table

y arriba pegan, pueden poner el icono que deseen...
Código PHP:
<tr>
    <td style="background-image:url({$tsConfig.images}/icons/details.png);">{$tsStats.stats_temastemas</td>
    <td style="background-image:url({$tsConfig.images}/icons/comment.png);">{$tsStats.stats_respuestascomentarios en temas</td>
</
tr

No esta comunidades pero si lo quieren solo deben agregar
Código PHP:
<tr>
    <td style="background-image:url({$tsConfig.images}/icons/details.png);">{$tsStats.stats_comunidadescomunidades</td>
</
tr


Agregar las últimas comunidades y últimos temas en la home

1 - Abrir inc/php/posts.php y buscar
Código PHP:
// AFILIADOS
$smarty->assign("tsAfiliados",$tsAfiliado->getAfiliados()); 

arriba añaden esto
Código PHP:
// COMUNIDADES Y TEMAS
include TS_CLASS "c.comunidades.php";
$tsCom = new tsCom();
$smarty->assign("tsLastComunidades"$tsCom->getComRecentHome());
$smarty->assign("tsLastTemas"$tsCom->getTemasRecentHome()); 


2 - Luego va a inc/class/c.comunidades.php y buscan
Código PHP:
function getComRecentHome() { 

y arriba agregan
Código PHP:
function getTemasRecentHome() {
    global $tsCore$tsUser;
    $query db_exec([__FILE____LINE__], 'query''SELECT t_id, t_titulo, t_comunidad, t_autor, t_fecha, t_estado, t_ip, c_nombre, c_nombre_corto FROM c_temas LEFT JOIN c_comunidades ON t_comunidad = c_id LEFT JOIN u_miembros ON user_id = t_autor WHERE t_id > \'0\' '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == '' '&& user_activo = \'1\' && user_baneado = \'0\' && t_estado = \'0\'').' ORDER BY t_fecha DESC LIMIT 10');
    $data result_array($query);
    return $data;



3 - Por último ir a themes/TUTHEME/templates/t.home.tpl y lo ubican donde quieren, puede ir debajo de
Código:
{include file='modules/m.home_stats.tpl'}

y agregan lo siguiente
Código:
{include file='modules/m.home_temas.tpl'}


4 - Como ese archivo no existe en modules crean un archivo con ese nombre m.home_temas.tpl u otro nombre que deseen y dentro agregan todo esto
Código:
<div>
   <div class="box_title">
      <div class="box_txt estadisticas">&Uacute;ltimas comunidades</div>
   </div>
   <div class="box_cuerpo" style="padding: 0pt; height: 230px;">
       <ol class="filterBy cleanlist" style="display:block;">
           {foreach from=$tsLastComunidades key=i item=tema}
               <li>
               {if $i+1 < 10}0{/if}{$i+1}. 
                    <a href="{$tsConfig.url}/comunidades/{$tema.c_nombre_corto}/">{$tema.c_nombre}</a>
            </li>
           {/foreach}
       </ol>
   </div>
   <br class="space"/>
</div>
<div>
   <div class="box_title">
      <div class="box_txt estadisticas">&Uacute;ltimos temas</div>
   </div>
   <div class="box_cuerpo" style="padding: 0pt; height: 230px;">
       <ol class="filterBy cleanlist" style="display:block;">
           {foreach from=$tsLastTemas key=i item=tema}
               <li>
               {if $i+1 < 10}0{/if}{$i+1}. 
               <a href="{$tsConfig.url}/comunidades/{$tema.c_nombre_corto}/{$tema.t_id}/{$tema.t_titulo|seo}.html"><strong>{$tema.t_titulo}</strong></a>
               <!-- Agregar la comunidad
                    <a href="{$tsConfig.url}/comunidades/{$tema.c_nombre_corto}/">{$tema.c_nombre}</a>
               -->
            </li>
           {/foreach}
       </ol>
   </div>
   <br class="space"/>
</div>
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Todo esto es básico y simple, por el momento...
Las comunidades que estoy usando es la de KMario19

Imprimir


Enviado por: Miguel92
01-07-2023, 05:08 PM
Foro: Complementos Terminados
- Sin respuestas

[MOD] Sitemap Administrable v2

Mod original: Sitemaps Administrables v1 (Act 1.3)
Autor: aperpen

¿Que tiene de nuevo?

  1. Administración completa (v1)
  2. Administración modificada (v2)
  3. Inserción en robots.txt, para google detecte tu sitemap (v1)

# Configuraciones:
  1. Opción de insertar de forma automática los posts y las fotos que se crean (v1)
  2. Opción de actualizar la última modificación de una URL al editar un post o una imagen (v1)

# Ver URLs incluídas en el sitemap:
  1. Agregar, Editar, Borrar URLs (v1)
  2. Los cambios que realices de URLs no se verán reflejados en el sitemap no se verán reflejados hasta que tu lo desees. (v1)
  3. Sitemap completo (Url, frecuencia, ultima modificación, prioridad) (v1)
  4. URLs principales de tu web, incluídas por defecto. (v1)
  5. Restaurar URLs que vienen por defecto en cualquier momento. (v1)

# Generar la creación de archivos
  1. Sitemap.xml (v2)
  2. Robots.txt (v2)

La guía de instalación lo haré desde cero, en caso que ya lo tengas instalados, solo deberás reemplazar los fragmentos de códigos, ya que iran en el mismo lugar!

1 - Realizan la consulta
 
Código:
CREATE TABLE IF NOT EXISTS `w_sitemap` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `url` tinytext NOT NULL DEFAULT '',
  `frecuencia` varchar(15) NOT NULL DEFAULT '',
  `fecha` int(16) NOT NULL DEFAULT 0,
  `prioridad` decimal(2,1) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

ALTER TABLE `w_configuracion` 
ADD `sm_posts` int(1) NULL DEFAULT '1',
ADD `sm_fotos` int(1) NOT NULL DEFAULT '1',
ADD `sm_update_p` int(1) NOT NULL DEFAULT '1',
ADD `sm_update_f` int(1) NOT NULL DEFAULT '1';


2 - Abren el inc/class/c.admin.php y buscan la última llave } que cierra la class tsAdmin
 
Código PHP:
/*
 * Sitemap y SEO administrables
*/
public function saveConfigSitemap(){
    global $tsCore;
    $configuraciones = [
        "posts" => empty($_POST['sm_posts']) ? 1,
        "fotos" => empty($_POST['sm_fotos']) ? 1,
        "update_p" => empty($_POST['sm_update_p']) ? 1,
        "update_f" => empty($_POST['sm_update_f']) ? 1
    
];
    $columns $tsCore->setUpdate($configuraciones"sm_");
    if (db_exec([__FILE____LINE__], 'query'"UPDATE w_configuracion SET {$columns} WHERE tscript_id = 1")) return true;
    else exit( show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.''db') );            



3 - Abren el inc/php/admin.php y buscan:
 
Código PHP:
   /** MEDALLAS **/
   } elseif($action == 'medals') { 

y arriba añaden o reemplazan (solo si lo tienen)
 
Código PHP:
    //SITEMAP BY APERPEN
     } elseif($action == 'sitemap') {
       if(empty($act)) {
           // Obtenemos todas las urls de la base de datos
           $smarty->assign("tsURLs"$tsSiteMap->getURLsBD());
       } elseif($act === 'restaurar') {
           // Restauramos el sitemap
           if($tsSiteMap->CreateSiteMap()) {
               $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
           }
       } elseif($act === 'generar') {
           // Generamos el sitemap
           if($tsSiteMap->generateSiteMap()) {
               $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
           }
       } elseif($act === 'actual') {
           $smarty->assign("tsURLa"$tsSiteMap->getURLsBD());
       } elseif($act === 'borrar') {
           if($tsSiteMap->removeUrlBD((int)$_GET['id'])) {
               $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
           }
       } elseif($act === 'editar') {
         if(!empty($_POST['url'])) {
            if($tsSiteMap->editUrl($_GET['id'], $_POST['url'], $_POST['frecuencia'], $_POST['prioridad'])) {
                $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
            }
         } else $smarty->assign("tsURL"$tsSiteMap->getUrl((int)$_GET['id']));
       } elseif($act === 'nueva') {
         if(!empty($_POST['url'])) {
            if($tsSiteMap->addURL($_POST['url'], $_POST['frecuencia'], $_POST['prioridad'])) {
                $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
            }
         } 
         
} elseif($act === 'config') {
             if(isset($_POST['sm_posts'])) {
                 if($tsAdmin->saveConfigSitemap()) {
                     $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
                 }
             }
       }  


4 - Abren el inc/class/c.posts.php y buscan:
 
Código PHP:
    $tsActividad->setActividad(1$postID);
    // SUBIR DE RANGO?
    $this->subirRango($tsUser->uid); 

y abajo agregan
 
Código PHP:
    // Añadimos al sitemap
    if($tsCore->settings['sm_posts'] === 1) {
        $CatSeo db_exec('fetch_assoc'db_exec([__FILE____LINE__], 'query''SELECT c_seo FROM p_categorias WHERE cid = '.(int)$postData['category']))['c_seo'];
        $tsSiteMap->addUrlsm($tsCore->settings['url'].'/posts/'.$CatSeo.'/'.$postID.'/'.$tsCore->setSEO($postData['title']).'.html'); 
    


En el mismo archivo en la funcion savePost() arriba de 
 
Código PHP:
    // GUARDAR EN EL HISTORIAL    DE MODERACION         
    if(($tsUser->is_admod || $tsUser->permisos['moedpo']) && $tsUser->uid != $data['post_user'] && $_POST['razon']){ 

añaden esto
 
Código PHP:
    // Añadimos al sitemap
    if($tsCore->settings['sm_update_p'] === 1) {
        $CatSeo db_exec('fetch_assoc'db_exec([__FILE____LINE__], 'query''SELECT c_seo FROM p_categorias WHERE cid = '.(int)$postData['category']))['c_seo'];
        $tsSiteMap->updateLM($tsCore->settings['url'].'/posts/'.$CatSeo.'/'.$post_id.'/'.$tsCore->setSEO($postData['title']).'.html'); 
    
}  


5 - Abren el inc/class/c.fotos.php y buscan:
 
Código PHP:
    // AGREGAR AL MONITOR DE LOS USUARIOS QUE ME SIGUEN
    $tsMonitor->setFollowNotificacion(101$tsUser->uid$fid);
    // ACTIVIDAD
    $tsActividad->setActividad(9$fid); 

y agregan debajo
 
Código PHP:
    // Añadimos al sitemap
   if($tsCore->settings['sm_fotos'] === 1) {
      $tsSiteMap->updateLM($tsCore->settings['url'].'/fotos/'.$tsUser->nick.'/'.$fid.'/'.$tsCore->setSEO($fData['titulo']).'.html'); 
   
}  

y más abajo en la funcion editFoto() buscan
 
Código PHP:
    // REDIRIGIMOS
   $url $tsCore->settings['url'].'/fotos/'.$data['user_name'].'/'.$fid.'/'.$tsCore->setSEO($fData['titulo']).'.html'

añaden esto
 
Código PHP:
    // Añadimos al sitemap
   if($tsCore->settings['sm_update_f'] === 1) {
      $tsSiteMap->updateLM($tsCore->settings['url'].'/fotos/'.$data['user_name'].'/'.$fid.'/'.$tsCore->setSEO($fData['titulo']).'.html'); 
   
}  


6 - Abren el header.php que está en la raíz de su web y buscan:
 
Código PHP:
// Mensajes de usuario
include TS_CLASS.'c.mensajes.php' 

y debajo agregan
 
Código PHP:
include TS_CLASS.'c.sitemap.php'; 
$tsSiteMap 
= new tsSiteMap();
// Instalación automática a través de parámetros
$tsSiteMap->setAuto(); 


7 - Si quieren lo hacen (PASO 5)

8 - Abren el themes/TUTEMA/templates/t.admin.tpl y buscan:
 
Código:
    {elseif $tsAction == 'rangos'}
      {include file='admin_mods/m.admin_rangos.tpl'}

y abajo agregan
 
Código:
    {elseif $tsAction == 'sitemap'}
      {include file='admin_mods/m.admin_sitemap.tpl'}


9 - Abren el themes/TUTEMA/templates/admin_mods/m.admin_sidemenu.tpl y buscan:
 
Código:
    <h4>Control de Usuarios</h4>
   <ul class="cat-list">
       <li id="a_users"><span class="cat-title"><a href="{$tsConfig.url}/admin/users">Todos los Usuarios</a></span></li>
       <li id="a_sesiones"><span class="cat-title"><a href="{$tsConfig.url}/admin/sesiones">Sesiones</a></span></li>
       <li id="a_nicks"><span class="cat-title"><a href="{$tsConfig.url}/admin/nicks">Cambios de Nicks</a></span></li>
      <li id="a_rangos"><span class="cat-title"><a href="{$tsConfig.url}/admin/rangos">Rangos de Usuarios</a></span></li>
   </ul>

y debajo añaden
 
Código:
    <h4>SEO</h4>
   <ul class="cat-list">
       <li id="a_cats"><span class="cat-title"><a href="{$tsConfig.url}/admin/sitemap">Sitemap</a></span></li>
   </ul>


10 - Suben los archivos a sus carpetas correspondientes
c.sitemap.php -> inc/class
m.admin_sitemap.tpl (smarty 3.x) o (smarty 4.x) -> themes/TUTEMA/templates/admin_mods

11 - Para acabar, este paso en la v2 esta cambiado, por lo cual no requiere de crea un archivo en la raíz de su web que se llame install.php

Lo pueden ejecutar de 3 formas, si o si deben poner &uid=1, para que se pueda comprobar que es el administrador
Solo crea el Sitemap.xml
Registrate o inicia tu sesión para ver este contenido?sitemap=true&uid=1

Solo crea el Robots.txt
Registrate o inicia tu sesión para ver este contenido?robots=true&uid=1

Crea el sitemap.xml y Robots.txt
Registrate o inicia tu sesión para ver este contenido?sitemap=true&robots=true&uid=1

Imprimir


Enviado por: Chctrpgo
01-06-2023, 07:42 PM
Foro: Diseños Terminados
- Respuestas (6)

- Se han actualizado todas las librerías del sistema, ya que las versiones anteriores tenían riesgos conocidos en la seguridad que ponen en peligro los sitios web con esas versiones al público.

- Se ha creado un nuevo diseño basado en la versión de taringa la cual hemos llamado V7 Taringa el tema será llamado default en el directorio, ya que es en base al default de phpost.

- Se han modificado y reestilizado los esquemas agregando un diseño mejorado, limpio y responsivo, que es lo más importante para un sitio web de actualidad.

- Se han corregido muchísimos errores en la actualización del sistema, ya que la versión anterior Risus 1.3 tenía bastantes errores que ya se han corregido y otros debido a todas las actualizaciones de librerías y repositorios de terceros.

- Funcionalidad completa con php 8 y anteriores, dejando la retrocompatibilidad con todas las versiones de php hasta ahora conocidas.

- Algunas funcionalidades y mejoras fueron agregadas para darle un toque más parecido a lo que buscan los usuarios que usan PHPost.

- Se ha mejorado el sistema en rendimiento y funcionalidad, colocando nuevas rutinas, funciones y correcciones de cosas que no funcionaban según reportes de usuarios.


Actualizado el 06/01/2023

Al final de la instalación entran a Registrate o inicia tu sesión para ver este contenido y tiene que salir un mensaje que diga:

Cita:Sitemap restaurado correctamente




Demo
http://Registrate o inicia tu sesión par... contenido


Captura
[img]Registrate o inicia tu sesión para ver este contenido[/img]


Descarga

Mega
http://Registrate o inicia tu sesión par... contenido

Google Drive
http://Registrate o inicia tu sesión par... contenido

Mediafire
http://Registrate o inicia tu sesión par... contenido

Uptobox
http://Registrate o inicia tu sesión par... contenido

4shared
http://Registrate o inicia tu sesión par... contenido

Imprimir


Enviado por: Chctrpgo
01-05-2023, 03:26 PM
Foro: Diseños Terminados
- Respuestas (2)

Tema Identi actualizado con comunidades, zona Vip, catálogos y otras mejoras.

Capturas
 

[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]


DEMO
http://Registrate o inicia tu sesión par... contenido



Nota: Ejecutar y subir las consultas que estan en los archivos del tema después de la instalación.

Descarga

Mega
http://Registrate o inicia tu sesión par... contenido

Google Drive
http://Registrate o inicia tu sesión par... contenido

Mediafire
http://Registrate o inicia tu sesión par... contenido

Uptobox
http://Registrate o inicia tu sesión par... contenido

4shared
http://Registrate o inicia tu sesión par... contenido

Imprimir


Enviado por: mariano14
01-05-2023, 07:53 AM
Foro: Preséntanos tu web
- Respuestas (4)

buenas a todos, queria presentarles mi web. se las dejo por aqui el que quiera registrarse y aportar contenidos sera bienvenido. muchas gracias

telfull.online

Imprimir


Enviado por: Miguel92
01-02-2023, 12:38 PM
Foro: Sugerencias
- Sin respuestas

Hola, esta es otra sugerencia.

Tanto en inc/class/c.core.php como en inc/smarty/plugins/modifier.hace.php, para reemplazar en el plugin solo deben toma lo que esta dentro de la funcion setHace(...) y usarlo

Función original:
 

Código PHP:
    /**
     * setHace()
     * if ternario
    */
    
function setHace($fecha$show false){
        
$fecha $fecha
        
$ahora time();
        
$tiempo $ahora-$fecha
        if(
$fecha <= 0) return 'Nunca';
        elseif(
round($tiempo 31536000) <= 0){ 
            if(
round($tiempo 2678400) <= 0) { 
                if(
round($tiempo 86400) <= 0) { 
                    if(
round($tiempo 3600) <= 0) { 
                        if(
round($tiempo 60) <= 0) { 
                        if(
$tiempo <= 60$hace 'instantes';
                        } else  { 
                            
$can round($tiempo 60); 
                            
$word = ($can <= 1) ? 'minuto' 'minutos';
                            
$hace "{$can} {$word}"
                        } 
                    } else { 
                        
$can round($tiempo 3600); 
                        
$word = ($can <= 1) ? 'hora' 'horas';
                        
$hace "{$can} {$word}"
                    } 
                } else  { 
                    
$can round($tiempo 86400); 
                    
$word = ($can <= 1) ? 'd&iacute;a' 'd&iacute;as';
                    
$hace "{$can} {$word}";
                } 
            } else  { 
                
$can round($tiempo 2678400);  
                
$word = ($can <= 1) ? 'mes' 'meses';
                
$hace "{$can} {$word}"
            }
        } else {
            
$can round($tiempo 31536000); 
            
$word = ($can <= 1) ? 'a&ntilde;o' 'a&ntilde;os';
            
$hace "{$can} {$word}"
        }
        return (
$show == true) ? 'Hace '.$hace $hace;
    } 

Se puede reducir de esta manera:
Código PHP:
/**
     * setHace($fecha, $show)
     * @access public
     * @param int $fecha
     * @param bool $show
     * @return string
    */
   
public function setHace(int $fecha 0$show false){
          
# Creamos
       
$tiempo time() - $fecha;
       if(
$fecha <= 0) return 'Nunca';
       
// Declaración de unidades de tiempo, aunque es un aproximado
       // Ya que existe años bisiestos 366 días
          
$unidades = [
            
31536000 => 'a&ntilde;o',
            
2678400 => 'mes',
            
604800 => 'semana',
            
86400 => 'd&iacute;a',
            
3600 => 'hora',
            
60 => 'minuto'
          
];
       foreach(
$unidades as $segundos => $nombre){
          
$round round($tiempo $segundos);
          if(
$tiempo <= 60$hace "instantes";
          else {
              if(
$round 0){
                  
$nes = ($nombre === 'mes') ? 'es' 's';
                 
$hace "{$round} {$nombre}. ($round $nes '');
                 break;
              }
          }
       }
       
// Si se ha establecido la opción $show, se agrega 'Hace' al resultado
       
return ($show "Hace " "") . $hace;
    } 

Imprimir