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

Mostrar titulo de los posts Anterior y Siguiente v2

Recommended Posts

Bueno como dice el titulo "Mostrar titulo de los posts Anterior y Siguiente v2", ya que este es una actualización mejorada!

 

Topic de la v1

 

Básicamente se puede realizar tranquilamente desde cero:

1 - Buscan en inc/class/c.posts.php y van hasta la última llave }

/*
      OBTENER LOS TITULOS DE LOS POSTS ANTERIOR/SIGUIENTE
   */
   public function getTitles($from) {
   	global $tsCore;
   	$pid = (int)$_GET["post_id"];
   	$pid = $from ? $pid - 1 : $pid + 1;
   	$opt = $from ? "<" : ">";
   	if($pid < 0) return false;
   	// Post
   	$sql = db_exec([__FILE__, __LINE__], "query", "SELECT post_id, post_title, c_seo FROM p_posts LEFT JOIN p_categorias ON post_category = cid WHERE post_id = {$pid}");
   	// Existe?
   	if(db_exec('num_rows', $sql) === 0) {
   		$sql = db_exec([__FILE__, __LINE__], "query", "SELECT post_id FROM p_posts WHERE post_id {$opt} {$pid} ORDER BY post_id DESC LIMIT 1");
   	}
   	$data = db_exec('fetch_assoc', $sql);
   	if(!empty($data)) {
   		$data["post_title"] = $tsCore->setSEO($data["post_title"]);
   		$data["post_url"] = "{$tsCore->settings["url"]}/posts/{$data["c_seo"]}/{$data["post_id"]}/{$data["post_title"]}.html";
   	}
   	return !empty($data) ? $data : false;
   }

 

2 - En inc/php/posts.php buscan

            $tsPages['autor'] = $tsPost['post_user'];

y debajo agregan

            $smarty->assign("tsAnterior", $tsPosts->getTitles(true));
            $smarty->assign("tsSiguente", $tsPosts->getTitles(false));

 

3 - Luego buscan en tema/templates/modules/m.posts_content.tpl y buscan

{if $tsPost.user_firma && $tsConfig.c_allow_firma}

y arriba agregan (o donde deseen), obviamente ustedes lo tendrían que adaptar a su theme... Pero si usan bootstrap no tiene que hacer tantos cambios.

<div class="post-antsig">
	
	<div class="post-anterior">
		<a href="{$tsAnterior.post_url}" class="d-flex justify-content-start align-items-center">
			<div class="icon ml-2">
				<!-- Acá puede ir un icono o imagen, deciden ustedes -->
				<i class="icon-angle-left"></i>
			</div>
			<div class="titulo">
				<small class="text-uppercase">No te piedas</small>
				<span>{$tsAnterior.post_title|truncate:34}</span>
			</div>
		</a>
	</div>
	<div class="post-siguiente">
		<a href="{$tsSiguente.post_url}" class="d-flex justify-content-end align-items-center t-end">
			<div class="titulo">
				<small class="text-uppercase">A continuación</small>
				<span>{$tsSiguente.post_title|truncate:34}</span>
			</div>
			<div class="icon mr-2">
				<!-- Acá puede ir un icono o imagen, deciden ustedes -->
				<i class="icon-angle-right"></i>
			</div>
		</a>
	</div>

</div>

Así quedaría terminado!

image.png.a6fb39b1a2b65c64c565c35279106629.png

Edited by Miguel92
  • Like 2

Share this post


