Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • 0
PWAD

Limitar posts destacados

Question

7 answers to this question

Recommended Posts

  • 0

Solo trato de querer ayudar. 

 

Revisa el archivo que está en tutema/templates/modules/m.home_destacados.tpl

 

Este codigo aparece varias veces, supongo que el número 10, es para cambiar la cantidad que aparecerá en la home. Espero no equivocarme, igual prueba. cámbialos todas las veces que aparezca por el número que quieras. 

{if $i+1 < 10}0{/if}{$i+1}. 

 

Share this post


Link to post
Share on other sites
  • 0
hace 3 minutos, albert2227 dijo:

Solo trato de querer ayudar. 

 

Revisa el archivo que está en tutema/templates/modules/m.home_destacados.tpl

 

Este codigo aparece varias veces, supongo que el número 10, es para cambiar la cantidad que aparecerá en la home. Espero no equivocarme, igual prueba. cámbialos todas las veces que aparezca por el número que quieras. 

{if $i+1 < 10}0{/if}{$i+1}. 

 

no sirve para eso ese limita el que aparezca el numero cero solo antes de llegar a 10 para cambiar el numero de post que aparesen tienes que hacerlo directamente en la consulta me imagino que esta en c.tops.php pero no se la verdad o otra cosa que puedes hacer usando el contador $i podria ser creado esta condición sobre la lista de post

 

 

{if $i+1 <11} 

codigo de la lista de post

{/if}

Share this post


Link to post
Share on other sites
  • 0

Fui al archivo c.tops en inc/class, modifiqué 

        // 15 MINUTOS

$data['15min'] = $this->getHomeTopPostsQuery($this->setTime(9));

// 1HORA

$data['hora'] = $this->getHomeTopPostsQuery($this->setTime(6));

// 3HORAS

$data['3horas'] = $this->getHomeTopPostsQuery($this->setTime(7));

// 6HORAS

$data['6horas'] = $this->getHomeTopPostsQuery($this->setTime(8));

     //

        return $data;
    }

por

 

        // 15 MINUTOS

$data['15min'] = $this->getHomeTopDestacadosQuery($this->setTime(9));

// 1HORA

$data['hora'] = $this->getHomeTopDestacadosQuery($this->setTime(6));

// 3HORAS

$data['3horas'] = $this->getHomeTopDestacadosQuery($this->setTime(7));

// 6HORAS

$data['6horas'] = $this->getHomeTopDestacadosQuery($this->setTime(8));
        //

        return $data;
    }

 

y luego más abajo agregué:

 

    function getHomeTopDestacadosQuery($date){
        
        //
        $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_category, p.post_title, p.post_puntos, c.c_seo FROM p_posts AS p LEFT JOIN p_categorias AS c ON c.cid = p.post_category  WHERE p.post_status = 0 AND p.post_date BETWEEN \''.$date['start'].'\' AND \''.$date['end'].'\' ORDER BY p.post_puntos DESC LIMIT 10');
        $data = result_array($query);
        
        //
        return $data;
    }

Share this post


Link to post
Share on other sites
  • 0
hace 22 minutos, PWAD dijo:

Fui al archivo c.tops en inc/class, modifiqué 

        // 15 MINUTOS

$data['15min'] = $this->getHomeTopPostsQuery($this->setTime(9));

// 1HORA

$data['hora'] = $this->getHomeTopPostsQuery($this->setTime(6));

// 3HORAS

$data['3horas'] = $this->getHomeTopPostsQuery($this->setTime(7));

// 6HORAS

$data['6horas'] = $this->getHomeTopPostsQuery($this->setTime(8));

     //

        return $data;
    }

por

 

        // 15 MINUTOS

$data['15min'] = $this->getHomeTopDestacadosQuery($this->setTime(9));

// 1HORA

$data['hora'] = $this->getHomeTopDestacadosQuery($this->setTime(6));

// 3HORAS

$data['3horas'] = $this->getHomeTopDestacadosQuery($this->setTime(7));

// 6HORAS

$data['6horas'] = $this->getHomeTopDestacadosQuery($this->setTime(8));
        //

        return $data;
    }

 

