¡Bienvenido a PHPost!

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

⚖️ Aviso Legal y Normas de Contenido

PHPost.es es una comunidad dedicada al soporte, desarrollo y difusión de software libre para la creación y administración de comunidades en línea.

Compromiso con la legalidad: No se permite la publicación, promoción o distribución de software pirateado, contenido warez ni material que infrinja derechos de autor o cualquier otra normativa aplicable.

Responsabilidad: Cada usuario es responsable del contenido alojado en su propio sitio web y del uso que haga del software. Los administradores y desarrolladores de Risus Nova no controlan ni supervisan los servidores o contenidos gestionados por terceros.

⚠️ Aviso de seguridad

Risus Nova se distribuye únicamente a través de phpost.es, que es la fuente oficial del proyecto donde publicamos las versiones verificadas.

Recomendamos no utilizar copias obtenidas desde sitios de terceros, ya que podrían haber sido modificadas y no contar con la integridad del código original, lo que puede suponer riesgos de seguridad en la instalación.

Para garantizar una instalación segura y actualizada, descarga siempre la versión oficial desde el botón disponible en esta página.

Importante: No pediremos donaciones en ningún momento ni en ninguna plataforma (Ko-fi, PayPal, redes sociales u otras). Si encuentras campañas de donación que utilicen el nombre de Risus Nova o PHPost, no tienen ninguna relación con el proyecto.

🔄 Desarrollo activo

Risus Nova forma parte de una nueva etapa del proyecto PHPost, en evolución constante con mejoras, correcciones y nuevas funciones. Puedes seguir el progreso y los cambios oficiales a través del changelog y la comunidad.

Risus Nova 2.1 Estable Desarrollo activo Última actualización: 15/07/2026 Ver Demo Changelog 266 Desarrollo del tema: 75% (fase actual de desarrollo) Descargar
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Mover categorías [Mejorado]
#1

3
Mejor respuesta del mensaje Mover categorías [Mejorado]En este caso se usará CDN para que sea mejor

1 - En inc/class/c.admin.php buscamos
function saveOrden() { ... todo ... } 

y lo reemplazamos por
public function saveOrden() {
   global $tsCore;
   
   $ordenado = [];
   # Obtenemos lista con el nuevo orden
   $nuevo_orden 1;
   foreach (explode(','$_POST["cats"]) as $orden) {
      db_exec([__FILE____LINE__], 'query'"UPDATE p_categorias SET c_orden = ".$nuevo_orden." WHERE cid = ".$orden);
      array_push($ordenado$nuevo_orden);
      $nuevo_orden++;
   }



2 - En inc/php/ajax/ajax.admin.php buscan
'admin-badwords-delete' => array('n' => 4'p' => ''), 

y debajo agregan
'admin-ordenar-categorias' => array('n' => 4'p' => ''), 

más abajo buscan
case 'admin-badwords-delete':
    //<---
      echo $tsAdmin->deleteBadWord();
    //--->
break; 

y debajo agregan
case 'admin-ordenar-categorias':
    //<---
      echo $tsAdmin->saveOrden();
    //--->
break; 


3 - Luego en tema/templates/admin_mods/m.admin_cats.tpl y buscamos, puedes eliminar jquery.tablednd.js si quieres
<script type="text/javascript" src="{$tsConfig.js}/jquery.tablednd.js"></script>

y lo reemplazamos por, se usa la condicional ya que solo es donde se muestra la lista de categorías
{if $tsAct == ''}
   <script src="Registrate o inicia tu sesión para ver este contenido@latest/Sortable.min.js"></script>
{/if}

abajo de eso buscamos 
<script type="text/javascript">
    // {literal}
    $(function(){
        // {/literal} {if $tsAct == ''} {literal}
        $('#cats_orden').tableDnD({
            onDrop: function(table, row) {
                $.ajax({
                       type: 'post', 
                       url: global_data.url + '/admin/cats?ajax=true&ordenar=true', 
                       cache: false, 
                       data: $.tableDnD.serialize()
                });
            }
        });
        // {/literal} {/if} {literal}
        $('#cats_orden').tableDnD({
            onDrop: function(table, row) {
                $.ajax({
                       type: 'post', 
                       url: global_data.url + '/admin/cats?ajax=true&ordenar=true&t=cat', 
                       cache: false, 
                       data: $.tableDnD.serialize()
                });
            }
        });
        //
        $('#cat_img').change(function(){
            var cssi = $("#cat_img option:selected").css('background');
            $('#c_icon').css({"background" : cssi});
        });
        //
    });
    //{/literal}
</script>

y lo reemplazamos por
{if $tsAct == '' || $tsAct == 'editar' || $tsAct == 'nueva'}
<script>
$(() => {
   /* {if $tsAct == ''} */
   new Sortable(document.getElementById('cats_orden'), {
      animation: 150,
      dragClass: "arrastrar", // Clase que puedes modificar
      selectedClass: "seleccionado", // Clase que puedes modificar
      store: {
         // Guardar orden
         set: sortable => $.post(global_data.url + '/admin-ordenar-categorias.php', 'cats=' + sortable.toArray().join(','))
      }
   });
   /* {/if} */
   $('#cat_img').on('change', () => {
      $('#c_icon').css({ 
         "background": $("#cat_img option:selected").css('background') 
      })
   });
})
</script>
{/if}

más abajo buscan y le borran id="cats_orden"
<table cellpadding="0" cellspacing="0" border="0" width="500" align="center" class="admin_table" id="cats_orden">

un poco más abajo buscan y le añaden id="cats_orden"
<tbody>

abajo buscan
<tr id="{$c.cid}">

y lo reemplazan por
<tr id="{$c.cid}" data-id="{$c.cid}">

Si quieres puedes añadir estas líneas en tema/css/admin.css
.arrastrar {
    background-color: #EEE;
}
.seleccionado {
    background-color: #CCC;
}

Si quieres obtener más información sobre el complemento "Debes agradecer para ver el contenido...", puedes acceder a la página que contiene la documentación para que puedas hacer los cambios que desees!
Responder Compartir


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)