Link to post
Share on other sites

  • Similar Content

    • By Miguel92
      Instalador automático de themes!
      Es completamente básico y no requiere de mucha instalación.
       
      1 - Abren header.php y al final agregan
      include TS_ROOT . "/inc/InstallAutomaticTheme.php";  
      2 - Descargan "InstallAutomaticTheme.php" y lo agregan en inc/
       
      y listo todos los themes que agregues en "themes" y que contengan el archivo "install.php" los va a instalar, primero comprobará si lo tienen instalado en caso que si lo tengan, no lo va a agregar otra vez.
    • By Miguel92
      Hola a todos, no se si les interesa, pero les dejó este mod!  (No sé si era la idea que tenía)
       
      Mod iniciado por: KMario19 
      Topic: [Desarrollo] BBCode file para archivos
       
      No lo he encontrado terminado, así que supongo que para usar este mod, deben tener:
      [SECCIÓN] Archivos V1.2
      [SECCIÓN] Archivos V2
       
      [SECCIÓN] Archivos v2.2 (Actualizado a 1.3) [ZIP]
      Topic: Sección archivos v2.2
       
      Iniciamos con la instalación
      1 - Buscamos en .htaccess y buscamos
      RewriteRule ^mod-history/([A-Za-z0-9_-]+)/ inc/php/mod-history.php?ver=$1 [QSA,L] debajo agregaremos
      # Descargar RewriteRule ^download/([0-9_-]+)$ inc/php/download.php?id=$1 [QSA,L]  
      2 - Luego vamos a inc/class/c.core.php y buscamos
      public function setMenciones($html) { arriba de la función (también puede ir arriba de la última })
      # Extraemos el nombre del archivo public function parseFiles($content) {     preg_match_all('/\[file\=(\d+)\]/i', $content, $files);     foreach ($files[0] as $id => $file) {         $dato = db_exec('fetch_assoc', db_exec([__FILE__, __LINE__], 'query', "SELECT file_id, f_nombre, f_descargas, f_ext FROM a_files WHERE file_id = {$files[1][$id]} LIMIT 1"));         if($dato["file_id"] > 0) {             $replace = "<a href=\"{$this->settings["url"]}/download/{$dato["file_id"]}\">{$dato["f_nombre"]}.{$dato["f_ext"]} <span style=\"color:#aaa\">{$dato["f_descargas"]} descargas</span>";         } else $replace = "<span style=\"color:#f00\">Archivo eliminado...</span>";         $content = str_replace($file, $replace, $content);     }     return $content; }  
      3 - Después buscamos en inc/class/c.posts.php 
      $postData['user_firma'] = $tsCore->parseBadWords($tsCore->parseBBCodeFirma($postData['user_firma']),true); arriba agregamos
      $postData['post_body'] = $tsCore->parsefiles($postData['post_body']);  
      4 - Subimos este archivo "download.php" en inc/php
       
      5 - Luego en tema/js/wysibb.js buscan
      smilebox: "Emoticonos", y debajo pegan
      file: "Descargar archivo",
      un poco más abajo buscan
      modal_link_title: "Insertar enlace", y arriba agregan
      modal_link_id: "Inserta el ID del archivo",
      luego buscan
      strike,sup,sub,| y a lado agregan
      ,file
      más abajo buscan
      img : { y arriba pegan (en buttonHTML lo pueden definir ustedes)
      file : {     title: CURLANG.file,     buttonHTML: '<span class="fa-solid fa-paperclip"></span>', // Pueden agregar imagen o lo que deseen     modal: {         title: CURLANG.modal_link_id,         width: "500px",         tabs: [             {                 input: [                     {param: "FILE",title:CURLANG.modal_link_id}                 ]             }         ]     },     transform : {         '<a href="{FILE}">{FILE}</a>':"[file={FILE}]"     } },  
      bueno, eso todo... espero no olvidarme de nada!
    • By Miguel92
      Actualizar a Smarty 4.0
       
      1 - Deben descargar la última versión de smarty del repositorio en github.
       
      2 - Luego van a inc/smarty y eliminan todo el contenido (Aviso, si tienen archivos agregados en plugins les recomiendo hacer una copia)
       
      3 - Abren el archivo descargado "smarty-master.zip", acceden a la carpeta que contiene y luego buscan la carpeta "libs" y extraen el contenido dentro de "inc/smarty"
       
      4 - Ahora vamos a la raíz de nuestro sitio y abrimos "header.php" y sigan los siguientes pasos:
        A Buscan  
      define('TS_FILES', TS_ROOT.'/files/');   y debajo agregamos
      define('TS_SMARTY', TS_ROOT.'/inc/smarty/'); B Arriba de "include 'config.inc.php';" agregan  
      # Definimos donde estan los temas   define('TS_THEMES', TS_ROOT . '/themes/');   # Definimos donde se estan los plugins adicionales   define('TS_PLUGINS', TS_EXTRA . 'plugins/');   # Tiempo de vida del cache antes de ser eliminado [5hs] (3600 equivale 1hs)   define('CACHE_LIFE_TIME', 3600 * 5);   define('CACHE_CHECKED', TRUE);   # Solo usar las carpetas agregadas en $smarty->setTemplateDir()   define('SECURITY', TRUE);   # Para comprimir el html y que sea más rápido   define('COMPRESS_HTML', FALSE);   C En inc/ext crean una carpeta llamada plugins y descargar plugins.zip y la descomprimen en "inc/ext"
           Contenido del comprimido zip: fecha, getUrl, hace, kmg, nl2br, quot, rtrim, seo, strlen, trim y ucfirst
        
        D Un poco más abajo buscamos y lo borramos 
      // Smarty   include TS_CLASS.'c.smarty.php';   E Más abajo buscamos
      // Smarty $smarty = new tsSmarty(); y reemplazamos por
        # Todas las instrucciones de smarty comienzan   include TS_ROOT . "/inc/smarty.config.php";   F Al no existir el archivo "smarty.config.php" lo crean dentro de "inc"
       
      5 - Ahora buscamos "/inc/smarty.config.php" y empezaremos la configuración.
        A - Abrimos la etiqueta de <?php y luego agregan estas instrucciones
       
      6 - Ahora vamos a la raíz de nuestro sitio y abrimos "footer.php":
        A - Borramos todo el contenido del archivo y la reemplazaremos con esto 
       
      PD: Se me olvido mencionar que deben ir a inc/php/ajax_files.php y borrar lo siguiente, ya que no lo usaremos
      $smarty->template_ts = false;   // SMARTY SETTINGS  
      NOTA:

      Como verán en el array $_ACCESO_TPL_PHP_ = [...items...], es el acceso a esas carpetas. ¿Por que incluí esto?, fácil es para simplificar más, antes para incluir un archivo se tenía que agregar de la siguiente manera
      {include file='sections/main_header.tpl'} pero como en este ejemplo, al estar la ruta de la carpeta "sections" en el array se puede usar así
      {include file='main_header.tpl'} sin tener que hacer referencia a la carpeta a la que se tenga que acceder, también se puede usar de la forma corta
      {include 'main_header.tpl'} En la parte que accede al tema, css, js e images es para el funcionamiento de los plugins que había realizado, si desean lo pueden borrar... A no ser que quieran el plugin al que llame phpost, ¿Cuál es su función?: Es agregar todos los css, js sin tener que escribir toda la ruta
      para acceder a dicho archivo y en caso de que este archivo no exista, no agregará nada(no va a ser una linea vacía)
      este sería un ejemplo:
      Agregará la fuente "Roboto" desde google y los estilos que estén mencionados en los parámetros
      y lo que que sería cache es como esto "archivo.css?{$smarty.now}", así cuando se hace un cambio
      lo apliquen los cambios
      {phpost fonts=["Roboto"]     css=[       "tema" => ["estilo.css", "css" => ["live.css", "wysibb.css", "$tsPage.css"]],       "cache" => true    ] ... ETC ... } Al tener la carpeta plugins dentro de inc/ext, puedes agregar más sin problemas
    • By Miguel92
      Bueno como ya había mencionado, ya esta la "herramienta" para crear copias de seguridad completa o parcial de la base de datos y podrás restaurar dicho copia, el problema será que no tengas acceso a la administración del sitio y allí necesitarás una herramienta externa pero que funcione dentro del sitio.
       
      Solo tengo que hacerle algunos cambios a la herramienta que ya tengo creada desde hace 1 año.
      Capturas:




       
       
      Antes de comenzar, si tienes Ejecutar SQL desde la administración [Arreglado] tendrás que quitarlo o eliminar archivos
       
      Bueno comencemos con la integración, los archivos para descargar están al final.
       
      1 - Este archivo "c.database.php" y lo agregan a
       
      2 - En inc/php/admin.php buscamos
         /** NOTICIAS **/    } elseif($action == 'news'){ arriba agregarán
          } elseif($action == 'execute' OR $action == 'backup') {        # Incluimos el archivo necesario         include("../class/c.database.php");         $tsDataBase = new tsDataBase();         # Todas las opciones de la copia de seguridad         if($action == 'backup') {             if(empty($act)) {                 $smarty->assign('tsListBackup', $tsDataBase->listBackup());             # Creamos el backup completo             } elseif($act === 'new_backup') {                 if(!empty($_POST["nombre_copia"])) {                     if($tsDataBase->createBackUp()[0]) $tsCore->redirectTo($tsCore->settings['url'].'/admin/backup?save=true');                     else $smarty->assign("tsError", $tsDataBase->createBackUp()[1]);                 }             # Creamos el backup seleccionando tablas             } elseif($act === 'new_backup_select') {                 $smarty->assign('tsTablas', $tsDataBase->show_tables());                 if(!empty($_POST["nombre_copia"])) {                     if($tsDataBase->seletedTables()[0]) $tsCore->redirectTo($tsCore->settings['url'].'/admin/backup?save=true');                     else $smarty->assign("tsError", $tsDataBase->seletedTables()[1]);                 }             # Descargamos el fichero             } elseif($act === 'download') {                 if(isset($_GET["code"])) {                     $smarty->assign('tsDownload', $tsDataBase->downloader());                 }             }         }  
      3 - Ahora en inc/php/ajax/ajax.php buscan
            'admin-badwords-delete' => array('n' => 4, 'p' => ''), debajo agregan
            'admin-eliminar-sql' => array('n' => 4, 'p' => ''),       'admin-restaurar-sql' => array('n' => 4, 'p' => ''),       'admin-ejecutar-sql' => array('n' => 4, 'p' => ''), más abajo buscan
          include("../class/c.admin.php");    $tsAdmin = new tsAdmin(); y agregan
         if($action === 'admin-eliminar-sql' OR $action === 'admin-restaurar-sql' OR $action === 'admin-ejecutar-sql') {        include("../class/c.database.php");         $dbase = new tsDataBase();    } por último buscan
            default:          die('0: Este archivo no existe.');       break; y arriba agregan
              case 'admin-eliminar-sql':             echo $dbase->delete_file_sql();         break;         case 'admin-restaurar-sql':             echo $dbase->restore_file_sql();         break;         case 'admin-ejecutar-sql':             echo $dbase->executeSQL();         break;  
      4 - Ahora en tema/templates/t.admin.tpl buscan
      {include file='admin_mods/m.admin_rangos.tpl'} y debajo pegan
      {elseif $tsAction == 'execute' || $tsAction == 'backup'} {include file='admin_mods/m.admin_database.tpl'}  
      5 - En tema/templates/admin_mods/m.admin_sidemenu.tpl buscan
      <h4>Configuración de PHPost</h4> y arriba agregan
      <h4>Seguridad</h4> <ul class="cat-list">     <li id="a_configs"><span class="cat-title"><a href="{$tsConfig.url}/admin/execute">Ejecutar consultas</a></span></li>     <li id="a_main"><span class="cat-title"><a href="{$tsConfig.url}/admin/backup">Crear copia</a></span></li> </ul>  
      6 - Este archivo "m.admin_database.tpl" y lo agregan a tema/templates/admin_mods/
       
      7 - Por último en tema/ja/admin.js al final del archivo agregan
      /**   * Database  * para ejecutar consultas y crear copias */ var database = new function() {     this.execute = () => {         var SQL = 'sql=' + $("#sql").val();         $.post(global_data.url + '/admin-ejecutar-sql.php', SQL, h => {             switch (h.charAt(0)) {                 case '0':                     mydialog.alert('Error', h.substring(3), false)                 break;                 case '1':                     mydialog.alert('Bien', h.substring(3), true)                 break;             }         })     },    this.delete = (id, file, gew) => {       if(!gew) {          mydialog.show()          mydialog.title('Eliminar')          mydialog.body(`Estas seguro que quieres eliminar este archivo: ${file}`)           mydialog.buttons(true, true, 'Borrar SQL', `database.delete(${id}, '${file}', true)`, true, false, true, 'Cancelar', 'close', true, true);          /*mydialog.buttons([             {mostrar:true,texto:'Borrar SQL',accion:`database.delete(${id}, '${file}', true)`,activo:true},             {mostrar:true,texto:'Cancelar',accion:'cerrar',activo:true}          ]); */         mydialog.center()       } else {          $.post(global_data.url + '/admin-eliminar-sql.php', {id,file}, e => {             switch (e.charAt(0)) {                case '0':                   mydialog.alert('Error', e.substring(3));                break;                case '1':                   mydialog.close();                   $("#sql" + id).remove();                break;             }          })       }    },    this.restore = (file, gew) => {       if(!gew) {          mydialog.show()          mydialog.title('Restaurar')          mydialog.body(`Estas seguro que quieres restaurar esta copia: ${file}`)           mydialog.buttons(true, true, 'Restaurar SQL', `database.restore('${file}', true)`, true, false, true, 'Cancelar', 'close', true, true);          /*mydialog.buttons([             {mostrar:true,texto:'Restaurar SQL',accion:`database.restore('${file}', true)`,activo:true},             {mostrar:true,texto:'Cancelar',accion:'cerrar',activo:true}          ]);*/          mydialog.center()       } else {          mydialog.procesando_inicio('', "Espere");          mydialog.buttons(false);          mydialog.center()          $.post(global_data.url + '/admin-restaurar-sql.php', {restore: file}, e => {             switch (e.charAt(0)) {                case '0':                   mydialog.procesando_fin();                   mydialog.alert('Error', e.substring(3), false);                break;                case '1':                   mydialog.procesando_fin();                   mydialog.alert('Bien', e.substring(3), false);                break;             }          })       }    } }  
      Descargar los archivos "-#- Justo aquí -#-"
       
      En caso que tengan problemas al querer crear las copias de seguridad, comprueben que se haya creado la carpeta "database" en files/ y que tenga los permisos 0777 aplicados, en caso contrario deberán crearlo y darle los permisos correspondientes
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×