y luego más abajo agregué:

 

    function getHomeTopDestacadosQuery($date){
        
        //
        $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_category, p.post_title, p.post_puntos, c.c_seo FROM p_posts AS p LEFT JOIN p_categorias AS c ON c.cid = p.post_category  WHERE p.post_status = 0 AND p.post_date BETWEEN \''.$date['start'].'\' AND \''.$date['end'].'\' ORDER BY p.post_puntos DESC LIMIT 10');
        $data = result_array($query);
        
        //
        return $data;
    }

 

jeje basta con cambiar el  LIMIT bien por ti

  • Like 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Similar Content

    • By fellomix
      Hola tengo instalado el Mod imagen de portada en los posts
      y quiero que reflejen la imagen de portada en el modulo posts destacados de la home.
       
      la pagina es http://cinevela.xyz
       
      El codigo del modulo modules/m.home_posts_destacados.tpl que tengo ahora es:
       
      <div class="boxposts separa" id="despost"> <div class="titular"> <h2>Destacados</h2> <div class="mentop"> <div class="actualtop" id="dcambi">6h</div> <div class="listop" id="dctops"> <a onclick="pestana('dctops','dayer','dtayer','dcambi','despost'), filtrar_post_destacados('6');" class="dtayer">15m</a> <a onclick="pestana('dctops','dhoy','dthoy','dcambi','despost'), filtrar_post_destacados('8');" class="dthoy">1h</a> <a onclick="pestana('dctops','dsemana','dtsemana','dcambi','despost'), filtrar_post_destacados('9');" class="dtsemana">3h</a> <a onclick="pestana('dctops','dmes','dtmes','dcambi','despost'), filtrar_post_destacados('10');" class="dtmes listo">6h</a> </div> </div> </div> <section class="tops" id="posdestacados"> {if $tsPostsDestacados} {foreach from=$tsPostsDestacados item=p} <div class="clerela" style="height: 100px;"> <a class="cates" title="{$p.post_title}" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html"> {if $p.post_portada} <img class="loadimg" data-original="{$p.post_portada}" style="width: 78px; height: 100px;"> {else} <img class="loadimg" data-original="{$tsConfig.url}/files/avatar/{$tsAutor.user_id}_120.jpg" style="width: 78px; height: 100px;"/> {/if} </a> <div class="ditip"> <span>{$p.c_nombre}</span> <a title="{$p.post_title}" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|limit:55}</a> </div> </div> {/foreach} {else} <div class="nada-gris" style="margin-bottom: 10px;">Sin destacados en este periodo</div> {/if} </section> <div class="paginar"><a href="/top/">Ver m&aacute;s</a></div> </div>  
    • By Miguel92
      ESTA HECHO
      Este es un pedido para @KillerJohn

      1) Primero ejecutaremos esta consulta o mejor a lo último asi saben en donde lo van a colocar y si van a tener que agregar más consulta
      CREATE TABLE IF NOT EXISTS `w_background` ( `id` int(11) NOT NULL, `creador` varchar(250) NOT NULL, `home` TEXT NOT NULL, `posts` TEXT NOT NULL, `fotos` TEXT NOT NULL, `admin` TEXT NOT NULL, `alternativa` TEXT NOT NULL ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; INSERT INTO `w_background` (`id`, `creador`,`home`, `posts`, `fotos`, `admin`, `alternativa`) VALUES (1, '@Miguel92', '', '', '', '', 'En el caso que no sean fotos,home,posts, etc'); En el caso que quieran más debajo de `posts` TEXT NOT NULL, agregan esto `*` TEXT NOT NULL, --> donde esta * le agregan el nombre que quieran .

      luego a lado de `posts`, agregan ``,
      (1, '@Miguel92', '','',  '*', '', ''); asi
       
      2) Ahora vamos a la raiz header.php y buscamos    
      // Nofiticaciones $smarty->assign('tsNots',$tsMonitor->notificaciones); y debajo agregamos
      // background de home-posts-fotos-etc $smarty->assign('tsBack',$tsCore->backgrounds);  
      3) Ahora buscamos en inc/class/c.core.php y buscamos
      $this->settings = $this->getSettings();       
      y debajo agregamos
      $this->backgrounds = $this->getBack(); y un poco más abajo buscamos    
      /* getCategorias() */ y abajo pegamos
      /* getBack() :: @Miguel */ function getBack() { $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM `w_background`'); return db_exec('fetch_assoc', $query); } 4) En el mismo directorio buscamos inc/class/c.admin.php y antes de la llave } agregaremos esto
       
      /* saveBack() by @Miguel92 */ function saveBack() { global $tsCore; // $c = array( 'creador' => $tsCore->setSecure($tsCore->parseBadWords($_POST['creador'])) , 'home' => $tsCore->setSecure($_POST['home']), 'posts' => $tsCore->setSecure($_POST['posts']), 'fotos' => $tsCore->setSecure($_POST['fotos']), 'admin' => $tsCore->setSecure($_POST['admin']), 'alternativa' => $tsCore->setSecure($_POST['alternativa']), ); // UPDATE if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `w_background` SET `creador` = \'' . $c['creador']. '\', `home` = \'' . $c['home']. '\', `posts` = \'' . $c['posts']. '\', `fotos` = \'' . $c['fotos'] .'\', `admin` = \'' . $c['admin']. '\', `alternativa` = \'' . $c['alternativa']. '\' WHERE `id` = \'1\'')) return true; else exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') ); } 5) Luego buscamos en inc/php/admin.php y buscamos
      /** NOTICIAS **/ } elseif($action == 'news'){ y arriba ponemos
      /** Backgrounds by @Miguel92 **/ }elseif($action == 'fondos'){ // GUARDAR CONTROLES if(!empty($_POST['home'])) { if($tsAdmin->saveBack()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/fondos?save=true'); } 6) Luego buscamos templates/t.admin.tpl y buscamos
      {elseif $tsAction == 'rangos'} {include file='admin_mods/m.admin_rangos.tpl'} y debajo agregamos
      {elseif $tsAction == 'fondos'} {include file='admin_mods/m.admin_back.tpl'} 7) Luego vamos a templates/admin_mods y crearemos un archivo llamado ' m.admin_back.tpl ' y allí alojaremos esto
      <div class="boxy-title"> <h3>Backgrounds para cambios depende de página</h3> </div> <div id="res" class="boxy-content"> {if $tsSave}<div style="display: block;" class="mensajes ok">Las configuraciones han sido guardadas! </div>{/if} <form action="" method="post" autocomplete="off"> <fieldset> <legend>Backgrounds</legend> <!-- COPYRIGHT --> <dl> <dt><label for="creador">Hecho por</label><br /><span>Creado para todos ustedes con amor!.</span></dt> <dd><input type="text" id="creador" name="creador" value="{$tsBack.creador}" /></dd> </dl> <!-- PARA POSTS --> <dl> <dt><label for="posts">Fondo para Posts</label><br /><span>Introduce la URL de fondo que quieres!.</span></dt> <dd><input type="text" id="posts" name="posts" value="{$tsBack.posts}" /></dd> </dl> <!-- PARA FOTOS --> <dl> <dt><label for="fotos">Fondo para Fotos</label><br /><span>Introduce la URL de fondo que quieres!.</span></dt> <dd><input type="text" id="fotos" name="fotos" maxlength="300" value="{$tsBack.fotos}" /></dd> </dl> <!-- PARA ADMIN --> <dl> <dt><label for="admin">Fondo para Admin</label><br /><span>Introduce la URL de fondo que quieres!.</span></dt> <dd><input type="text" id="admin" name="admin" value="{$tsBack.admin}" /></dd> </dl> <!-- PARA ALTERNATIVA --> <dl> <dt><label for="alternativa">Fondo para lo demás</label><br /><span>Introduce la URL de fondo que quieres!.</span></dt> <dd><input type="text" id="alternativa" name="alternativa" value="{$tsBack.alternativa}" /></dd> </dl> <p><input type="submit" name="save" value="Guardar Cambios" class="btn_g"/></p> </fieldset> </form> </div> 8) Luego buscamos en el mismo directorio m.admin_sidemenu.tpl y buscamos
      <h4>General</h4> y debajo pegamos
      <h4>Control nuevos</h4> <ul class="cat-list"> <li id="a_configs"><span class="cat-title"><a href="{$tsConfig.url}/admin/fondos">Control background</a></span></li> </ul> <hr> 9) Luego buscamos en templates/sections/main_header.tpl y buscamos <body> y reemplazamos por
       
      <body style="background-image: url({if $tsPage == 'home' || $tsPage == 'posts'}{$tsBack.posts}{elseif $tsPage == 'fotos'}{$tsBack.fotos}{elseif $tsPage == 'admin'}{$tsBack.admin}{else}{$tsBack.alternativa}{/if}); background-repeat:no-repeat; background-size:cover; background-color: #000; background-attachment: fixed;">  
      background-repeat:no-repeat;  ---> Para que la imagen no se repita para ningun lado
      background-size:cover; ---> Esto abarcará toda la pantalla tambien se puede usar  background-size: 100% 50%;
      background-color: #000;  ---> El fondo tambien es de color negro
      background-attachment: fixed; ----> El fondo no se moverá
       
      y si quieren van a estilos.css buscan body { y lo agregan alli }
       
      igual ya se que la mayoría que conoce esto en html pero hay otros que tal vez no lo conocé
       
      Espero que sea esto lo que estabas buscando y también se puede aplicar al LOGO si quieren que sea diferente en cada página...
      Lamento no haber puesto Caps!
       
      Cambios 24/03/2018
      * Se agregó "alternativa" en el caso que no sea Administración, Home, Posts o Fotos
      * Se modificó la línea mal escrita
      * Se realizo mini-cambios algo el código existente
       
      Agregar esta consulta
      ALTER TABLE `w_background` ADD `alternativa` TEXT NOT NULL AFTER `admin`;  
    • Guest
      By Guest
      http://www.vellenger.com/posts/complementos/33/Fuente-de-Informacion-Multiple-V5.html
       
       
      Bueno vengo a comentarles del siguiente fix, lo que pasa es que si tenes activada la opcion para revisar los posts despues de su publicacion el MOD tira error en la consulta, lo que deben modificar es lo siguiente:
       
      if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `p_posts` (post_user, post_category, post_title, post_body, post_date, post_tags, post_ip, post_private, post_block_comments, post_sponsored, post_sticky, post_smileys, post_visitantes, post_status) VALUES (\''.$tsUser->uid.'\', \''.(int)$postData['category'].'\', \''.$postData['title'].'\', \''.$postData['body'].'\', \''.$postData['date'].'\', \''.$postData['tags'].'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.(int)$postData['private'].'\', \''.(int)$postData['block_comments'].'\', \''.(int)$postData['sponsored'].'\', \''.(int)$postData['sticky'].'\', \''.(int)$postData['smileys'].'\', \''.(int)$postData['visitantes'].'\', '.(!$tsUser->is_admod && ($tsCore->settings['c_desapprove_post'] == 1 || $tsUser->permisos['gorpap'] == true) ? '\'3\'' : '\'0\'').')')) { $postID = db_exec('insert_id'); En esta linea que esta mas o menos en la 143, 144 por ahi ahahah
       
      (post_user, post_category, post_title, post_body, post_date, post_tags, post_ip, post_private, post_block_comments, post_sponsored, post_sticky, post_smileys, post_visitantes, post_status, post_fuenteon, post_fuente1, post_fuente2, post_fuente3, post_fuente4, post_fuente5) VALUES (\''.$tsUser->uid.'\', \''.(int)$postData['category'].'\', \''.$postData['title'].'\', \''.$postData['body'].'\', \''.$postData['date'].'\', \''.$postData['tags'].'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.(int)$postData['private'].'\', \''.(int)$postData['block_comments'].'\', \''.(int)$postData['sponsored'].'\', \''.(int)$postData['sticky'].'\', \''.(int)$postData['smileys'].'\', \''.(int)$postData['visitantes'].'\', '.(!$tsUser->is_admod && ($tsCore->settings['c_desapprove_post'] == 1 || $tsUser->permisos['gorpap'] == true) ? '\'3\'' : '\'0\', \''.(int)$postData['fuenteon'].'\', \''.$postData['fuente1'].'\', \''.$postData['fuente2'].'\', \''.$postData['fuente3'].'\', \''.$postData['fuente4'].'\', \''.$postData['fuente5'].'\'').')')) { $postID = mysql_insert_id(); No lo reemplazen por esto!
       
      ----------------------------------------------------
       
      Agregar despues de post_visitantes,
       
      post_fuenteon, post_fuente1, post_fuente2, post_fuente3, post_fuente4, post_fuente5,  
      ----------------------------------------------------
       
      Luego de:
      , \''.(int)$postData['visitantes'].'\', Agregar:
       
      \''.(int)$postData['fuenteon'].'\', \''.$postData['fuente1'].'\', \''.$postData['fuente2'].'\', \''.$postData['fuente3'].'\', \''.$postData['fuente4'].'\', \''.$postData['fuente5'].'\',  
      Eso seria todo!
      Gracias a @Vellenger por el aporte de este grande MOD, todavia estoy viendo para obtener el titulo de la URL y que lo muestre en el post, y no mostrarme la URL como link porque queda medio feo... Si alguien sabe como implementarlo y me pudiera ayudar seria genial!  En el foro esta, pero para implementarlo solo para una URL y lo quiero para las 5 fuentes, no solo para 1.
    • By Altffenser
      Hola a todos, quisiera compartir con todos este mod que ya van varias personas que están interesadas en él y nada, para mí esto fue como una práctica, sé que algún día llegaré a tener el nivel de conocimientos que me he impuesto. En fín, este MOD lo que hace es limitar a los usuarios el numero de posts que pueden publicar, es decir, el administrador impone a cada usuario o rango un límite de posts por día; ésto nos ayudará a disminúir el spam en usuarios novatos (por ejemplo). Sin más, les dejo las instrucciones.
       
      Aviso: la instalación es sólo para el tema default, aunque el código (PHP) sea el mismo la estructra de cada tema puede cambiar. 1. Abrir el archivo c.admin.php y busca:
      'cant' => $row['r_cant'], Debajo coloca:
      'post_cant' => $row['r_posts'], a) Busca:
      'cant' => empty($_POST['global-cantidadrequerida']) ? 0 : $tsCore->setSecure($_POST['global-cantidadrequerida']), Añadir debajo:
      'post_cant' => empty($_POST['global-postsforday']) ? 0 : $tsCore->setSecure($_POST['global-postsforday']), b ) Busca (unas cuantas líneas abajo):
      'gopfd' => $_POST['global-pointsforday']); Borra el ); y pon en su lugar una coma ,
      Presiona la tecla Intro para hacer un saldo de línea, luego, añade lo siguiente:
      'golpd' => $_POST['global-postsforday']); Deberá quedar de la siguiente manera:
      'gopfd' => $_POST['global-pointsforday'], 'golpd' => $_POST['global-postsforday']); c) Busca (unas cuantas líneas abajo);
      if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_rangos` SET r_name = \'' . $tsCore->setSecure($r['name']) . '\', r_color = \'' . $r['color'] . '\', r_image = \'' . $tsCore->setSecure($r['img']) . '\', r_cant = \'' . (int)$r['cant'] . '\', r_allows = \'' . $tsCore->setSecure($permisos) . '\', r_type = \'' . $r['type'] . '\' WHERE rango_id = \'' . (int)$rid . '\'')) Reemplazar por:
      if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_rangos` SET r_name = \'' . $tsCore->setSecure($r['name']) . '\', r_color = \'' . $r['color'] . '\', r_image = \'' . $tsCore->setSecure($r['img']) . '\', r_cant = \'' . (int)$r['cant'] . '\', r_posts = \'' . (int)$r['post_cant'] . '\', r_allows = \'' . $tsCore->setSecure($permisos) . '\', r_type = \'' . $r['type'] . '\' WHERE rango_id = \'' . (int)$rid . '\'')) d) Busca:
      'cant' => empty($_POST['global-cantidadrequerida']) ? 0 : $tsCore->setSecure($_POST['global-cantidadrequerida']), Añadir debajo:
      'post_cant' => empty($_POST['global-postsforday']) ? 0 : $tsCore->setSecure($_POST['global-postsforday']), e) Busca:
      'gopfd' => $_POST['global-pointsforday'],  
      Info: Hacer lo mismo que en el inciso b ). f) Busca (unas cuantas líneas abajo):
      if (db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_rangos` (`r_name`, `r_color`, `r_image`, `r_cant`, `r_allows`, `r_type`) VALUES (\'' . $tsCore->setSecure($r['name']) . '\', \'' . $r['color'] . '\', \'' . $tsCore->setSecure($r['img']) . '\', \'' . (int)$r['cant'] . '\', \'' . $tsCore->setSecure($permisos) . '\', \'' . (int)$r['type'] . '\')')) return 1; Reemplazar por:
      if (db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_rangos` (`r_name`, `r_color`, `r_image`, `r_cant`, `r_posts`, `r_allows`, `r_type`) VALUES (\'' . $tsCore->setSecure($r['name']) . '\', \'' . $r['color'] . '\', \'' . $tsCore->setSecure($r['img']) . '\', \'' . (int)$r['cant'] . '\', \'' . $tsCore->setSecure($permisos) . '\', \'' . (int)$r['post_cant'] . '\', \'' . $tsCore->setSecure($permisos) . '\', \'' . (int)$r['type'] . '\')')) return 1; g) Buscar:
      $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `user_name`, `user_email`, `user_password` FROM u_miembros WHERE user_id = \'' . (int)$user_id . '\''); Y donde está `user_password` añadir a un lado:
      , `user_limiteposts` Quedará de la siguiente manera:
      `user_password`, `user_limiteposts` h) Buscar (unas cuantas lineas abajo):
      $pointsxdar = empty($_POST['pointsxdar']) ? $data['user_puntos'] : $_POST['pointsxdar']; Añadir debajo:
      $postsxdia = empty($_POST['poststodo']) ? $data['user_limiteposts'] : $_POST['poststodo']; i) Buscar:
      return 'Los puntos para dar no se reconocen'; Añadir debajo:
      if ($postsxdia >= 0) { $ptodo = ', user_limiteposts = \''. (int)$postsxdia . '\''; } else { return "El límite de posts no se reconocen"; } j) Buscar:
      if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET user_email = \'' . $tsCore->setSecure($email) . '\' ' . $changedis . ' ' . $new_nick . ' ' . $pxd . ' ' . $apoints . ' ' . $db_key . ' WHERE user_id = \'' . (int)$user_id . '\'')) Reemplazar por:
      if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET user_email = \'' . $tsCore->setSecure($email) . '\' ' . $changedis . ' ' . $new_nick . ' ' . $pxd . ' ' . $ptodo . ' ' . $apoints . ' ' . $db_key . ' WHERE user_id = \'' . (int)$user_id . '\''))  
      2. Abrir el archivo c.user.php y...
      a) Buscar:
      $this->actualizarPuntos(); Añadir debajo:
      $this->actualizarPost(); b ) Buscar:
      function actualizarPuntos() { // HORA EN LA CUAL RECARGAR PUNTOS 0 = MEDIA NOCHE DEL SERVIDOR $ultimaRecarga = $this->info['user_nextpuntos']; $tiempoActual = time(); // SI YA SE PASO EL TIEMPO RECARGAMOS... if($ultimaRecarga < $tiempoActual){ // OPERACION SIG RECARGA A LAS 24 HRS $horaActual = date("G",$tiempoActual); $minActuales = date("i",$tiempoActual) * 60; $segActuales = date("s",$tiempoActual); $sigRecarga = 24 - $horaActual; $sigRecarga = ($sigRecarga * 3600) - ($minActuales + $segActuales); $sigRecarga = $tiempoActual + $sigRecarga; // LA SIGUIENTE RECARGA SE HARA A MEDIA NOCHE DEL SIGUIENTE DIA LA HORA DEPENDE DEL SERVIDOR // db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntosxdar = '.($tsCore->settings['c_keep_points'] == 0 ? $this->permisos['gopfd'] : 'user_puntosxdar + '.$this->permisos['gopfd']).', user_nextpuntos = '.$sigRecarga.' WHERE user_id = \''.$this->uid.'\''); // VAMONOS return true; } } Añadir debajo:
      function actualizarPost() { // HORA EN LA CUAL RECARGAR LOS POSTS QUE PUEDE CREAR 0 = MEDIA NOCHE DEL SERVIDOR $ultimaRecarga = $this->info['user_nextlimiteposts']; $tiempoActual = time(); // SI YA SE PASO EL TIEMPO RECARGAMOS... if($ultimaRecarga < $tiempoActual){ // OPERACION SIG RECARGA A LAS 24 HRS $horaActual = date("G",$tiempoActual); $minActuales = date("i",$tiempoActual) * 60; $segActuales = date("s",$tiempoActual); $sigRecarga = 24 - $horaActual; $sigRecarga = ($sigRecarga * 3600) - ($minActuales + $segActuales); $sigRecarga = $tiempoActual + $sigRecarga; // LA SIGUIENTE RECARGA SE HARA A MEDIA NOCHE DEL SIGUIENTE DIA LA HORA DEPENDE DEL SERVIDOR // db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_limiteposts = user_nextlimiteposts = '.$sigRecarga.' WHERE user_id = \''.$this->uid.'\''); // VAMONOS return true; } }  
      Esta función no la he testeado como se debe, por lo que no he comprobado su funcionalidad al 100%. 3. Abrir el archivo c.posts.php  y...
      a) Buscar:
      else { $postData['sponsored'] = empty($_POST['patrocinado']) ? 0 : 1; $postData['sticky'] = empty($_POST['sticky']) ? 0 : 1; } Añadir debajo:
      if($tsUser->info['user_limiteposts'] == 0) return 'Has alcanzado el l&iacute;mite de posts por d&iacute;a'; b ) Buscar:
      // ULTIMO POST db_exec(array( __FILE__, __LINE__ ) , 'query', 'UPDATE u_miembros SET user_lastpost = \'' . $time . '\' WHERE user_id = \'' . $tsUser->uid . '\''); Añadir debajo:
      // RESTAR POSTS DISPONIBLES db_exec(array( __FILE__, __LINE__ ) , 'query', 'UPDATE u_miembros SET user_limiteposts = user_limiteposts - 1 WHERE user_id = \'' . $tsUser->uid . '\''); 4. Ejecutar las siguientes consultas SQL:
      ALTER TABLE `u_miembros` ADD `user_limiteposts` INT(2) UNSIGNED NOT NULL DEFAULT '0' AFTER `user_puntosxdar`; ALTER TABLE `u_rangos` ADD `r_posts` INT(5) NOT NULL AFTER `r_cant`; ALTER TABLE `u_miembros` ADD `user_nextlimiteposts` INT(10) NOT NULL DEFAULT '0' AFTER `user_nextpuntos`; 5. Abrir el archivo m.admin_rangos.tpl y...
      a) Buscar:
      <th>Puntos por post</th> Añadir debajo:
      <th>Límite de posts</th>  
      Hacer lo mismo para las dos 2 coincidencias b ) Buscar:
      <td>{$r.max_points}</td> Añadir debajo:
      <td>{$r.post_cant}</td>  
      Hacer lo mismo para las dos 2 coincidencias c) Buscar:
      <dl> <dt><label for="gopfp">Puntos por post</label><br /><span>Puntos que puede dar en cada post.</span></dt> <dd><input type="text" id="gopfp" name="global-pointsforposts" value="{$tsRango.permisos.gopfp}" style="width:30%"/></dd> </dl> Añadir debajo:
      <dl> <dt><label for="golpd">Límite de posts</label><br /><span>Posts que puede crear al día</span></dt> <dd><input type="text" id="golpd" name="global-postsforday" value="{$tsRango.permisos.golpd}" style="width:30%"/></dd> </dl> 6. Abrir el archivo m.admin_users.tpl y...
      a) Buscar:
      <dl> <dt><label>Puntos para dar:</label></dt> <dd><input type="text" name="pointsxdar" id="pointsxdar" value="{$tsUserD.user_puntosxdar}" style="width:10%" /></dd> </dl> Añadir debajo:
      <dl> <dt><label>Límte de posts a crear:</label></dt> <dd><input type="text" name="poststodo" id="poststodo" value="{$tsUserD.user_limiteposts}" style="width:10%" /></dd> </dl>  
      Nota: Si quieres mostrar los posts que restan; en el perfil del usuario, has lo siguiente: (sólo lo verá el dueño del perfil, administrador o moderador)  
      En m.perfil_headinfo.tpl Busca:
      <li> <strong>{$tsInfo.stats.user_fotos}</strong> <span>Fotos</span> </li> Añadir debajo:
      {if $tsUser->uid == $tsInfo.uid && $tsUser->is_member || $tsUser->is_admod} <li class="qtip" title="Tu rango tiene un límite de posts por día, asegúrate de postear algo interesante"> <strong>{$tsInfo.stats.user_limiteposts}</strong> <span>Posts restantes</span> </li> {/if}  
      ¡Has terminado!
       
      Y bien, como dije al inicio, este mod es 100% administrable, puedes otorgarle a cierto usuario o rango un límite de posts. Dejaré losarchivos editados por si alguien gusta descargarlos y evitarse el trabajo de modificar los archivos.
       
      Descargar archivos  
      Capturas

       
      Avisar de cualquier error en los comentarios.
      a { text-decoration: none !important; }  
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×