-
Cómo funcionan las Mision...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
Ayer, 09:46 PM
» Respuestas: 0
» Vistas: 70 -
V6 Original/Dark/Memes (A...
Foro: Diseños Terminados
Último mensaje por: carlos007r
Ayer, 11:08 AM
» Respuestas: 26
» Vistas: 6,340 -
V5
Foro: Diseños Terminados
Último mensaje por: Aeikox
06-13-2026, 12:16 AM
» Respuestas: 8
» Vistas: 1,449 -
Risus 1.3 Actualizado jQu...
Foro: Risus 1.3
Último mensaje por: Tronlar
06-12-2026, 10:45 PM
» Respuestas: 55
» Vistas: 10,663 -
Preguntas Frecuentes y So...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 06:17 PM
» Respuestas: 0
» Vistas: 58 -
Cómo registrar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 05:32 PM
» Respuestas: 0
» Vistas: 51 -
Cómo monetizar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 07:19 PM
» Respuestas: 0
» Vistas: 52 -
Introducción al SEO para ...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:58 PM
» Respuestas: 0
» Vistas: 59 -
Guía completa de SEO para...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:48 PM
» Respuestas: 0
» Vistas: 60 -
Diccionario de términos b...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 01:41 PM
» Respuestas: 0
» Vistas: 83
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
Captura GIF
Ejecutar esta consulta
ALTER TABLE `u_miembros` ADD `user_acces` INT NOT NULL
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
/*
getAdmins()
*/
Arriba agregar:
/*
getSecure()
*/
function getSecure(){
global $tsUser,$tsCore;
//
$username= $tsCore->setSecure($_POST['username']);
$password= $tsCore->setSecure($_POST['pass']);
$username = strtolower($username);
$pp_password = md5(md5($password).strtolower($username));
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT user_name,user_password FROM u_miembros WHERE user_password = \''.$pp_password.'\' AND user_name = \''.$username.'\'');
//
$data = result_array($query);
$tiempo = time();
$resultado= $tiempo;
if($resultado=0){
$resultado=1;
}else{
$resultado= $tiempo;
}
if(!empty($data)){
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_acces = '.$resultado.' WHERE user_id = '.$tsUser->uid.'');
}
return $data;
}
En c.user.php --> inc --> class --> c.user.php
Buscar:
function actualizarPuntos()
{
// HORA EN LA CUAL RECARGAR PUNTOS 0 = MEDIA NOCHE DEL SERVIDOR
$ultimaRecarga = $this->info['user_nextpuntos'];
$tiempoActual = time();
Debajo agregar:
$tiempo = time();
$resultado= $tiempo;
$timeuser= $this->info['user_acces'] + 360;
if($timeuser < $resultado){
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_acces = \'0\' WHERE user_id = \''.$this->uid.'\'');
}
Buscar:
// NOMBRE
$this->nick = $this->info['user_name'];
$this->uid = $this->info['user_id'];
Debajo agregar:
$this->acces = $this->info['user_acces'];
En admin.php --> inc --> php --> admin.php
Buscar:
$smarty->assign("totalNicks",$tsAdmin->totalNicks());
Arriba agregar:
$smarty->assign("tsAcces",$tsAdmin->getSecure());
if(!empty($_POST['pass'])) {
$tsCore->redirectTo($tsCore->settings['url'].'/admin/');
}
En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl
Buscar:
{include file='sections/main_header.tpl'}
Debajo agregar:
{if $tsUser->acces>0}
Buscar:
{include file='sections/main_footer.tpl'}
Arriba agregar:
{else}
{include file='modules/m.adm_acces.tpl'}
{/if}
Y subir esta carpeta
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
4shared
http://Registrate o inicia tu sesión par... contenido
Creditos: titan
Pts
Pts es ligero y modular. Escrito en typescript, viene con muchos algoritmos útiles para visualización y codificación creativa. Su amable API es compatible con prototipado rápido y proyectos más grandes.
Web
http://Registrate o inicia tu sesión par... contenido
Famous Engine
Es un motor de renderización JavaScript de código libre y abierto. Lo que hace que el Famous Engine sea único es su motor de renderización JavaScript y motor de física 3D que da a los desarrolladores la potencia y las herramientas para construir aplicaciones y animaciones de calidad nativa utilizando JavaScript puro. Está diseñado para permitir a los desarrolladores la capacidad de renderizar tanto a DOM como a WebGL en una API unificada.
Web
http://Registrate o inicia tu sesión par... contenido
Two.js
Es una api de dibujo bidimensional orientada a los navegadores web modernos. Es agnóstico renderr que permite dibujar al mismo api en múltiples contextos: svg, canvas, y webgl.
Web
http://Registrate o inicia tu sesión par... contenido
Lottie
Agregue fácilmente animación de alta calidad a cualquier aplicación nativa.
Lottie es una biblioteca de iOS, Android y React Native que rendere las animaciones After Effects en tiempo real, permitiendo que las aplicaciones usen animaciones tan fácilmente como utilizan imágenes estáticas.
Web
http://Registrate o inicia tu sesión par... contenido
mo.js
Es una biblioteca JavaScript dedicada al movimiento para la web. Ofrece una sintaxis declarativa para el movimiento y la creación de elementos para la animación. Dependiendo de lo que esté animando, las formas y otros objetos que mo.js te permite hacer podría simplificar tu flujo de trabajo. mo.js ofrece una sintaxis declarativa que hace que sea muy fácil crear algo sobre la marcha.
Web
http://Registrate o inicia tu sesión par... contenido
Snap.svg
SVG es una excelente manera de crear gráficos vectoriales interactivos independientes de resolución que se verán muy bien en cualquier pantalla de tamaño. Y la biblioteca de JavaScript Snap.svg hace que trabajar con sus activos SVG tan fácil como jQuery hace trabajar con el DOM.
Snap.svg está diseñado para navegadores modernos y por lo tanto es compatible con las características más recientes de SVG como enmascaramiento, recortes, patrones, gradientes completos, grupos y más.
Web
http://Registrate o inicia tu sesión par... contenido
Popmotion
Popmotion hace que sea fácil definir animaciones complejas de aspecto elmérno, se hace fácil dar por sentado cuánta complejidad bajo el capó que maneja para nosotros, en lugar de pasar incontables horas animaciones de afinación que ahora podemos centrarnos en construir la interfaz de usuario animada eficientemente con código conciso y mantenible.
Web
http://Registrate o inicia tu sesión par... contenido
Animejs
Es una biblioteca de animación JavaScript ligera. Funciona con cualquier Propiedad CSS, CSS individual transforma, SVG o cualquier atributo DOM, y objetos JavaScript.
Web
http://Registrate o inicia tu sesión par... contenido
ProgressBar.js
Barras de progreso sensibles y elegante con caminos SVG animados. Utilice formas integradas o cree sus propios caminos. Personaliza las animaciones como desees.
Web
http://Registrate o inicia tu sesión par... contenido
Bounce.js
Es una herramienta y una biblioteca JS para generar hermosas animaciones de fotogramas clave CSS3. La herramienta en bouncejs.com le permite generar fotogramas de clave estáticas que se pueden utilizar sin ningún JavaScript adicional, pero si le gusta su aplicación para generarlos sobre la marcha, puede utilizar la biblioteca Bounce.js.
Web
http://Registrate o inicia tu sesión par... contenido
SVG.js
Biblioteca ligera para manipular y animar a SVG, sin dependencias.
Web
http://Registrate o inicia tu sesión par... contenido
React-native-animatable
Estandar de animaciones fáciles de usar y transiciones declarativas para React
Web
http://Registrate o inicia tu sesión par... contenido
Ramjet
Ramjet hace que pareciera que un elemento DOM es capaz de transformarse en otro, no importa dónde se sientan los dos elementos en el árbol DOM. Lo hace haciendo copias de los dos elementos (y todos sus hijos), estableciendo una posición fija en cada uno, luego usando CSS se transforma para morfo los dos elementos en sincronía.
Web
http://Registrate o inicia tu sesión par... contenido
Animate Plus
Es una biblioteca de animación JavaScript que se centra en el rendimiento y la flexibilidad de autoría. Su objetivo es ofrecer un SincuS de 60 FPS y pesa menos de 3 KB (minificado y comprimido), por lo que es particularmente adecuado para el móvil.
Web
http://Registrate o inicia tu sesión par... contenido
Particles.js
Una biblioteca JavaScript ligera para la creación de partículas.
Web
http://Registrate o inicia tu sesión par... contenido
cta.js
cta.js o "Call to Animation" es una biblioteca de performado ligero para animar cualquier elemento (-acción) en cualquier otro elemento en la página.
Web
http://Registrate o inicia tu sesión par... contenido
ScrollReveal
ScrollReveal es una biblioteca JavaScript que permite animar fácilmente los elementos que entran/salen de la ventana gráfica. Fue diseñada para ser robusta y robusta y flexible.
Web
http://Registrate o inicia tu sesión par... contenido
KUTE.js
Un moderno motor de animación JavaScript basado en los estándares de ES6 con definiciones fuertes de TypeScript y características más esenciales para la web con métodos fáciles de usar para configurar animaciones de alto rendimiento y navegador cruzado. El enfoque es la calidad del código, la flexibilidad, el rendimiento y el tamaño.
KUTE.js envasa una serie de componentes para atributos de presentación, transforman SVG, dibujan SVG trazos y transformación de la ruta, escritura de cadena de texto o cuenta atrás de números, además de propiedades adicionales de CSS como colores, radio de frontera o propiedades tipográficas.
Web
http://Registrate o inicia tu sesión par... contenido
MixItUp 3
MixItUp es una biblioteca de alto rendimiento, sin dependencia para la manipulación de DOM animada, dándole el poder de filtrar, ordenar, añadir y eliminar elementos DOM con hermosas animaciones.
MixItUp juega bien con su HTML y CSS existentes, por lo que es una gran opción para diseños sensibles y compatible con el flujo en línea, porcentajes, consultas de medios, flexbox y mucho más.
Web
http://Registrate o inicia tu sesión par... contenido
Granim.js
Crea animaciones de degradado fluidas e interactivas con esta pequeña biblioteca javascript.
Web
http://Registrate o inicia tu sesión par... contenido
Ant Motion
Es una especificación de diseño de movimiento de Ant Design, y también proporciona una solución completa con un montón de animaciones fuera de caja para sus aplicaciones React.
Web
http://Registrate o inicia tu sesión par... contenido
Velocity
Es un motor de animación con la misma API que con jQuerys $.animate (). Trabaja con y sin jQuery.
Es increíblemente rápido, y cuenta con animación en color, transforma, bucles, flexibilinzas, soporte SVG y desplazamiento.
Es la mejor de las transiciones de jQuery y CSS combinadas.
Web
http://Registrate o inicia tu sesión par... contenido
CAAT
CAAT es un director de escena basado en múltiples funciones de director. Es capaz de renderizar usando Lienzo, WebGL y CSS con la misma base de código.
Características actores, contenedores, transiciones de escena, comportamientos, interpoladores, caminos, apilada de transformación personalizada, temoras, ciclo de vida de elementos, etc.
Web
http://Registrate o inicia tu sesión par... contenido
Glorious
La forma más fácil de crear animaciones para mostrar tu código en acción.
Web
http://Registrate o inicia tu sesión par... contenido
Vivus.js
Es una clase de JavaScript ligero (sin dependencias) que le permite animar a los SVG, dándoles la apariencia de ser dibujado. Hay una variedad de animaciones diferentes disponibles, así como la opción de crear un script personalizado para dibujar su SVG de la manera que desee.
Web
http://Registrate o inicia tu sesión par... contenido
GreenSock Animation Platform
GSAP es una biblioteca de JavaScript para crear animaciones de alto rendimiento que funcionan en cada navegador importante.
Ninguna otra biblioteca ofrece tal secuenciación avanzada, fiabilidad, eficiencia de la API y control estricto mientras resuelve problemas del mundo real en más de 4 millones de sitios. GSAP funciona en torno a incontables inconsistencias del navegador; sus animaciones, simplemente funcionan. Propiedades CSS, SVG, bibliotecas de lona, propiedades personalizadas de objetos genéricos, colores, cuerdas...anima cualquier cosa. En su núcleo, GSAP es un manipulador de propiedades de alta velocidad, actualizando los valores a lo largo del tiempo con extrema precisión.
Es hasta 20 veces más rápido que JQuery.
Web
http://Registrate o inicia tu sesión par... contenido
Emergence.js
Ligero y de alto rendimiento para detectar y manipular elementos en el navegador.
Web
http://Registrate o inicia tu sesión par... contenido
Zeu.js
Zeu.js es la biblioteca JavaScript con una colección de componentes de visualización preconstruido para la construcción de paneles de televisión en tiempo real, interfaz de interfaz web de interfaz web de interfaz de interfaz de UI e IoT.
Web
http://Registrate o inicia tu sesión par... contenido
egjs
Grupo de componentes Javascript que aporta la forma más fácil y rápida de construir una aplicación web a su manera.
Web
http://Registrate o inicia tu sesión par... contenido
Origami.js
Es una herramienta para enseñar geometría, web y javascript en las escuelas. Actualmente, es una poderosa biblioteca para crear usando HTML5 Canvas.
Web
http://Registrate o inicia tu sesión par... contenido
TypeIt
TypeIt es la utilidad de máquina de escribir JavaScript más versátil en el planeta. Con su configuración simple pero flexible, estás empoderado para escribir cuerdas simples o múltiples que rompe líneas, eliminar y reemplazarse entre sí, manejar fácilmente la cuerda que contiene HTML, bucle y mucho más.
Para efectos de mecanografiado más avanzados y controlados, TypeIt viene con funciones de acompañante que se pueden encadenar para controlar su mecanografiado a un solo carácter o milisegundo, lo que le permite escribir una narrativa dinámica, con reinado completo sobre cambios de velocidad, rompidas de línea, erciones y pausas.
Web
http://Registrate o inicia tu sesión par... contenido
Bounty
Librería JavaScript de efecto cuentakilómetros o máquina tragaperras para la transición suave de números con desenfoque de movimiento.
La biblioteca utiliza un enfoque funcional y la sintaxis ES7 Function Bind. Internamente basado en SVG.
Web
http://Registrate o inicia tu sesión par... contenido
Splitting
Crea elementos y añade las variables CSS para desbloquear increíbles posibilidades de texto de animación, rejillas y mucho más.
Web
http://Registrate o inicia tu sesión par... contenido
Force.js
Una manera fácil de animar los elementos y saltar en su página.
Tiene diferentes funciones de flexibilización (enumeadas abajo) y intenta (por defecto) utilizar CSS-Transitions para animar elementos.
Si el navegador no soporta transiciones, force.js falla a las funciones nativas de javascript.
Force.js soportan aún la versión más antigua del navegador sin soporte de transición.
Web
http://Registrate o inicia tu sesión par... contenido
Highway
Highway es una biblioteca ligera (2.5kb), fácil de usar, flexible y moderna para crear navegación AJAX con animaciones en sitios web.
No te molestes en todo el proceso detrás de la escena y concéndete en animaciones creativas.
Web
http://Registrate o inicia tu sesión par... contenido
React-burger-menu
Una colección de efectos y estilos utilizando transiciones CSS y animaciones de ruta SVG.
Web
http://Registrate o inicia tu sesión par... contenido
AniJS
Le permite crear estilo animado para su sitio web sin ningún JavaScript o codificación CSS.
Puede especificar todas sus animaciones con HTML usando una simple sintaxis If-On-Do-To.
Web
http://Registrate o inicia tu sesión par... contenido
Micron.JS
Es una biblioteca de micro interactual que se puede utilizar para añadir interacciones a diferentes elementos DOM.
Micron.JS anima un elemento usando la potencia CSS y los comportamientos interactivos son controlados por JavaScript.
Web
http://Registrate o inicia tu sesión par... contenido
Swup
Hace que la creación de transiciones entre páginas web sea ridículamente fácil.
Web
http://Registrate o inicia tu sesión par... contenido
Timeliner
Timeliner es una herramienta gráfica gráfica para ayudar a crear y prototipo de animaciones rápidamente.
Es útil para ajustar las variables y comprobar cómo cambian los efectos a lo largo del tiempo con funciones de teclado y flexibilitación/tweening.
También puede tener algunas similitudes con el componente de línea de tiempo de adobe flash, después de los efectos, el borde animado u otro software de animación.
Web
http://Registrate o inicia tu sesión par... contenido
GetResponse es una plataforma de automatización de marketing. Le permite crear una valiosa lista de marketing de clientes potenciales, socios, y clientes, para que pueda desarrollar relaciones con ellos y construir una base de clientes receptiva y rentable. Posee una tasa de entrega del 99,5%, para asegurarse que sus mensajes lleguen a las bandejas de entrada de destino.
Añada contactos
- Cree listas de contactos para administrar su base de datos de contactos.
- Importe una lista de contactos existente
- Integre su cuenta GetResponse con otros servicios, para configurar las importaciones recurrentes
- mantenga su lista en crecimiento, así como la información del cliente actualizada, utilizando páginas de destino y formularios.
- Utilice herramientas de medios sociales, para brindarle una manera fácil de explotar el poder de la creación de listas a través de las referencias sociales.
Planifique campañas de marketing y administre las ventas
- Utilice el editor de newsletters arrastrar-y-soltar con modelos listos para usar. También puede diseñar su propio modelo, o usar el editor HTML.
- Utilice autorespuestas para seguir automáticamente a los clientes, proporcionar información, ofertas y todo tipo de comunicación amistosa.
- Elabore flujos de trabajo de automatización para crear un proceso que refleje la experiencia de sus clientes. Esta herramienta escalable permite que sus clientes reciban mensajes basados en sus acciones, y recompensar su compromiso.
- Pruebe sus estrategias de marketing con pruebas A/B de newsletters y landing pages.
Analice resultados y planifique nuevas estrategias
- Busque contactos y cree segmentos personalizados ilimitados basados en criterios demográficos y comportamientos del cliente específicos, para administrar su lista de contactos y diseñar estrategias de marketing que coincidan con las expectativas de sus clientes.
- Aproveche las herramientas analíticas que le permiten crear ofertas específicas para mejorar las tasas de conversión.
Web
http://Registrate o inicia tu sesión par... contenido
Medium
Medium es un hogar para historias e ideas humanas. Aquí, cualquiera puede compartir perspectivas persiguosas, conocimientos útiles y sabiduría de la vida con el mundo sin construir una lista de correo o un siguiente primero. Internet es ruidoso y caótico; Medium está tranquilo pero lleno de perspicacia. Es simple, hermosa, colaborativa y te ayuda a encontrar el público adecuado para lo que tengas que decir.
Web
http://Registrate o inicia tu sesión par... contenido
Google Docs
Edita documentos con tu equipo fácilmente en tiempo real y añade comentarios, sugerencias y tareas para avanzar más rápido. También puedes usar @menciones para mencionar a personas, archivos o eventos en tus documentos online y mejorar la colaboración.
Web
http://Registrate o inicia tu sesión par... contenido
Grammarly
Grammarly es un asistente de escritura estadounidense basado en la nube. Revisa errores de ortografía, gramática, puntuación, claridad, y otros aspectos de textos en inglés. A su vez, detecta plagio y sugiere reemplazos para los errores identificados. También permite a los usuarios personalizar su estilo, tono y vocabulario específico de acuerdo al contexto.
Web
http://Registrate o inicia tu sesión par... contenido
Hemingway Editor
Hemingway hace que su escritura sea audaz y clara.
Es como un corrector ortodista, pero para el estilo.
Se asegura de que su lector se concentre en su mensaje, no en su prosa.
Con demasiada frecuencia, nuestras palabras son como nuestros pensamientos, innumerables y desorganizados.
Casi cualquier tipo de escritura podría usar algo de corte. Menos es más, etc.
Así, el Editor de Hemingway destacará (en amarillo y rojo) donde su escritura es demasiado densa.
Intenta eliminar las palabras innecesarias o dividir la oración en dos.
Sus lectores le agradecerán.
Web
http://Registrate o inicia tu sesión par... contenido
Quillbot
La herramienta de parafrasea de reparabación de IA de QuillBot mejorará tu escritura.
Tus palabras importan, y nuestra herramienta de parafrasea está diseñada para asegurarte de que usas las correctas.
Con modos personalizado y 8 modos predefinidos, Parafrasea le permite reformular el texto de innumerables maneras.
Nuestro producto mejorará su fluidez, al tiempo que se asegura de tener el vocabulario, el tono y el estilo adecuados para cualquier ocasión.
Simplemente introduzca su texto en la caja de entrada, y nuestra IA trabajará con usted para crear la mejor parafraseada.
Web
http://Registrate o inicia tu sesión par... contenido
Estudio Coschedule Headline
Crea encabezados de la clic de las ortores para cada tipo de contenido que creas.
Obtenga retroalimentación que se adapte específicamente a las mejores prácticas para varias plataformas, con sugerencias basadas en el equilibrio de palabras, conteo de palabras, equilibrio de caracteres y más.
Web
http://Registrate o inicia tu sesión par... contenido
Buffer
Buffer te ayuda a construir una audiencia orgánicamente.
Eran una empresa impulsada por valores que proporciona herramientas de marketing asequibles e intuitivas para personas y equipos ambiciosos.
Web
http://Registrate o inicia tu sesión par... contenido
Noción
Es un organizador de tareas multiplataforma disponible para móviles, tabletas y ordenadores, una aplicación de productividad que permite gestionar la planificación de la vida laboral y personal.
Web
http://Registrate o inicia tu sesión par... contenido
Trello
Sencillo, flexible y potente.
Todo lo que necesitas son tableros, listas y tarjetas para poder ver de forma clara quién está haciendo qué y las tareas pendientes.
Web
http://Registrate o inicia tu sesión par... contenido
Keywords Everywhere
Cree su presencia en línea con nuestro SEO simplificado caja de herramientas
Suenan profunda para descubrir palabras clave a medida sólo para su negocio
Desbloquear Las palabras clave de un dominio de alto rendimiento con precisión
Elevados su juego SEO para Google, YouTube, Bing, Amazon, eBay, Etsy y más
Naúzcase Con un borde, obtener información pasiva de SEO mientras navegas
Web
http://Registrate o inicia tu sesión par... contenido
AlsoAsked
Es un scraper, que nos devuelve preguntas que las personas se están haciendo en Google sobre determinados tópicos.
La herramienta obtiene esta información del ya conocido cuadro “People Also Ask” , o en español “Otras Preguntas de los Usuarios”.
Web
http://Registrate o inicia tu sesión par... contenido
Capcut
Editor de vídeo para la edición de vídeos cortos de una forma sencilla, rápida e intuitiva.
Incluye herramientas de corte, de cambio de velocidad, así como la posibilidad de añadir varios vídeos o imágenes entre otras.
Web
http://Registrate o inicia tu sesión par... contenido
InShot
InShot Video Editor: edición avanzada de videos y fotografías. Desbloquee la edición sin esfuerzo con funciones fáciles de usar y potentes herramientas de inteligencia artificial, elevando su experiencia de edición de videos y fotografías a nuevas alturas.
Web
http://Registrate o inicia tu sesión par... contenido
Headliner
Cree fácilmente vídeos para promocionar su podcast, programa de radio o blog. Comparte en TikTok, Instagram, Facebook, Twitter, YouTube, Linkedin y más
Web
http://Registrate o inicia tu sesión par... contenido
Anchor por Spotify
Potentes herramientas para todos los niveles, desde principiantes a profesionales, y sin pagar un céntimo.
Disfruta de alojamiento ilimitado y distribuye tu pódcast en todas partes. Sácale todo el partido a nuestra plataforma integral gratuita, con herramientas de grabación, edición, generación de estadísticas, interacción con los fans y monetización.
Web
http://Registrate o inicia tu sesión par... contenido
Función: Obtiene la segunda (2) imagen (si existe) que tenga el cuerpo del post.
Capturas
En c.core.php --> inc --> class --> c.core.php
Al final antes de la última llave } agregar:
/*
* Sacar imagen del post
* si hay mas de una imagen, tomamos la 2 (casi siempre la 1 es de "bienvenido")
*/
function extraer_img($texto) {
// del tipo [img=imagen] o [img]imagen[/img]
preg_match_all('/(\[img(\=|\]))((http|https)?(\:\/\/)?([^\<\>[:space:]]+)\.(jpg|jpeg|png|gif))(\]|\[\/img\])/i', $texto, $imgs);
$total = count($imgs[3]);
// Sacamos la mejor imagen posible ._.
$img = (count($imgs[3]) > 1) ? $imgs[3][1] : $imgs[3][0];
if(empty($img)) $img = false;
//
return $img;
}
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
$lastPosts['data'] = result_array($query);
Debajo agregar:
foreach($lastPosts['data'] as $id => $row){
$lastPosts['data'][$id]['post_cover'] = $tsCore->extraer_img($lastPosts['data'][$id]['post_body']);
}
La variable obtenida para la URL de la imagen es:
{$p.post_cover}
En m.home_last_posts.tpl --> themes --> default --> templates --> modules --> m.home_last_posts.tpl
Acomodan la imagen como quieran:
<img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-portada.jpg{/if}">
Ejemplo en el tema DEFAULT
Buscar:
<a {if $p.post_status == 3}class="qtip" title="El post está en revisión"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisión por acumulación de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post está eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario está desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario está suspendida"{/if} class="title {if $p.post_private}categoria privado{/if}" alt="{$p.post_title}" title="{$p.post_title}" target="_self" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:50}</a>
Antes de:
{$p.post_title|truncate:50}
Agregar:
<img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-portada.jpg{/if}" style="float: left;width: 45px;height: 33px;margin-right: 10px;">
Queda así:
<a {if $p.post_status == 3}class="qtip" title="El post está en revisión"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisión por acumulación de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post está eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario está desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario está suspendida"{/if} class="title {if $p.post_private}categoria privado{/if}" alt="{$p.post_title}" title="{$p.post_title}" target="_self" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html"><img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-portada.jpg{/if}" style="float: left;width: 45px;height: 33px;margin-right: 10px;">{$p.post_title|truncate:50}</a>
Suben una imagen con el nombre no-portada.jpg a la carpeta images --> themes --> default --> images --> no-portada.jpg para poner una portada por defecto.
Creditos: kmario19
DEMO
http://Registrate o inicia tu sesión par... contenido
Capturas
Ejecutar estas consultas
ALTER TABLE `u_perfil` ADD `p_fondo` VARCHAR( 120 ) NOT NULL
ALTER TABLE `u_perfil` ADD `p_fondoper` VARCHAR( 120 ) NOT NULL
En c.cuenta.php --> inc --> class --> c.cuenta.php
Buscar:
/*
loadHeadInfo($user_id)
*/
function loadHeadInfo($user_id){
global $tsUser, $tsCore;
// INFORMACION GENERAL
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_activo, u.user_baneado, p.user_sexo, p.user_pais, p.user_dia, p.user_mes, p.user_ano, p.p_nombre, p.p_avatar, p.p_mensaje, p.p_socials, p.p_empresa, p.p_configs FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = \''.(int)$user_id.'\' AND p.user_id = \''.(int)$user_id.'\'');
$data = db_exec('fetch_assoc', $query);
Después de:
p.user_sexo,
Agregar:
p.p_fondo,
Después de:
p.p_socials,
Agregar:
p.p_fondoper,
Queda así:
/*
loadHeadInfo($user_id)
*/
function loadHeadInfo($user_id){
global $tsUser, $tsCore;
// INFORMACION GENERAL
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_activo, u.user_baneado, p.user_sexo, p.p_fondo, p.user_pais, p.user_dia, p.user_mes, p.user_ano, p.p_nombre, p.p_avatar, p.p_mensaje, p.p_socials, p.p_fondoper, p.p_empresa, p.p_configs FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = \''.(int)$user_id.'\' AND p.user_id = \''.(int)$user_id.'\'');
$data = db_exec('fetch_assoc', $query);
Buscar:
'sitio' => $tsCore->setSecure($tsCore->parseBadWords($sitio), true),
Debajo agregar:
'fondo' => $tsCore->setSecure($_POST['fondo']),
'fondoper' => $tsCore->setSecure($_POST['fondoper']),
En t.perfil.tpl --> themes --> default --> templates --> t.perfil.tpl
Buscar:
{include file='sections/main_header.tpl'}
<script type="text/javascript" src="{$tsConfig.default}/js/perfil.js"></script>
Reemplazar por:
{include file='sections/main_header.tpl'}
<body style="background-image:url('{$tsInfo.p_fondo}');background-attachment: fixed; background-repeat: no-repeat;background-position: center;-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover;">
<script type="text/javascript" src="{$tsConfig.default}/js/perfil.js"></script>
{if $tsInfo.p_fondoper != ''}
<div class="cover" style="margin-top: 0px;" data-collapse="97" id="u3yiwu_4">
<div class="coverImage">
<div id="zoom-fondo" onClick="zoom('ocultar','zoom')"></div>
<div id="zoom">
<center><b id='zoom_contenido'></b></center>
</div>
<a class="coverWrap" style="{if $tsInfo.p_fondoper}position: relative!important;{/if}" rel="theater" id="fbCoverImageContainer">
<img class="photo img" src="{$tsInfo.p_fondoper}" id="{$tsInfo.p_fondoper}" text="Foto de {$tsInfo.nick}" style="top:-13px;height:300px;width:100%;" data-fbid="2738175107697" onclick="zoom('mostrar','zoom','{$tsInfo.p_fondoper}')">
</a>
</div>
</div>
{/if}
En m.cuenta_perfil_me.tpl --> themes --> default --> templates --> modules --> m.cuenta_perfil_me.tpl
Buscar:
<div class="field">
<label for="sitio">Sitio Web</label>
<input type="text" value="{$tsPerfil.p_sitio}" maxlength="60" name="sitio" id="sitio" class="text cuenta-save-2" style="width:230px">
</div>
Debajo agregar:
<div class="field">
<label for="sitio">Cabecera de Perfil:<br /><font color="red"><span>url de una imagen mayor a 1000 x 230</span></font></label><br />
<input type="text" value="{$tsPerfil.p_fondoper}" maxlength="120" name="fondoper" id="sitio" class="text cuenta-save-2" style="width:230px">
</div>
<div class="field">
<label for="sitio">Fondo del perfil:<br /><span><font color="red">url de una imagen mayor a 800 x 600</span></font></label><br />
<input type="text" value="{$tsPerfil.p_fondo}" maxlength="120" name="fondo" id="sitio" class="text cuenta-save-2" style="width:230px">
</div>
En m.perfil_headinfo.tpl --> themes --> default --> templates --> modules --> m.perfil_headinfo.tpl
Buscar:
<div class="perfil-avatar">
<a href="{$tsConfig.url}/perfil/{$tsInfo.nick}"><img alt="" src="{$tsConfig.url}/files/avatar/{if $tsInfo.p_avatar}{$tsInfo.uid}_120{else}avatar{/if}.jpg"/></a>
</div>
Reemplazar por:
{if $tsInfo.p_fondoper != ''}
<div class="perfil-avatar2">
<a href="{$tsConfig.url}/perfil/{$tsInfo.nick}"><img alt="" src="{$tsConfig.url}/files/avatar/{if $tsInfo.p_avatar}{$tsInfo.uid}_120{else}avatar{/if}.jpg"/></a>
</div>
{else}
<div class="perfil-avatar">
<a href="{$tsConfig.url}/perfil/{$tsInfo.nick}"><img alt="" src="{$tsConfig.url}/files/avatar/{if $tsInfo.p_avatar}{$tsInfo.uid}_120{else}avatar{/if}.jpg"/></a>
</div>
{/if}
En acciones.js --> themes --> default --> js --> acciones.js
Al final agregar:
function zoom(estado,elemento,img_id) {
//alert(img_id);
if(estado == "mostrar") {
zoom_estado = document.getElementById(elemento);
zoom_fondo = document.getElementById('zoom-fondo');
imagen_id = document.getElementById(img_id);
ruta = imagen_id.getAttribute("src");
document.getElementById('zoom_contenido').innerHTML = "<img style='max-width:90%; max-height:450px;' src='"+ruta+"'><br>";
zoom_estado.style.display = 'block';
zoom_fondo.style.display = 'block';
} else {
zoom_estado = document.getElementById(elemento);
zoom_fondo = document.getElementById('zoom-fondo');
zoom_estado.style.display = 'none';
zoom_fondo.style.display = 'none';
}
}
En estilo.css --> themes --> default --> estilo.css
Al final agregar:
.coverWrap{display:block;position:absolute;height:300px;overflow:hidden;margin:0 auto;text-decoration:none;min-height:0;max-height:300px}#zoom,#zoom-fondo,.cerrar-fondo{display:none;position:fixed;z-index:101}.perfil-avatar2{float:left;border:6px solid #fff;-webkit-border-radius:2px;margin:-5px 10px 10px 0;}.perfil-avatar2 img{background-color:#fff;border:1px solid #ccc;height:120px;width:120px}#zoom-fondo{cursor:pointer;top:0;left:0;width:100%;height:100%;background:#000;-moz-opacity:0.6;-khtml-opacity:0.6;opacity:.6}.cerrar-fondo{cursor:pointer;top:1;left:1;background:url(images/icons/close.png) no-repeat #000}#zoom{height:auto;margin:-5% auto 0;width:50%;text-shadow:0 1px 1px rgba(0,0,0,.3);color:#fff;font:14px arial,sans-serif;text-align:left;background:#000;border:5px solid #000;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.maxin{max-width:620px;max-height:430px}.a{color:#00bfff;padding:3px;margin:2px}
Creditos: tutan-kabron
Captura
En c.cuenta.php --> inc --> class --> c.cuenta.php
Buscar:
// REAL STATS
$data['stats'] = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_rango, u.user_puntos, u.user_posts, u.user_comentarios, u.user_seguidores, u.user_cache, r.r_name, r.r_color FROM u_miembros AS u LEFT JOIN u_rangos AS r ON u.user_rango = r.rango_id WHERE u.user_id = \''.(int)$user_id.'\''));
Después de:
, r.r_color
Agregar:
, r.r_image
Queda así:
// REAL STATS
$data['stats'] = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_rango, u.user_puntos, u.user_posts, u.user_comentarios, u.user_seguidores, u.user_cache, r.r_name, r.r_color, r.r_image FROM u_miembros AS u LEFT JOIN u_rangos AS r ON u.user_rango = r.rango_id WHERE u.user_id = \''.(int)$user_id.'\''));
En m.perfil_headinfo.tpl --> themes --> default --> templates --> modules --> m.perfil_headinfo.tpl
Buscar:
<h1 class="nick">{$tsInfo.nick}</h1>
Reemplazar por:
<h1 class="nick"><img src="{$tsConfig.default}/images/icons/ran/{$tsInfo.stats.r_image}"class=qtip title="{$tsInfo.stats.r_name}"> {$tsInfo.nick}</h1>
Captura GIF
En estilo.css --> themes --> default --> estilo.css
Buscar:
#logoi{
width: 270px;
height: 48px;
background: *****') no-repeat;
float:left;
margin-top: 11px;
}
Borrar:
background: *****') no-repeat;
En main_header.tpl --> themes --> default --> templates --> sections --> main_header.tpl
Buscar:
<a id="logoi" title="{$tsConfig.titulo}" href="{$tsConfig.url}">
Reemplazar por:
<a id="logoi" *****} echo rand(1,3); {/php}.png) no-repeat" title="{$tsConfig.titulo}" href="{$tsConfig.url}">
En images --> themes --> default --> images
Subir 3 logos con el nombre :
*****
*****
*****
Capturas
En c.monitor.php --> inc --> class --> c.monitor.php
Buscar:
17 => array('text' => 'Tu foto recibió una medalla', 'css' => 'medal'),
Debajo agregar:
18 => array('text' => 'Actualizó su', 'ln_text' => 'estado', 'css' => 'tscript'),
Buscar:
case 14:
if($data['obj_dos'] == 2)
Arriba agregar:
case 18:
global $tsUser;
// ACTUALIZO SU ESTADO
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.pub_id, p.p_user, p.p_user_pub, p.p_body, u.user_name FROM u_muro AS p LEFT JOIN u_miembros AS u ON p.p_user = u.user_id WHERE p.pub_id = \''.(int)$data['obj_uno'].'\' LIMIT 1');
$dato = db_exec('fetch_assoc', $query);
//
$dato['p_user_name'] = $dato['user_name']; // // DUEÑO DEL MURO
//
return $dato;
break;
Buscar:
case 14:
// CUANTOS
$no_total = $data['not_total'];
Arriba agregar:
case 18:
$oracion['text'] = $this->monitor[$no_type]['text'].$txt_extra;
$oracion['link'] = $site_url.'/perfil/'.$data['p_user_name'].'/'.$data['pub_id'];
$oracion['ltext'] = ($this->show_type == 1) ? $ln_text : substr($data['p_body'],0,50).$end_text;
$oracion['ltit'] = ($this->show_type == 1) ? substr($data['p_body'],0,50).$end_text : '';
break;
En c.muro.php --> inc --> class --> c.muro.php
Buscar:
// MONITOR
$tsMonitor->setNotificacion(12, $pid, $tsUser->uid, $pub_id);
Debajo agregar:
$is_my2 = ($pid == $tsUser->uid);
$tsMonitor->setFollowNotificacion(18, $is_my2, $tsUser->uid, $pub_id);
En phpost.css --> themes --> default --> phpost.css
Buscar:
span.ma_medal{ background: url(images/icons/med/blue_bronze_16.png);}
Debajo agregar:
span.ma_tscript {background-image: url(images/icons/cat/tscript.png);}
En m.monitor_sidebar.tpl --> themes --> default --> templates --> modules --> m.monitor_sidebar.tpl
Buscar:
<li><strong>Posts que sigo</strong></li>
Debajo agregar:
<li><strong>Estados</strong></li>
<li><label><span class="monac_icons ma_tscript"></span><input type="checkbox" {if $tsData.filtro.f18 != true}checked="checked"{/if}onclick="notifica.filter('18', this)"/> Actualización de estado</label></li>
Creditos: TutanKabron
Hola que tal, descargué e instale el phpost 2023 en loacalhost sin problemas, pero cuando quiero loguearme aparece esto:
[img]Registrate o inicia tu sesión para ver este contenido[/img]
No deja logearme ni crear cuentas, puse los codigos del captcha como debe ser en la instalación y aun asi me da ese error. Estoy usando el script en localhost para hacer unas pruebas
Capturas
En c.user.php --> inc --> class --> c.user.php
Buscar:
if ($data['user_activo'] == 1) {
Reemplazar por:
if ($data['user_baneado'] == 1) {
$this->uid = $data['user_id'];
$banned_data = $this->getUserBanned();
$final_str = "Su cuenta ha sido suspendida";
if ($banned_data['susp_termina'] == 0) {
$final_str .= " indefinidamente.";
} else if ($banned_data['susp_termina'] == 1) {
$final_str .= " permanentemente.";
} else {
$final_str .= " hasta el día " . date("d/m/y \a \l\a\s H:i:s", $banned_data['susp_termina']) . ".";
}
$final_str .= "\n" . 'Razón de la suspensión: "' . $banned_data['susp_causa'] . '".';
$final_str .= "\n" . 'Moderador: ' . $this->getUserName($banned_data['susp_mod']) . '.';
return "0: " . $final_str;
} else if ($data['user_activo'] == 1) {

