-
Cómo funcionan las Mision...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-14-2026, 09:46 PM
» Respuestas: 0
» Vistas: 105 -
V6 Original/Dark/Memes (A...
Foro: Diseños Terminados
Último mensaje por: carlos007r
06-14-2026, 11:08 AM
» Respuestas: 26
» Vistas: 6,360 -
V5
Foro: Diseños Terminados
Último mensaje por: Aeikox
06-13-2026, 12:16 AM
» Respuestas: 8
» Vistas: 1,454 -
Risus 1.3 Actualizado jQu...
Foro: Risus 1.3
Último mensaje por: Tronlar
06-12-2026, 10:45 PM
» Respuestas: 55
» Vistas: 10,679 -
Preguntas Frecuentes y So...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 06:17 PM
» Respuestas: 0
» Vistas: 85 -
Cómo registrar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 05:32 PM
» Respuestas: 0
» Vistas: 63 -
Cómo monetizar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 07:19 PM
» Respuestas: 0
» Vistas: 74 -
Introducción al SEO para ...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:58 PM
» Respuestas: 0
» Vistas: 82 -
Guía completa de SEO para...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:48 PM
» Respuestas: 0
» Vistas: 95 -
Diccionario de términos b...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 01:41 PM
» Respuestas: 0
» Vistas: 115
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
Hola, os dejo una V5 que actualice y modifique hace tiempo y no la compartí, la he revisado, mejorado y añadido nuevas cosas, dejo algunos mods que tiene, pero son más, los que son más útiles y utilizados.
Si tiene algún error, déjalo aquí en los comentarios para verlo y solucionarlo.
- Zona Comunidades
- Zona VIP
- Zona Videos
- Chat
- Control de Mensajes
- Verificar Usuario
DEMO
http://Registrate o inicia tu sesión par... contenido
Algunas Capturas
Para instalarlo crear una base de datos y haces click en la pestaña importar, ahí en esa página sueltas el archivo IMPORTAR.sql, cuando termine de subirse la seleccionas y haces click en w_configuracion, después doble click en URL y ahí pones la URL de tu web.
Sube los archivos a tu hosting editando antes el archivo config.inc.php con tus datos
$db['hostname'] = 'dbhost';
$db['username'] = 'dbuser';
$db['password'] = 'dbpass';
$db['database'] = 'dbname';
Dale los permisos al archivo y carpetas.
chmod 777 — cache
chmod 777 — files/avatar
chmod 777 — files/uploads
chmod 666 — config.inc.php
Y ya lo tienes instalado, entra en tu web con estos datos y desde la administración lo cambias por los que quieras.
Usuario: Admin2
Contraseña: ws?Mn89Tddhlky
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
Creditos en el tema.
Saludos, buenas tardes, espero que se encuentre bien. El presente post porque me encuentro un poco corto de conocimiento y no consigo como resolver lo que quiero realizar, la idea es la siguiente:
Buscar los url (Enlaces) dentro del Post, que se encuentren dentro de ciertos corchetes como [enlace ] es el principal, o cualquier otro que se pueda definir (si es posible) tomarlos y convertirlos en una variable, para luego codificar (encriptar) esa variable con OPENSSL y colocarla nuevamente encriptada, en pocas palabras:
Buscar URL dentro del post ejem:
mera prueba de lo que quiero hacer para mas complementos visita lo siguiente
[enlace ] Registrate o inicia tu sesión para ver este contenido [enlace ]
[enlace ] Registrate o inicia tu sesión para ver este contenido [enlace ] (pueden ser varios)
tomar del post solo los enlaces y convertirlos en variable que luego pueda manipular, la idea es encriptarlos de tal manera que no salga el url si no una encriptación que luego apuntare a la funcion, php, pagina etc que decodificara y lo enviara al enlace. Entonces, esos enlaces que puse como ejemplo en la parte superior, deberían terminar viéndose al final del proceso mas o menos así:
mera prueba de lo que quiero hacer para mas complementos visita lo siguiente
[enlace ] Registrate o inicia tu sesión para ver este contenido/saliendo/?url=rwy347y347uy3ehewg2qj0fj23tj2o3jtg [enlace ]
[enlace ] Registrate o inicia tu sesión para ver este contenido/saliendo/?url=fgjfghedui46745 [enlace ]
(las letras en rojo terminarían siendo las primeras direcciones que coloque como ejemplo pero encriptadas)
de aquí en adelante ya he realizado todo el proceso de recibir el GET, decodificarlo y llevarlo a la web en X segundos, me guie un poco con el complemento saliendo de Taringa.
Intente guiarme con el complemento de comentarios y no estas registrado para ver los enlaces, pero el problema es que eso muestra siempre lo mismo al coincidir una expresión regular, yo necesito es extraer lo que se encuentre dentro de esa expresión regular para luego manipularla y la verdad no he logrado abrir mente por donde comenzar.
aprovechare la ocasión para preguntar lo siguiente, es necesario crear filtros en información recibida por GET para evitar cualquier ataque? es decir el php que recibe el url encriptado se debería filtrar?
Hola todos
Encontré este diseño de Top, y lo comparto por si alguien en algún momento desea hacer algo parecido, saludos
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Capturas
Nota: Para que se vea con contenido he copiado los post, usuarios...
Ejecutar esta consulta
ALTER TABLE `p_posts` ADD `post_vip` int(11) NOT NULL; ALTER TABLE `u_miembros` ADD `user_vip` int(11) NOT NULL, ADD `rango_vip` int(11) NOT NULL;
En .htaccess
Buscar:
RewriteRule ^admin/news/nueva inc/php/admin.php?action=news&act=nuevo [QSA,L]
Debajo agregar:
RewriteRule ^admin/vip/agregar inc/php/admin.php?action=vip&act=agregar [QSA,L]
RewriteRule ^admin/vip/viper inc/php/admin.php?action=vip&act=viper [QSA,L]
En admin.php --> inc --> php --> admin.php
Buscar:
elseif($action == 'temas'){
Antes agregar:
elseif($action == 'vip'){
if(empty($act)) $smarty->assign("tsVipusers",$tsAdmin->miembrosvip()) || $smarty->assign("tsRangovip",$tsAdmin->rangos_vip());
elseif($act == 'agregar' && !empty($_POST['iduser'])){
if($tsAdmin->agregar_vip()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/vip?save=true');
}elseif($act == 'viper' && !empty($_POST['idran'])){
if($tsAdmin->rango_vip()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/vip?save=true');
} elseif($act == 'quitar'){
if($tsAdmin->quitar_vip()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/vip?quitar=true');
}elseif($act == 'borrar'){
if($tsAdmin->quitar_rvip()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/vip?borrar=true');
}
}
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
}
Arriba agregar:
/*
Miembros Vip Global()
*/
function miembrosvip()
{
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_rango, u.user_puntos, u.user_posts, u.user_comentarios, u.user_activo, u.user_baneado, u.user_vip, r.rango_id, 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_vip = 1 AND u.user_baneado = 0 AND u.user_activo = 1 ORDER BY user_id ASC');
$data = result_array($query);
//
return $data;
}
// Vip..
function rangos_vip()
{
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT r.rango_id, r.r_name, r.r_color, u.user_id, u.user_activo, u.user_baneado, u.rango_vip, COUNT(u.rango_vip) as total FROM u_rangos AS r LEFT JOIN u_miembros AS u ON r.rango_id = u.rango_vip WHERE rango_vip >=1 AND user_activo = 1 AND user_baneado = 0 GROUP BY r.rango_id ORDER BY u.user_id ASC');
$data = result_array($query);
//
return $data;
}
// Quitar Usuarios Vip
function quitar_vip()
{
$quitar = $_GET['nid'];
$design=0;
if (!db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `user_id` FROM `u_miembros` WHERE `user_id` = \'' .
(int)$quitar . '\' LIMIT 1')))
{
return (show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db'));
}
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET `user_id` = \'' . $quitar . '\', `user_vip` = \'' .
$design .'\' WHERE user_id = \'' . (int)$quitar . '\'');
}
// Quitar Rangos Vip
function quitar_rvip()
{
$quitar = $_GET['nid'];
$design=0;
if (!db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `rango_id` FROM `u_rangos` WHERE `rango_id` = \'' .
(int)$quitar . '\' LIMIT 1')))
{
return 'El id ingresado no existe.';
}
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET `user_rango` = \'' . $quitar . '\', `rango_vip` = \'' .
$design .'\' WHERE user_rango = \'' . (int)$quitar . '\'');
}
/*
Agregar Usuarios Vip()
*/
function agregar_vip()
{
global $tsCore;
//
$agregar= $tsCore->setSecure($_POST['iduser']);
$design=1;
if (!empty($agregar))
{
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET `user_id` = \'' . $agregar . '\', `user_vip` = \'' .
$design .'\' WHERE user_id = \'' . (int)$agregar . '\''))
return true;
}
//
return false;
}
// New Rangos Vip
function rango_vip()
{
global $tsCore;
//
$agregar= $tsCore->setSecure($_POST['idran']);
if (!empty($agregar))
{
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET `rango_vip` = \'' .
$agregar .'\' WHERE user_rango = \'' . (int)$agregar . '\''))
return true;
}
//
return false;
}
En c.core.php --> inc --> class --> c.core.php
Buscar:
$this->settings['default'] = $this->settings['url'].'/themes/default';
Arriba agregar:
$this->settings['vip'] = $this->getVip();
$this->settings['rvip'] = $this->getRVip();
Buscar:
/*
getCategorias()
*/
function getCategorias()
{
// CONSULTA
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid, c_orden, c_nombre, c_seo, c_img FROM p_categorias ORDER BY c_orden');
// GUARDAMOS
$categorias = result_array($query);
//
return $categorias;
}
Debajo agregar:
/*
getVip()
*/
function getVip()
{
// CONSULTA
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT rango_id, r_name, r_color FROM u_rangos ORDER BY rango_id ASC');
// GUARDAMOS
$vip = result_array($query);
//
return $vip;
}
/*
getRVip()
*/
function getRVip()
{
// CONSULTA
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(r.rango_id) AS total, u.user_rango, u.rango_vip, r.r_name, r.r_color FROM u_miembros AS u LEFT JOIN u_rangos AS r ON u.user_rango = r.rango_id GROUP BY r.rango_id ORDER BY r.rango_id ASC');
// GUARDAMOS
$vip = result_array($query);
//
return $vip;
}
En c.cuenta.php --> inc --> class --> c.cuenta.php
Buscar:
u.user_baneado,
Agregar después:
u.user_vip, u.rango_vip,
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
/*********/
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? 'p.post_id > 0' : 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' '.$c_where.' '.$s_where.' GROUP BY p.post_id ORDER BY '.$s_order.' DESC LIMIT '.$start);
$lastPosts['data'] = result_array($query);
Reemplazar por:
/*********/
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, p.post_vip, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? 'p.post_id > 0' : 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' && p.post_vip = \'0\' '.$c_where.' '.$s_where.' GROUP BY p.post_id ORDER BY '.$s_order.' DESC LIMIT '.$start);
$lastPosts['data'] = result_array($query);
Añadido:
p.post_vip,
&& p.post_vip = \'0\'
Buscar:
$postData['block_comments'] = empty($_POST['sin_comentarios']) ? 0 : 1;
Debajo agregar:
$postData['vip'] = empty($_POST['vipers']) ? 0 : 1;
Buscar:
post_block_comments,
Agregar al lado:
post_vip,
Buscar en la misma línea:
'\', \''.(int)$postData['block_comments'].
Agregar al lado:
'\', \''.(int)$postData['vip'].
Buscar:
$postData['block_comments'] = empty($_POST['sin_comentarios']) ? 0 : 1;
Debajo agregar:
$postData['vip'] = empty($_POST['vipers']) ? 0 : 1;
Buscar:
'\', post_block_comments = \''.$postData['block_comments'].
Agregar al lado:
'\', post_vip = \''.$postData['vip'].
Para quitar comentarios vip en la home buscar:
/*
getLastComentarios()
: PARA EL PORTAL
*/
function getLastComentarios(){
global $tsUser, $tsCore;
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cm.cid, cm.c_status, u.user_name, u.user_activo, u.user_baneado, p.post_id, p.post_title, p.post_status, c.c_seo FROM p_comentarios AS cm LEFT JOIN u_miembros AS u ON cm.c_user = u.user_id LEFT JOIN p_posts AS p ON p.post_id = cm.c_post_id LEFT JOIN p_categorias AS c ON c.cid = p.post_category '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : 'WHERE p.post_status = \'0\' AND cm.c_status = \'0\' AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' ORDER BY cid DESC LIMIT 10');
if(!$query) exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$data = result_array($query);
//
return $data;
}
Reemplazar por:
/*
getLastComentarios()
: PARA EL PORTAL
*/
function getLastComentarios(){
global $tsUser, $tsCore;
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cm.cid, cm.c_status, u.user_name, u.user_activo, u.user_baneado, p.post_id, p.post_title, p.post_status, p.post_vip, c.c_seo FROM p_comentarios AS cm LEFT JOIN u_miembros AS u ON cm.c_user = u.user_id LEFT JOIN p_posts AS p ON p.post_id = cm.c_post_id LEFT JOIN p_categorias AS c ON c.cid = p.post_category '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : 'WHERE p.post_status = \'0\' AND cm.c_status = \'0\' AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' AND p.post_vip = \'0\' ORDER BY cid DESC LIMIT 10');
if(!$query) exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$data = result_array($query);
//
return $data;
}
Para quitar top posts en la home
En c.tops.php --> inc --> class --> c.tops.php
Buscar:
/*
getHomeTopPostsQuery($data)
*/
function getHomeTopPostsQuery($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 ***** \''.$date['start'].'\' AND \''.$date['end'].'\' ORDER BY p.post_puntos DESC LIMIT 15');
$data = result_array($query);
//
return $data;
}
Reemplazar por:
/*
getHomeTopPostsQuery($data)
*/
function getHomeTopPostsQuery($date){
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_category, p.post_title, p.post_puntos, p.post_vip, 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_vip = 0 AND p.post_date ***** \''.$date['start'].'\' AND \''.$date['end'].'\' ORDER BY p.post_puntos DESC LIMIT 15');
$data = result_array($query);
//
return $data;
}
Para quitar de los Top Post buscar:
/*
getTopPostsQuery($data)
*/
function getTopPostsQuery($data){
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_category, '.$data['type'].', p.post_puntos, p.post_title, c.c_seo, c.c_img 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 ***** '.$data['start'].' AND '.$data['end'].' '.$data['scat'].' ORDER BY '.$data['type'].' DESC LIMIT 10');
$datos = result_array($query);
//
return $datos;
}
Reemplazar por:
/*
getTopPostsQuery($data)
*/
function getTopPostsQuery($data){
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_category, '.$data['type'].', p.post_puntos, p.post_vip, p.post_title, c.c_seo, c.c_img 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_vip = \'0\' AND p.post_date ***** '.$data['start'].' AND '.$data['end'].' '.$data['scat'].' ORDER BY '.$data['type'].' DESC LIMIT 10');
$datos = result_array($query);
//
return $datos;
}
En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl
Buscar:
{/if}
Arriba agregar:
{elseif $tsAction == 'vip'}
{include file='admin_mods/m.admin_vip.tpl'}
En m.agregar_form.tpl --> themes --> default --> templates --> modules --> m.agregar_form.tpl
Buscar:
{if $tsUser->is_admod || $tsUser->permisos.most}
<div class="option *****">
<li>
<input type="checkbox" tabindex="7" name="sticky" id="sticky" class="floatL" {if $tsDraft.b_sticky == 1}checked="checked"{/if} >
<a class="chk-select round" href="#">No</a>
<a class="chk-deselect round" href="#">Si</a>
</li>
<p class="floatL">
<label for="sticky">Sticky</label>
Colocar a este post fijo en la home.
</p>
</div>
{/if}
Debajo agregar:
{if $tsUser->info.rango_vip >= 1 || $tsUser->info.user_vip == 1 || $tsUser->is_admod}
<div class="option *****">
<li>
<input type="checkbox" tabindex="7" name="vipers" id="vipers" class="floatL" {if $tsDraft.b_vip == 1}checked="checked"{/if}>
<a class="chk-select round" href="#">No</a>
<a class="chk-deselect round" href="#">Si</a>
</li>
<p class="floatL">
<label for="seguidores">Posts Vip</label>
Colocar a este post fijo en la home.
</p>
</div>
{/if}
En m.posts_content.tpl --> themes --> default --> templates --> modules --> m.posts_content.tpl
Buscar:
<span>
{$tsPost.post_body}
</span>
Arriba agregar:
{if $tsPost.post_vip == 1}
<div class="emptyData">Atención: Este post es sólo para Miembros Vip, no reveles el contenido del mismo.</div>
<br/>{/if}
En m.perfil_headinfo.tpl --> themes --> default --> templates --> modules --> m.perfil_headinfo.tpl
Buscar:
<h1>{if $tsInfo.p_nombre}{$tsInfo.p_nombre}{else}{$tsInfo.nick}{/if}</h1>
Debajo agregar:
{if $tsInfo.rango_vip >= 1 || $tsInfo.user_vip == 1}<div class="vip-p-v"><img src="{$tsConfig.tema.t_url}/images/vip2.png" alt="Usuario VIP" style="width: 40px;height: 30px;"></div>{/if}
En t.posts.tpl --> themes --> default --> templates --> t.posts.tpl
Buscar:
{include file='sections/main_header.tpl'}
Debajo agregar:
{if ($tsPost.post_vip == 1 && $tsUser->info.rango_vip ==0) && ($tsPost.post_vip == 1 && $tsUser->info.user_vip ==0)}
<div class="emptyData">Post VIP. Consulta las condiciones de VIP con el administrador o dueño de la página </div>
<div style="text-align:center; margin:10px 0 10px;">
<img src="{$tsConfig.tema.t_url}/images/logovip.png" />
</div>
{else}
Buscar:
{include file='sections/main_footer.tpl'}
Arriba agregar:
{/if}
En main_header.tpl --> themes --> default --> templates --> sections --> main_header.tpl
Buscar:
<body>
Reemplazar por:
<body {if $tsPage == 'vip'}class="viper"{/if}>
En head_menu.tpl --> themes --> default --> templates --> sections --> head_menu.tpl
Buscar:
$tsPage != 'fotos'
Al lado agregar:
&& $tsPage != 'vip'
Buscar:
<li class="tabbed {if $tsPage == 'posts' || $tsPage == 'home'}here{/if}" id="{if $tsConfig.c_allow_portal && $tsUser->is_member}tabbedposts{else}tabbedhome{/if}">
<a onclick="menu('posts', this.href); return false;" href="{$tsConfig.url}/posts/">Posts</a>
</li>
Debajo agregar:
{if $tsUser->is_member}
<li class="tabbed {if $tsPage == 'vip'}here{/if}">
<a title="Zona Vip" onclick="menu('vip', this.href); return false;" href="{$tsConfig.url}/vip/">Vip </a>
</li>
{/if}
En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl
Buscar:
<li id="a_posts"><span class="cat-title"><a href="{$tsConfig.url}/admin/posts">Todos los Posts</a></span></li>
Debajo agregar:
<li id="a_posts"><span class="cat-title"><a href="{$tsConfig.url}/admin/vip">Zona Vip</a></span></li>
Al final de extras.css
Agregar:
#vip-v{width:100%;height:auto;/*! background:#CCC url('images/sidebar.png'); */overflow:hidden;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px}.last-vip{width:614px;height:auto;/*! background:#FFF; */float:left;/*! border:1px solid #E0E0E0; */overflow:hidden}.last-vip h3{color:#fff;padding:5px 0 5px 0;background:#000;margin:0;border:1px solid #000;text-align:center;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0}.last-vip ul li{display:block;background:#f5f5f5;color:#ccc;border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0;margin-bottom:2px;height:64px}.last-vip ul li a{font-size:12px;font-weight:700;color:#005ca5;position:absolute;margin:5px 0 0 8px;text-decoration:none}.last-vip ul li span a{font-size:11px;margin:0;text-decoration:none;color:#666;font-weight:300}.last-vip ul li span{position:absolute;color:#666;margin:-41px 0 0 64px}.last-vip ul li:nth-child(2n+1){border-top:1px solid #e0e0e0;background:#fff}.last-vip ul li img{width:50px;height:50px;padding:6px 0 4px 5px;cursor:pointer}.last-vip ul li img:hover{opacity:.5}.lat-vip{width:316px;height:auto;background:0 0;float:right;overflow:hidden}.opc-admod{color:#999;float:right;width:150px;height:64px;background:trasparent;margin-top:-90px}.opc-admod span img{float:right;margin-right:-70px;margin-top:-6px}.icon-vip{margin-top:100px;display:block;width:16px;height:16px;background:url('images/vip.png');cursor:pointer}.icon-vip.ico1{background-position:-127px -106px}.icon-vip.ico1:hover{background-position:-127px -66px}.icon-vip.ico2{background-position:-86px -65px}.icon-vip.ico2:hover{background-position:-107px -65px}.icon-vip.ico3{background-position:-86px -105px}.icon-vip.ico3:hover{background-position:-107px -105px}.data1{width:100px;margin-top:8px;margin-bottom:3px;padding-left:15px}.data2{width:100px;margin-bottom:3px;padding-left:15px}.data3{width:100px;margin-bottom:3px;padding-left:15px}#pres-vip{width:99%;background:#eee url('images/fond.jpg');color:transparent;margin-bottom:10px;box-shadow:inset 0 0 15px #000;text-align:center;/*! border-radius:5px; *//*! float: left; */padding:10px 0 0 10px/*! width: 640px; */}#pres-vip h1{padding:30px;color:#fff;text-shadow:0 -1px 4px #fff,0 -2px 10px #67b9ed,0 -10px 20px #063c60,0 -18px 40px red;font:80px BlackJackRegular;margin-top:20px;margin-right:100px}#more-com{padding:5px;border-top:1px dashed #ccc;text-align:center;background:#eff9fd}#more-com span{color:#006595;font-weight:700}#new-paginate{color:transparent}#new-paginate b{color:#000}.viper{background:#000 url('images/image.jpg') no-repeat center top;background-Attachment:fixed}#new-paginate a{color:#006595;font-weight:700;display:inline-block;padding:0 5px}.zoomIt{display:block!important;-webkit-transition:-webkit-transform 1s ease-out;-moz-transition:-moz-transform 1s ease-out;-o-transition:-o-transform 1s ease-out;-ms-transition:-ms-transform 1s ease-out;transition:transform 1s ease-out}.zoomIt:hover{-moz-transform:scale(1.1);-webkit-transform:scale(1.1);-o-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}#viper-us{width:100px;height:100px;padding:1px;float:right;margin-top:-200px;margin-right:20px;border:1px solid #ccc;cursor:pointer}#viper-us:hover{border:1px solid #0cf;box-shadow:0 0 10px #0cf}#users-vip{width:100%;height:auto;margin:-20px 0 10px 0;background:0 0;text-align:center}#users-vip h1{margin:-10px 0 10px 0;color:#fff;text-shadow:0 1px 0 #999,0 2px 0 #888,0 3px 0 #777,0 4px 0 #666,0 5px 0 #555,0 6px 0 #444,0 7px 0 #333,0 8px 7px #001135;font:50px ChunkFiveRegular}#users-vip ul{padding:5px 0 2px 0;border:2px dashed #ccc}#users-vip ul li{display:inline-block}#users-vip ul li img{width:40px;height:40px;cursor:pointer;padding:1px;border:1px solid #ccc}#users-vip ul li img:hover{opacity:.5;border:1px solid #0cf}#coment-vip{width:316px;height:auto;overflow:hidden;background:#fff}#coment-vip ul li a{font-size:12px}#coment-vip ul{border:1px solid #e0e0e0}#coment-vip h3{color:#fff;padding:5px 0 5px 0;background:#000;margin:0;border:1px solid #000;text-align:center;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0}#coment-vip ul li{background:#fff;display:block;cursor:pointer;/*! border-bottom:3px double #CCC; */transition:all .5s linear;-webkit-transition:all .5s linear;-moz-transition:all .5s linear;-o-transition:all .5s linear}#coment-vip ul li:hover{background:#f8f8f8}#coment-vip ul li img{width:35px;height:35px;margin:5px;cursor:pointer;padding:1px}#coment-vip ul li img:hover{opacity:.5}#coment-vip ul li span{position:absolute;margin:5px 0 0 5px}.title-com{font-size:11px;font-weight:700;color:#006595;position:absolute;margin:-18px 0 0 50px}.title-com a{font-size:11px;font-weight:700;color:#006595;text-decoration:none}#top-p-vip{width:316px;height:auto;overflow:hidden;background:#fff}#top-p-vip h3{color:#fff;padding:5px 0 5px 0;background:#000;margin:0;border:1px solid #000;text-align:center;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0}#top-p-vip ul{border:1px solid #e0e0e0}#top-p-vip ul li{font-size:11px;background:#fff;display:block;color:#666;padding:3px 0 3px 0;cursor:pointer;border-bottom:1px solid #e0e0e0;transition:all .5s linear;-webkit-transition:all .5s linear;-moz-transition:all .5s linear;-o-transition:all .5s linear}#top-p-vip ul li:hover{background:#f8f8f8}#top-p-vip ul li a{font-size:12px;font-weight:700;color:#006595;text-decoration:none;margin:2px 0 2px 5px}#top-p-vip ul li span{margin:2px 0 2px 5px}#top-u-vip{width:316px;height:auto;overflow:hidden;background:#fff}#top-u-vip h3{color:#fff;padding:5px 0 5px 0;background:#000;margin:0;border:1px solid #000;text-align:center;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0}#top-u-vip ul{border:1px solid #e0e0e0}#top-u-vip ul li img{width:35px;height:35px;margin:5px 0 0 5px;cursor:pointer;padding:1px}#top-u-vip ul li img:hover{opacity:.5}#top-u-vip ul li{background:#fff;display:block;color:#666;padding:3px 0 3px 0;cursor:pointer;/*! border-bottom:3px double #CCC; */transition:all .5s linear;-webkit-transition:all .5s linear;-moz-transition:all .5s linear;-o-transition:all .5s linear}#top-u-vip ul li:hover{background:#f8f8f8}#top-u-vip ul li:hover{background:#f8f8f8}#top-u-vip ul li span{position:absolute;margin:2px 0 2px 5px}.t-u-vip{position:absolute;float:right;margin:-40px 0 0 245px}.t-u-vip b{color:transparent}#est-vip{width:316px;height:auto;background:#fff;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0}#est-vip h3{color:#fff;padding:5px 0 5px 0;background:#000;margin:0;border:1px solid #000;text-align:center;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0}#est-vip ul{border:3px double #ccc;padding-bottom:15px}#est-vip ul li span{margin-left:55px;color:#666}#est-vip ul li{display:inline-block}.vip-p-v{color:#cda434;padding:5px;font-weight:700;/*! margin-bottom:-10px; */font-size:13px/*! line-height: 20px; */}#sponsor-vip{background:#ff9}.stiky-t{position:absolute;width:16px;height:16px;margin-top:0}
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
Uptobox
http://Registrate o inicia tu sesión par... contenido
4shared
http://Registrate o inicia tu sesión par... contenido
Creditos: Vellenger
Capturas
Buscar:
# POSTS
Arriba agregar:
# COMUNIDADES
RewriteRule ^comunidades/pagina.([0-9]+)$ inc/php/comunidades.php?action=home&page=$1 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/agregar/([0-9]+)$ inc/php/comunidades.php?action=$1&act=agregar&bid=$2 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/editar-tema/([0-9]+)/$ inc/php/comunidades.php?action=$1&act=editar-tema&temaid=$2 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/miembros.([0-9]+)/$ inc/php/comunidades.php?action=$1&act=miembros&page=$2 [QSA,L]
RewriteRule ^comunidades/mis-comunidades/([A-Za-z0-9_-]+)$ inc/php/comunidades.php?action=mis-comunidades&orden=$1 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/pagina.([0-9]+)$ inc/php/comunidades.php?action=$1&page=$2 [QSA,L]
RewriteRule ^comunidades/dir/([A-Za-z0-9_-]+)/$ inc/php/comunidades.php?action=dir&pais=$1 [QSA,L]
RewriteRule ^comunidades/dir/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)$ inc/php/comunidades.php?action=dir&pais=$1&c_seo=$2 [QSA,L]
RewriteRule ^comunidades/dir/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)$ inc/php/comunidades.php?action=dir&pais=$1&c_seo=$2&s_seo=$3 [QSA,L]
RewriteRule ^comunidades/dir/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([0-9]+)$ inc/php/comunidades.php?action=dir&pais=$1&c_seo=$2&s_seo=$3&page=$4 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/$ inc/php/comunidades.php?action=$1&act=$2 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/pagina.([0-9]+)$ inc/php/comunidades.php?action=$1&act=$2&page=$3 [QSA,L]
RewriteRule ^comunidades/([A-Za-z0-9_-]+)/([0-9]+)/([A-Za-z0-9_-]+).html$ inc/php/comunidades.php?action=$1&temaid=$2&act=tema [QSA,L]
En c.actividad.php --> inc --> class --> c.actividad.php
Buscar:
11 => array(
'text' => 'Le gusta',
'css' => 'w_like',
0 => array('text' => 'su', 'link' => 'publicación'),
1 => array('text' => 'su comentario'),
2 => array('text' => 'la publicación de'),
3 => array('text' => 'el comentario'),
)
Agregar debajo (con la coma ,):
,
// COMUNIDADES
12 => array('text' => 'Creó la comunidad', 'css' => 'post'),
13 => array('text' => 'Creó un nuevo tema', 'css' => 'post'),
14 => array('text' => 'Agregó a favoritos el tema', 'css' => 'star'),
15 => array('text' => 'Recomendó el tema', 'css' => 'share'),
16 => array('text' => array('Comentó', 'el tema'), 'css' => 'blue_ball'),
17 => array('text' => array('Votó', 'el tema'), 'css' => 'voto_'),
18 => array('text' => array('Votó', 'un comentario en el tema'), 'css' => 'voto_'),
19 => array('text' => 'Está siguiendo el tema', 'css' => 'follow_post'),
20 => array('text' => 'Está siguiendo la comunidad', 'css' => 'follow_post'),
21 => array('text' => 'Se unió a la comunidad', 'css' => 'follow_post'),
Debajo de:
case 11:
if($data['obj_dos'] == 0 || $data['obj_dos'] == 2) {
return 'SELECT p.pub_id, 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';
} else {
return 'SELECT c.pub_id, c.c_body, u.user_name FROM u_muro_comentarios AS c LEFT JOIN u_muro AS p ON c.pub_id = p.pub_id LEFT JOIN u_miembros AS u ON p.p_user = u.user_id WHERE cid = \''.(int)$data['obj_uno'].'\' LIMIT 1';
}
break;
Agregar:
// COMUNIDADES
case 12:
return 'SELECT c.c_nombre, c.c_nombre_corto FROM c_comunidades AS c WHERE c.c_id = \''.(int)$data['obj_uno'].'\' LIMIT 1';
break;
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
return 'SELECT c.c_nombre, c.c_nombre_corto, t.t_id, t.t_titulo, t.t_autor, u.user_name FROM c_temas AS t LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON user_id = t_autor WHERE t.t_id = \''.(int)$data['obj_uno'].'\' LIMIT 1';
break;
Debajo de:
# LIKES
case 11:
// SEC TYPE
$sec_type = $data['obj_dos'];
$link_text = $this->actividad[$ac_type][$sec_type]['link'];
//
$oracion['text'] = $this->actividad[$ac_type]['text'].' '.$this->actividad[$ac_type][$sec_type]['text'];
$oracion['link'] = $site_url.'/perfil/'.$data['user_name'].'?pid='.$data['pub_id'];
//
if($data['obj_dos'] == 0 || $data['obj_dos'] == 2)
$oracion['ltext'] = empty($link_text) ? $data['user_name'] : $link_text;
else {
$end_text = (strlen($data['c_body']) > 35) ? '...' : '';
$oracion['ltext'] = substr($data['c_body'],0,30).$end_text;
}
break;
Agregar:
# COMUNIDADES
case 12:
case 13:
case 14:
case 15:
case 19:
case 20:
case 21:
$oracion['text'] = $this->actividad[$ac_type]['text'];
$oracion['link'] = ($ac_type == 12) ? $site_url.'/comunidades/'.$data['c_nombre_corto'].'/' : $site_url.'/comunidades/'.$data['c_nombre_corto'].'/'.$data['t_id'].'/'.$tsCore->setSEO($data['t_titulo']).'.html';
$oracion['ltext'] = ($ac_type == 12) ? $data['c_nombre'] : $data['t_titulo'];
$oracion['style'] = $this->actividad[$ac_type]['css'];
break;
case 16:
case 17:
case 18:
if($ac_type == 16) $extra_text = ($data['obj_dos'] == 0) ? '' : ($data['obj_dos']+1).' veces';
else $extra_text = ($data['obj_dos'] == 0) ? 'negativo' : 'positivo';
$oracion['text'] = $this->actividad[$ac_type]['text'][0]." <b>{$extra_text}</b> ".$this->actividad[$ac_type]['text'][1];
$oracion['link'] = $site_url.'/comunidades/'.$data['c_nombre_corto'].'/'.$data['t_id'].'/'.$tsCore->setSEO($data['t_titulo']).'.html';
$oracion['ltext'] = $data['t_titulo'];
$oracion['style'] = ($ac_type == 16) ? $oracion['style'] : 'voto_'.$extra_text;
break;
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
/****************** ADMINISTRACIÓN DE FOTOS ******************/
Arriba agregar:
/****************** ADMINISTRACIÓN DE COMUNIDADES ******************/
function GetAdminComus()
{
global $tsCore;
//
$max = 20; // MAXIMO A MOSTRAR
$limit = $tsCore->setPageLimit($max, true);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_name, c.* FROM c_comunidades AS c LEFT JOIN u_miembros AS u ON c.c_autor = u.user_id ORDER BY c.c_fecha DESC LIMIT '.$limit);
//
$data['data'] = result_array($query);
// PAGINAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(*) FROM c_comunidades WHERE c_id > \'0\'');
list($total) = db_exec('fetch_row', $query);
$data['pages'] = $tsCore->pageIndex($tsCore->settings['url']."/admin/comunidades?", $_GET['s'], $total, $max);
//
return $data;
}
// ADMINISTRAR TEMAS POR COMUNIDAD
function GetAdminTemas()
{
global $tsCore;
//
$comid = $tsCore->setSecure($_GET['comid']);
$max = 20; // MAXIMO A MOSTRAR
$limit = $tsCore->setPageLimit($max, true);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_name, c.c_nombre_corto, t.* FROM c_temas AS t LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id WHERE t.t_comunidad = \''.(int)$comid.'\'ORDER BY t.t_fecha DESC LIMIT '.$limit);
//
$data['data'] = result_array($query);
// NOMBRE DE LA COMUNIDAD
$com = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_nombre FROM c_comunidades WHERE c_id = \''.(int)$comid.'\' LIMIT 1'));
$data['c_nombre'] = $com['c_nombre'];
// PAGINAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(*) FROM c_temas WHERE t_comunidad = \''.(int)$comid.'\'');
list($total) = db_exec('fetch_row', $query);
$data['pages'] = $tsCore->pageIndex($tsCore->settings['url']."/admin/comunidades?act=temas&comid=".$_GET['comid'], $_GET['s'], $total, $max);
//
return $data;
}
Reemplazar:
(SELECT count(cid) FROM u_muro_comentarios) AS muro_comentarios
Por:
(SELECT count(cid) FROM u_muro_comentarios) AS muro_comentarios,
(SELECT count(c_id) FROM c_comunidades WHERE c_estado = \'0\') AS comunidades_visibles,
(SELECT count(c_id) FROM c_comunidades WHERE c_estado = \'1\') AS comunidades_ocultas,
(SELECT count(t_id) FROM c_temas WHERE t_estado = \'0\') AS temas_visibles,
(SELECT count(t_id) FROM c_temas WHERE t_estado = \'1\') AS temas_ocultos,
(SELECT count(fav_id) FROM c_favoritos) AS temas_favoritos,
(SELECT count(m_id) FROM c_miembros WHERE m_permisos != \'0\') AS miembros_comunidades,
(SELECT count(m_id) FROM c_miembros WHERE m_permisos = \'0\') AS miembros_comunidades_baneados,
(SELECT count(r_id) FROM c_respuestas WHERE r_estado = \'0\') AS respuestas_visibles,
(SELECT count(r_id) FROM c_respuestas WHERE r_estado = \'1\') AS respuestas_ocultas,
(SELECT count(follow_id) FROM u_follows WHERE f_type = \'4\' ) AS comunidades_follows,
(SELECT count(follow_id) FROM u_follows WHERE f_type = \'5\' ) AS temas_follows,
(SELECT count(follow_id) FROM u_follows WHERE f_type = \'6\' ) AS temas_compartidos
En c.core.php --> inc --> class --> c.core.php
Buscar:
function getNovemods()
{
$datos = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT (SELECT count(post_id) FROM p_posts WHERE post_status = \'3\') as revposts, (SELECT count(cid) FROM p_comentarios WHERE c_status = \'1\' ) as revcomentarios, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'1\') as repposts, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'2\') as repmps, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'3\') as repusers, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'4\') as repfotos, (SELECT count(susp_id) FROM u_suspension) as suspusers, (SELECT count(post_id) FROM p_posts WHERE post_status = \'2\') as pospelera, (SELECT count(foto_id) FROM f_fotos WHERE f_status = \'2\') as fospelera'));
$datos['total'] = $datos['repposts'] + $datos['repfotos'] + $datos['repmps'] + $datos['repusers'] + $datos['revposts'] + $datos['revcomentarios'];
return $datos;
}
Reemplazar por:
function getNovemods()
{
$datos = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT (SELECT count(post_id) FROM p_posts WHERE post_status = \'3\') as revposts, (SELECT count(cid) FROM p_comentarios WHERE c_status = \'1\' ) as revcomentarios, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'1\') as repposts, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'5\') as repcomunidades, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'6\') as reptemas, (SELECT count(t_id) FROM c_temas WHERE t_estado = \'1\') as tempelera, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'7\') as represpuestas, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'2\') as repmps, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'3\') as repusers, (SELECT count(DISTINCT obj_id) FROM w_denuncias WHERE d_type = \'4\') as repfotos, (SELECT count(susp_id) FROM u_suspension) as suspusers, (SELECT count(post_id) FROM p_posts WHERE post_status = \'2\') as pospelera, (SELECT count(foto_id) FROM f_fotos WHERE f_status = \'2\') as fospelera'));
$datos['total'] = $datos['repposts'] + $datos['repcomunidades'] + $datos['reptemas'] + $datos['represpuestas'] + $datos['repfotos'] + $datos['repmps'] + $datos['repusers'] + $datos['revposts'] + $datos['revcomentarios'];
return $datos;
}
En c.cuenta.php --> inc --> class --> c.cuenta.php
Buscar:
$data['sigd']['total'] = count($data['sigd']['data']);
Debajo agregar:
// COMUNIDADES
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_id, c.c_nombre, c.c_nombre_corto, c.c_miembros FROM c_comunidades AS c LEFT JOIN c_miembros AS m ON m.m_comunidad = c.c_id WHERE m.m_user = \''.(int)$user_id.'\' AND c.c_estado = \'0\' ORDER BY m.m_fecha DESC LIMIT 5');
$total = db_exec('fetch_row', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(c.c_id) AS total FROM c_comunidades AS c LEFT JOIN c_miembros AS m ON m.m_comunidad = c.c_id WHERE m.m_user = \''.(int)$user_id.'\' AND c.c_estado = \'0\''));
$data['comus'] = result_array($query);
$data['comus_total'] = $total[0];
Arriba de:
/*
loadMedallas($user_id)
*/
Agregar:
/*
loadComunidades($user_id)
*/
function loadComunidades($user_id){
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_id, c.c_nombre, c.c_descripcion, c.c_nombre_corto, cat.c_nombre AS categoria FROM c_miembros AS m LEFT JOIN c_comunidades AS c ON c.c_id = m.m_comunidad LEFT JOIN c_categorias AS cat ON cat.cid = c.c_categoria WHERE m.m_user = \''.(int)$user_id.'\' AND c.c_estado = \'0\' ORDER BY m.m_fecha DESC');
$data['data'] = result_array($query);
$data['total'] = count($data['data']);
//
return $data;
}
En c.moderacion.php --> inc --> class --> c.moderacion.php
Buscar:
case 'users':
Arriba agregar:
case 'comunidades':
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT r.*, SUM(d_total) AS total, c.c_id, c.c_nombre, c.c_nombre_corto, c.c_estado, u.user_id, u.user_name FROM w_denuncias AS r LEFT JOIN c_comunidades AS c ON r.obj_id = c.c_id LEFT JOIN u_miembros AS u ON c.c_autor = u.user_id WHERE d_type = \'5\' && c.c_estado < 2 GROUP BY r.obj_id ORDER BY total DESC, r.d_date DESC');
$data = result_array($query);
break;
case 'temas':
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT r.*, SUM(d_total) AS total, t.t_id, t.t_titulo, t.t_estado, c.c_nombre_corto, u.user_id, u.user_name FROM w_denuncias AS r LEFT JOIN c_temas AS t ON r.obj_id = t.t_id LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id WHERE d_type = \'6\' && t.t_estado < 2 GROUP BY r.obj_id ORDER BY total DESC, r.d_date DESC');
$data = result_array($query);
break;
Buscar de nuevo:
case 'users':
Arriba agregar:
case 'comunidades':
$d_type = 5;
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_id, c.c_nombre, c.c_nombre_corto, c.c_estado, u.user_name FROM c_comunidades AS c LEFT JOIN u_miembros AS u ON c.c_autor = u.user_id WHERE c.c_id = ' .
$obj . ' LIMIT 1');
break;
case 'temas':
$d_type = 6;
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT t.t_id, t.t_titulo, t.t_estado, u.user_name FROM c_temas AS t LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id WHERE t.t_id = ' .
$obj . ' LIMIT 1');
break;
Debajo de:
$data['p_total'] = count($data['posts']);
Agregar:
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_id, c.c_autor, c.c_nombre, c.c_nombre_corto, c.c_fecha, c.c_ip, u.user_name FROM c_comunidades AS c LEFT JOIN u_miembros AS u ON c.c_autor = u.user_id WHERE ' .
($tipo == 1 ? 'c.c_ip ' . $met . '' : 'c.c_nombre ' . $met));
$data['comunidades'] = result_array($query);
$data['c_total'] = count($data['comunidades']);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT t.t_id, t.t_autor, t.t_titulo, c.c_nombre_corto, t.t_fecha, t.t_ip, u.user_name FROM c_temas AS t LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id WHERE ' .
($tipo == 1 ? 't.t_ip ' . $met . '' : 't.t_titulo ' . $met .
' OR t.t_cuerpo ' . $met));
$data['temas'] = result_array($query);
$data['t_total'] = count($data['temas']);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT r.r_id, r.r_autor, r.r_body, r.r_fecha, r.r_ip, t.t_id, t.t_titulo, c.c_nombre_corto, u.user_name FROM c_respuestas AS r LEFT JOIN c_temas AS t ON t.t_id = r.r_tema LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON r.r_autor = u.user_id WHERE ' .
($tipo == 1 ? 'r.r_ip ' . $met . '' : 'r.r_body ' . $met));
$data['respuestas'] = result_array($query);
$data['c_t_total'] = count($data['respuestas']);
Arriba de:
/**
* @name deletePost($pid)
Agregar:
function rebootComunidad($comid) {
global $tsUser;
if ($tsUser->is_admod) {
if (db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `w_denuncias` WHERE `obj_id` = \''.(int)$comid.'\' AND `d_type` = \'5\'')) {
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE c_comunidades SET c_estado = \'0\' WHERE c_id = \''.(int)$comid.'\'');
return '1: Denuncia eliminada';
} else return '0: No se pudo eliminar la denuncia';
} else return '0: No continúe por aquí.';
}
function rebootTema($temaid) {
global $tsUser;
if ($tsUser->is_admod) {
if (db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `w_denuncias` WHERE `obj_id` = \''.(int)$temaid.'\' AND `d_type` = \'6\'')) {
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE c_temas SET t_estado = \'0\' WHERE t_id = \''.(int)$temaid.'\'');
return '1: Denuncia eliminada';
} else return '0: No se pudo eliminar la denuncia';
} else return '0: No continúe por aquí.';
}
public function deleteComunidad($comid){
global $tsCore, $tsMonitor, $tsUser;
if ($tsUser->is_admod == 1) {
// RAZON
$razon = $tsCore->setSecure($_POST['razon']);
$razon_desc = $tsCore->setSecure($_POST['razon_desc']);
$razon_db = ($razon != 7) ? $razon : $razon_desc;
//
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE c_comunidades SET c_estado = \'1\' WHERE c_id = \''.$comid.'\'')) {
// ENVIAR AVISO
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_autor, c.c_nombre, u.user_name FROM c_comunidades AS c LEFT JOIN u_miembros AS u ON c.c_autor = u.user_id WHERE c.c_id = \''.(int)$comid .'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
if ($data['c_autor'] != $tsUser->uid){
// RAZON
if (is_numeric($razon_db)){
include (TS_EXTRA . 'datos.php');
$razon_db = $tsDenuncias['comunidades'][$razon_db];
}
// AVISO
$aviso = 'Hola <b>' . $data['user_name'] . "</b>\n\n Lamento contarte que tu comunidad titulada <b>" .
$data['c_nombre'] . "</b> ha sido eliminada.\n\n Causa: <b>" . $razon_db . "</b>\n\n Te recomendamos leer el <a href=\"" .
$tsCore->settings['url'] . "/pages/protocolo/\">Protocolo</a> para evitar futuras sanciones.\n\n Muchas gracias por entender!";
$status = $tsMonitor->setAviso($data['c_autor'], 'Comunidad eliminada', $aviso, 1);
}
// ELIMINAR DENUNCIAS
db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `w_denuncias` WHERE `obj_id` = \''.$comid.'\' AND `d_type` = \'5\'');
$this->setHistory('borrar', 'comunidad', $comid);
return '1: La comunidad ha sido eliminada.';
} else return '0: La comunidad NO pudo ser eliminada.';
} else return '0: Solo los administradores pueden borrar una comunidad';
}
public function deleteTema($temaid) {
global $tsCore, $tsMonitor, $tsUser;
if ($tsUser->is_admod) {
// RAZON
$razon = $tsCore->setSecure($_POST['razon']);
$razon_desc = $tsCore->setSecure($_POST['razon_desc']);
$razon_db = ($razon != 9) ? $razon : $razon_desc;
//
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE c_temas SET t_estado = \'1\' WHERE t_id = \''.$temaid.'\'')) {
// ENVIAR AVISO
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT t.t_autor, t.t_titulo, u.user_name FROM c_temas AS t LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id WHERE t.t_id = \''.(int)$temaid.'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
if ($data['t_autor'] != $tsUser->uid) {
// RAZON
if (is_numeric($razon_db)) {
include (TS_EXTRA . 'datos.php');
$razon_db = $tsDenuncias['temas'][$razon_db];
}
// AVISO
$aviso = 'Hola <b>' . $data['user_name'] . "</b>\n\n Lamento contarte que tu tema titulado <b>" .
$data['t_titulo'] . "</b> ha sido eliminado.\n\n Causa: <b>" . $razon_db . "</b>\n\n Te recomendamos leer el <a href=\"" .
$tsCore->settings['url'] . "/pages/protocolo/\">Protocolo</a> para evitar futuras sanciones.\n\n Muchas gracias por entender!";
$status = $tsMonitor->setAviso($data['t_autor'], 'Tema eliminado', $aviso, 1);
}
// ELIMINAR DENUNCIAS
db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `w_denuncias` WHERE `obj_id` = \''.$temaid.'\' AND `d_type` = \'6\'');
return '1: El tema ha sido eliminado.';
} else return '0: El tema NO pudo ser eliminado.';
} else return '0: No continúe por aquí.';
}
public function getTempelera() {
global $tsUser, $tsCore;
//
$max = 20; // MAXIMO A MOSTRAR
$limit = $tsCore->setPageLimit($max, true);
// PAGINAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(*) FROM c_temas AS t LEFT JOIN u_miembros AS u ON u.user_id = t.t_autor LEFT JOIN c_historial AS h ON h.h_for = t.t_id WHERE h.h_type = \'2\' AND t.t_estado = \'1\'');
list($total) = db_exec('fetch_row', $query);
$data['pages'] = $tsCore->pageIndex($tsCore->settings['url'] .
"/moderacion/tempelera?", $_GET['s'], $total, $max);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT h.*, t.t_id, t.t_autor, t.t_titulo, c.c_nombre_corto, t.t_fecha, t.t_ip, u.user_name FROM c_temas AS t LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id LEFT JOIN c_historial AS h ON h.h_for = t.t_id WHERE h.h_type = \'2\' AND t.t_estado = \'1\' LIMIT ' .
$limit);
//
while ($row = db_exec('fetch_assoc', $query))
{
$row['mod_name'] = $tsUser->getUserName($row['h_mod']);
//
$data['datos'][] = $row;
}
//
return $data;
}
En c.monitor.php --> inc --> class --> c.monitor.php
Buscar:
17 => array('text' => 'Tu foto recibió una medalla', 'css' => 'medal'),
Debajo agregar:
// COMUNIDADES
50 => array('text' => array('creó un nuevo'), 'ln_text' => 'tema', 'css' => 'post'),
51 => array('text' => array('comentó tu','_REP_ nuevos comentarios en tu'), 'ln_text' => 'tema', 'css' => 'comment_post'),
52 => array('text' => array('comentó en un', '_REP_ nuevos comentarios en el'), 'ln_text' => 'tema', 'extra' => ' que sigues', 'css' => 'blue_ball'),
53 => array('text' => array('respondió tu', '_REP_ nuevas respuestas a tu'), 'ln_text' => 'comentario', 'css' => 'comment_resp'),
54 => array('text' => array('agregó a favoritos tu','_REP_ nuevos favoritos a tu'), 'ln_text' => 'tema', 'css' => 'star'),
55 => array('text' => array('te recomienda un', '_REP_ usuarios te recomiendan un'), 'ln_text' => 'tema', 'css' => 'share'),
56 => array('text' => array('votó _REP_ tu', '_REP_ nuevos votos a tu'), 'ln_text' => 'tema', 'css' => 'voto_'),
57 => array('text' => array('votó _REP_ tu', '_REP_ nuevos votos a tu'), 'ln_text' => 'comentario', 'css' => 'voto_'),
58 => array('text' => array('está siguiendo tu','_REP_ nuevos seguidores a tu'), 'ln_text' => 'tema', 'css' => 'follow'),
Debajo de:
case 17:
return 'SELECT f.foto_id, f.f_title, f.f_user, m.medal_id, m.m_title, m.m_image, a.medal_for, u.user_id, u.user_name FROM w_medallas_assign AS a LEFT JOIN f_fotos AS f ON f.foto_id = a.medal_for LEFT JOIN u_miembros AS u ON u.user_id = f.f_user LEFT JOIN w_medallas AS m ON m.medal_id = a.medal_id WHERE m.medal_id = \''.(int)$data['obj_uno'].'\' AND f.foto_id = \''.(int)$data['obj_dos'].'\' LIMIT 1';
break;
Agregar:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 58:
return 'SELECT c.c_nombre, c.c_nombre_corto, t.t_id, t.t_titulo, t.t_autor, u.user_name FROM c_temas AS t LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON user_id = t_autor WHERE t.t_id = \''.(int)$data['obj_uno'].'\' LIMIT 1';
break;
Debajo de:
case 17:
$oracion['text'] = 'Tu <a href="'.$site_url.'/fotos/'.$data['user_name'].'/'.$data['foto_id'].'/'.$tsCore->setSEO($data['f_title']).'.html" title="'.$data['f_title'].'"><b>foto</b></a> tiene una nueva <span class="qtip" title="'.$data['m_title'].'"><b>medalla</b> <img src="'.$site_url.'/themes/default/images/icons/med/'.$data['m_image'].'_16.png"/></span>';
break;
Agregar:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 58:
// CUANTOS
$no_total = $data['not_total'];
$id_comment = '';
if($no_type == 52) $extra = $this->monitor[$no_type]['extra'];
// MAS DE UNA ACCION
if($no_total > 1) {
$text = $this->monitor[$no_type]['text'][1].$txt_extra;
$oracion['text'] = str_replace('_REP_', "<b>{$no_total}</b>", $text);
} else $oracion['text'] = ($this->show_type == 1 && $no_type == 52) ? $this->monitor[$no_type]['text'][0].$txt_extra : $this->monitor[$no_type]['text'][0].$txt_extra.$extra;
// ID COMMENT
if($no_type == 53 || $no_type == 57){
$id_comment = '#coment_id_'.$data['obj_tres'];
}
if($no_type == 56 || $no_type == 57){
$voto_type = ($data['obj_dos'] == 0) ? 'negativo' : 'positivo';
$oracion['text'] = str_replace('_REP_', '<b>'.$voto_type.'</b>', $oracion['text']);
$oracion['style'] = 'voto_'.$voto_type;
}
//
$oracion['link'] = $site_url.'/comunidades/'.$data['c_nombre_corto'].'/'.$data['t_id'].'/'.$tsCore->setSEO($data['t_titulo']).'.html'.$id_comment;
$oracion['ltext'] = ($this->show_type == 1) ? $ln_text : $data['t_titulo'];
$oracion['ltit'] = ($this->show_type == 1) ? $data['t_titulo'] : '';
break;
En c.swat.php --> inc --> class --> c.swat.php
Arriba de:
// USUARIOS
case 'usuario':
Agregar:
// COMUNIDADES
case 'comunidad':
// ¿ES MI COMUNIDAD O ESTÁ OCULTA?
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_id, c_autor, c_estado FROM c_comunidades WHERE c_id = \''.(int)$obj_id.'\' LIMIT 1') or exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$my_comu = db_exec('fetch_assoc', $query);
if(empty($my_comu['c_id'])) return '0: Esta comunidad no existe';
if($my_comu['c_autor'] == $tsUser->uid) return '0: No puedes denunciar tus propias comunidades.';
if($my_comu['c_estado'] == '1') return '0: No puedes denunciar comunidades ocultas.';
// YA HA REPORTADO?
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `did` FROM `w_denuncias` WHERE `obj_id` = \''.(int)$obj_id.'\' AND `d_user` = '.$tsUser->uid.' AND `d_type` = \'5\'');
$denuncio = db_exec('num_rows', $query);
if(!empty($denuncio)) return '0: Ya habías denunciado esta comunidad.';
// INSERTAR NUEVA DENUNCIA
if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `w_denuncias` (`obj_id`, `d_user`, `d_razon`, `d_extra`, `d_type`, `d_date`) VALUES (\''.(int)$obj_id.'\', \''.$tsUser->uid.'\', \''.$razon.'\', \''.$extras.'\', \'5\', \''.$date.'\')')){
return '1: La denuncia fue enviada.';
} else return '0: Error, inténtalo más tarde.';
break;
// TEMAS
case 'tema':
// ¿ES MI TEMA O ESTÁ OCULTO?
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT t_id, t_autor, t_estado FROM c_temas WHERE t_id = \''.(int)$obj_id.'\' LIMIT 1') or exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$my_tema = db_exec('fetch_assoc', $query);
if(empty($my_tema['t_id'])) return '0: Este tema no existe';
if($my_tema['t_autor'] == $tsUser->uid) return '0: No puedes denunciar tus propios temas.';
if($my_tema['t_estado'] == '1') return '0: No puedes denunciar temas ocultos.';
// YA HA REPORTADO?
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `did` FROM `w_denuncias` WHERE `obj_id` = \''.(int)$obj_id.'\' AND `d_user` = '.$tsUser->uid.' AND `d_type` = \'6\'');
$denuncio = db_exec('num_rows', $query);
if(!empty($denuncio)) return '0: Ya habías denunciado este tema.';
// CUANTAS DENUNCIAS LLEVA?
$denuncias = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `did` FROM `w_denuncias` WHERE `obj_id` = \''.(int)$obj_id.'\' AND `d_type` = \'6\''));
// OCULTAMOS EL COMENTARIO SI YA LLEVA MÁS DE 3 DENUNCIAS
if($denuncias >= 2){
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE c_temas SET t_estado = \'2\' WHERE t_id = \''.(int)$obj_id.'\'') or exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
}
// INSERTAR NUEVA DENUNCIA
if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `w_denuncias` (`obj_id`, `d_user`, `d_razon`, `d_extra`, `d_type`, `d_date`) VALUES (\''.(int)$obj_id.'\', \''.$tsUser->uid.'\', \''.$razon.'\', \''.$extras.'\', \'6\', \''.$date.'\')')){
return '1: La denuncia fue enviada.';
} else return '0: Error, inténtalo más tarde.';
break;
En c.tops.php --> inc --> class --> c.tops.php
Buscar:
/*
getTopPosts()
*/
Arriba agregar:
/*
getTopComus()
*/
function getTopComus($fecha){
//
$data = $this->setTime($fecha);
// MIEMBROS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(m.m_id) AS total, c.c_id, c.c_nombre, c.c_nombre_corto FROM c_miembros AS m LEFT JOIN c_comunidades AS c ON m.m_comunidad = c.c_id WHERE m.m_permisos > \'0\' AND c.c_estado = \'0\' AND m.m_fecha ***** '.$data['start'].' AND '.$data['end'].' GROUP BY m.m_comunidad ORDER BY total DESC LIMIT 10');
$array['miembros'] = result_array($query);
// TEMAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(t.t_id) AS total, c.c_id, c.c_nombre, c.c_nombre_corto FROM c_comunidades AS c LEFT JOIN c_temas AS t ON t.t_comunidad = c.c_id WHERE t.t_estado = \'0\' AND c.c_estado = \'0\' AND c.c_fecha ***** '.$data['start'].' AND '.$data['end'].' GROUP BY t.t_comunidad ORDER BY total DESC LIMIT 10');
$array['temas'] = result_array($query);
// SEGUIDORES
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(f.follow_id) AS total, c.c_id, c.c_nombre, c.c_nombre_corto FROM u_follows AS f LEFT JOIN c_comunidades AS c ON f.f_id = c.c_id WHERE f.f_type = 5 AND f.f_date ***** '.$data['start'].' AND '.$data['end'].' GROUP BY f.f_id ORDER BY total DESC LIMIT 10');
$array['seguidores'] = result_array($query);
//
return $array;
}
/*
getTopTemas()
*/
function getTopTemas($fecha){
//
$data = $this->setTime($fecha);
// VOTOS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT t.t_votos_pos AS total, t.t_id, t.t_titulo, c.c_id, c.c_nombre, c.c_nombre_corto FROM c_temas AS t LEFT JOIN c_comunidades AS c ON t.t_comunidad = c.c_id WHERE t.t_estado = \'0\' AND c.c_estado = \'0\' AND t.t_fecha ***** '.$data['start'].' AND '.$data['end'].' ORDER BY total DESC LIMIT 10');
$array['votos'] = result_array($query);
// RESPUESTAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(r.r_id) AS total, t.t_id, t.t_titulo, c.c_id, c.c_nombre, c.c_nombre_corto FROM c_respuestas AS r LEFT JOIN c_temas AS t ON t.t_id = r.r_tema LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad WHERE t.t_estado = \'0\' AND c.c_estado = \'0\' AND r.r_estado = \'0\' AND c.c_fecha ***** '.$data['start'].' AND '.$data['end'].' GROUP BY r.r_tema ORDER BY total DESC LIMIT 10');
$array['respuestas'] = result_array($query);
// SEGUIDORES
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(f.follow_id) AS total, t.t_id, t.t_titulo, c.c_id, c.c_nombre, c.c_nombre_corto FROM u_follows AS f LEFT JOIN c_temas AS t ON t.t_id = f.f_id LEFT JOIN c_comunidades AS c ON t.t_comunidad = c.c_id WHERE f.f_type = 6 AND f.f_date ***** '.$data['start'].' AND '.$data['end'].' GROUP BY f.f_id ORDER BY total DESC LIMIT 10');
$array['seguidores'] = result_array($query);
//
return $array;
}
En c.user.php --> inc --> class --> c.user.php
Buscar:
$this->is_banned = $this->info['user_baneado'];
Debajo agregar:
// ESTADO DE BAN EN COMUNIDADES
$this->com_banned();
Arriba de:
/*
getUserID($tsUsername)
*/
Agregar:
/*
com_banned()
*/
function com_banned(){
global $tsCore, $tsMonitor;
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT *, c_nombre, c_nombre_corto FROM c_baneados LEFT JOIN c_comunidades ON c_id = ban_comunidad WHERE ban_user = \''.$this->uid.'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
//
$now = time();
//
if($data['ban_termina'] > 1 && $data['ban_termina'] < $now){
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE c_miembros SET m_permisos = \'3\' WHERE m_user = \''.$this->uid.'\' AND m_comunidad = \''.$data['ban_comunidad'].'\'');
db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM c_baneados WHERE ban_id = \''.$data['ban_id'].'\'');
// MANDAR AVISO AL USUARIO
$tsMonitor =& tsMonitor::getInstance();
$aviso = 'El tiempo de suspension ha acabado, has sido reactivado de la comunidad <b><a href="'.$tsCore->settings['url'].'/comunidades/'.$data['c_nombre_corto'].'/"><b>'.
$data['c_nombre'].'</b></a> y puedes seguir disfrutando de ella.<br /><br />Disculpe las molestias.';
$tsMonitor->setAviso($this->uid, 'Usuario reactivado', $aviso, 2);
}
return true;
}
En datos.php --> inc --> ext --> datos.php
Buscar:
'fotos' => array(
Arriba agregar:
'comunidades' => array(
'',
'Se hace Spam',
'Es racista o irrespetuosa',
'Contiene información personal',
'Contiene pedofilia',
'Es gore o asquerosa',
'No cumple con el protocolo',
'Otra razón (especificar)'
),
'temas' => array(
'',
'Re-post',
'Se hace Spam',
'Es racista o irrespetuoso',
'Contiene información personal',
'El título esta en mayúscula',
'Contiene pedofilia',
'Es gore o asqueroso',
'No cumple con el protocolo',
'Otra razón (especificar)'
),
En admin.php --> inc --> php --> admin.php
Buscar:
//FOTOS
} elseif($action == 'fotos'){
Arriba agregar:
// COMUNIDADES
} elseif($action == 'comunidades'){
if(!$act) {
$smarty->assign("tsAdminComus",$tsAdmin->GetAdminComus());
} elseif($act == 'temas') {
$smarty->assign("tsAdminTemas",$tsAdmin->GetAdminTemas());
}
En moderacion.php --> inc --> php --> moderacion.php
Buscar:
elseif($action == 'fopelera'){
$smarty->assign("tsFopelera",$tsMod->getFopelera());
}
Debajo agregar:
elseif($action == 'tempelera'){
$smarty->assign("tsTempelera",$tsMod->getTempelera());
}
En top.php --> inc --> php --> top.php
Buscar:
case 'usuarios':
$smarty->assign("tsTops",$tsTops->getTopUsers($fecha, $cat));
break;
Debajo agregar:
case 'comunidades':
$smarty->assign("tsTops",$tsTops->getTopComus($fecha));
break;
case 'temas':
$smarty->assign("tsTops",$tsTops->getTopTemas($fecha));
break;
En ajax.denuncia.php --> inc --> php --> ajax --> ajax.denuncia.php
Buscar:
'denuncia-usuario' => array('n' => 2, 'p' => 'form'),
Debajo agregar:
'denuncia-comunidad' => array('n' => 2, 'p' => 'form'),
'denuncia-tema' => array('n' => 2, 'p' => 'form'),
Arriba de:
}
// ACCION
$smarty->assign("tsAction",$action);
Agregar:
case 'denuncia-comunidad':
// CREAR DENUNCIA
if($_POST['razon']){
$tsAjax = 1;
echo $tsSwat->setDenuncia($obj_id, 'comunidad');
// FORMULARIO DE DENUNCIA
} else {
// VARS
$tsData = array(
'obj_id' => $obj_id,
'obj_title' => $tsCore->setSecure($_POST['obj_title']),
'obj_user' => $tsCore->setSecure($_POST['obj_user']),
);
// DATOS
include("../ext/datos.php");
$smarty->assign("tsData",$tsData);
$smarty->assign("tsDenuncias",$tsDenuncias['comunidades']);
}
break;
case 'denuncia-tema':
// CREAR DENUNCIA
if($_POST['razon']){
$tsAjax = 1;
echo $tsSwat->setDenuncia($obj_id, 'tema');
// FORMULARIO DE DENUNCIA
} else {
// VARS
$tsData = array(
'obj_id' => $obj_id,
'obj_title' => $tsCore->setSecure($_POST['obj_title']),
'obj_user' => $tsCore->setSecure($_POST['obj_user']),
);
// DATOS
include("../ext/datos.php");
$smarty->assign("tsData",$tsData);
$smarty->assign("tsDenuncias",$tsDenuncias['temas']);
}
break;
En ajax.moderacion.php --> inc --> php --> ajax --> ajax.moderacion.php
Buscar:
'moderacion-users' => array('n' => 3, 'p' => 'main'),
Debajo agregar:
'moderacion-comunidades' => array('n' => 3, 'p' => 'comunidad'),
'moderacion-temas' => array('n' => 3, 'p' => 'tema'),
Arriba de:
case 'moderacion-mps':
Agregar:
case 'moderacion-comunidades':
//<--
$comid = (int)$_POST['comid'];
// ACCIONES SECUNDARIAS
switch($do){
case 'reboot':
$tsAjax = 1;
echo $tsMod->rebootComunidad($_POST['id']);
break;
case 'borrar':
if($_POST['razon']){
$tsAjax = 1;
echo $tsMod->deleteComunidad($comid);
}else {
include('../ext/datos.php');
$smarty->assign("tsDenuncias",$tsDenuncias['comunidades']);
}
break;
}
//-->
break;
case 'moderacion-temas':
//<--
switch($do){
case 'reboot':
$tsAjax = 1;
echo $tsMod->rebootTema($_POST['id']);
break;
case 'borrar':
if($_POST['razon']){
$tsAjax = 1;
echo $tsMod->deleteTema($_POST['temaid']);
}else {
include('../ext/datos.php');
$smarty->assign("tsDenuncias",$tsDenuncias['temas']);
}
break;
}
//-->
break;
En ajax.perfil.php --> inc --> php --> ajax --> ajax.perfil.php
Buscar:
'perfil-posts' => array('n' => 0, 'p' => 'posts'),
Debajo agregar:
'perfil-comunidades' => array('n' => 0, 'p' => 'comunidades'),
Arriba de:
case 'perfil-seguidores':
Agregar:
case 'perfil-comunidades':
//<---
$smarty->assign("tsComunidades",$tsCuenta->loadComunidades($user_id));
//--->
break;
En admin.css --> themes --> default --> css --> admin.css
Reemplazar:
li#a_users {background-image: url(../images/icons/users.png);}
Por:
li#a_users, li#a_comunidades {background-image: url(../images/icons/users.png);}
li#a_temas {background-image: url(../images/icons/details.png);}
li#a_tempelera {background-image: url(../images/icons/posts.png);}
En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl
Debajo de:
{include file='admin_mods/m.admin_posts.tpl'}
Agregar:
{elseif $tsAction == 'comunidades'}
{include file='admin_mods/m.admin_comunidades.tpl'}
En t.moderacion.tpl --> themes --> default --> templates --> t.moderacion.tpl
Debajo de:
{include file='admin_mods/m.mod_report_posts.tpl}
Agregar:
{elseif $tsAction == 'comunidades'}
{include file='admin_mods/m.mod_report_comunidades.tpl}
{elseif $tsAction == 'temas'}
{include file='admin_mods/m.mod_report_temas.tpl}
{elseif $tsAction == 'tempelera'}
{include file='admin_mods/m.mod_papelera_temas.tpl'}
En t.tops.php --> themes --> default --> templates --> t.tops.php
Debajo de:
{include file='modules/m.top_users.tpl'}
Agregar:
{elseif $tsAction == 'comunidades'}
{include file='modules/m.top_comunidades.tpl'}
{elseif $tsAction == 'temas'}
{include file='modules/m.top_temas.tpl'}
En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods templates --> m.admin_sidemenu.tpl
Debajo de:
<li><a {if $tsAction == 'posts'}id="activo-mod"{/if} href="{$tsConfig.url}/admin/posts" style="width: 228px;"><i class="fa fa-files-o 2x fa-lg"></i> Todos los Posts</a></li>
Agregar:
<li><a {if $tsAction == 'posts'}id="activo-mod"{/if} href="{$tsConfig.url}/admin/comunidades" style="width: 228px;"><i class="fa fa-comments-o 2x fa-lg"></i> Comunidades</a></li>
En m.mod_sidemenu.tpl --> themes --> default --> templates --> admin_mods templates --> m.mod_sidemenu.tpl
Debajo de:
<li><a {if $tsAction == 'posts'}id="activo-mod"{/if} href="{$tsConfig.url}/moderacion/posts"><i class="fa fa-files-o 2x fa-lg"></i> Posts Denunciados</a><span style="border-top: 0;">{$tsConfig.novemods.repposts}</span></li>
Agregar:
<li><a {if $tsAction == 'comunidades'}id="activo-mod"{/if} href="{$tsConfig.url}/moderacion/comunidades"><i class="fa fa-comments-o 2x fa-lg"></i> Comunidades Denunciadas</a><span style="border-top: 0;">{$tsConfig.novemods.repcomunidades}</span></li>
<li><a {if $tsAction == 'temas'}id="activo-mod"{/if} href="{$tsConfig.url}/moderacion/temas"><i class="fa fa-file-text-o 2x fa-lg"></i> Temas Denunciados</a><span style="border-top: 0;">{$tsConfig.novemods.reptemas}</span></li>
Debajo de:
<li><a {if $tsAction == 'pospelera'}id="activo-mod"{/if} href="{$tsConfig.url}/moderacion/pospelera"><i class="fa fa-files-o 2x fa-lg"></i> Posts Eliminados</a><span style="border-top: 0;">{$tsConfig.novemods.pospelera}</span></li>
Agregar:
<li><a {if $tsAction == 'pospelera'}id="activo-mod"{/if} href="{$tsConfig.url}/moderacion/tempelera"><i class="fa fa-file-text-o 2x fa-lg"></i> Temas Eliminados</a><span style="border-top: 0;">{$tsConfig.novemods.pospelera}</span></li>
En m.perfil_sidebar.tpl --> themes --> default --> templates --> modules --> m.perfil_sidebar.tpl
Arriba de:
{if $tsInfo.can_hits}
Agregar:
<div class="boxposts separa">
<div class="titular">
<h2>Comunidades</h2>
<a class="botob" href="/comunidades/">{$tsGeneral.comus_total}</a>
</div>
{if $tsGeneral.comus}
<ul class="clearfix">
{foreach from=$tsGeneral.comus item=c}
<li style="width: 100%;margin-bottom: 5px;">
<a href="{$tsConfig.url}/comunidades/{$c.c_nombre_corto}/" class="floatL" style="margin-right: 3px;"><img src="{$tsConfig.url}/files/uploads/c_{$c.c_id}.jpg" width="32" height="32"/></a>
<a href="{$tsConfig.url}/comunidades/{$c.c_nombre_corto}/" style="color:#006595;font-weight:bold;font-size:12px;">{$c.c_nombre}</a>
<span style="display: block;font-size: 11px;color: #999;">{$c.c_miembros} Miembros</span>
</li>
{/foreach}
</ul>
<a href="#comunidades" onclick="perfil.load_tab('comunidades', $('#comunidades'));" class="see-more">Ver todas »</a>
{else}
<div class="emptyData">No participa en ninguna comunidad</div>
{/if}
</div>
En head_menu.tpl --> themes --> default --> templates --> sections --> head_menu.tpl
Debajo de:
{if $tsConfig.c_fotos_private == '1' && !$tsUser->is_member}{else}<li><a {if $tsPage == 'fotos'}class="estoy"{/if} href="{$tsConfig.url}/fotos/">Imágenes</a></li>{/if}
Agregar:
{if $tsUser->is_member}<li><a {if $tsPage == 'comunidades'}class="estoy"{/if} href="{$tsConfig.url}/comunidades/">Comunidades</a></li>{/if}
En head_submenu.tpl --> themes --> default --> templates --> sections --> head_submenu.tpl
Buscar:
<li><a {if $tsAction == 'populares'}class="viendo"{/if} href="{$tsConfig.url}/mi/populares"><i class="fa fa-comments-o"></i> Populares</a></li>
<li><a {if $tsAction == 'publico'}class="viendo"{/if} href="{$tsConfig.url}/mi/publico"><i class="fa fa-users"></i> Publico</a></li>
</ul>
Debajo agregar:
{elseif $tsPage == 'comunidades'}
<ul>
<li{if $tsAction == '' || $tsAction == 'home' && $tsAction != 'mis-comunidades' && $tsAction != 'dir' && $tsAction != 'mod-history' && $tsAction != 'buscar' && $tsAction != 'favoritos' && $tsAction != 'borradores'} class="here"{/if}><a href="{$tsConfig.url}/comunidades/"><i class="fa fa-home"></i> Inicio</a></li>
{if $tsUser->is_member}<li {if $tsAction == 'mis-comunidades'}class="here"{/if}><a href="{$tsConfig.url}/comunidades/mis-comunidades/"><i class="fa fa-comments-o 2x fa-lg"></i> Mis Comunidades</a></li>{/if}
<li{if $tsAction == 'dir'} class="here"{/if}><a href="{$tsConfig.url}/comunidades/dir/"><i class="fa fa-list" aria-hidden="true"></i>
Directorio</a></li>
<li{if $tsAction == 'buscar'} class="here"{/if}><a href="{$tsConfig.url}/comunidades/buscar/"><i class="fa fa-search fa-fw"></i> Buscar</a></li>
{if $tsUser->is_member} <li{if $tsAction == 'favoritos'} class="here"{/if}><a href="{$tsConfig.url}/comunidades/favoritos/"><i class="fa fa-star"></i> Favoritos</a></li>
<li{if $tsAction == 'borradores'} class="here"{/if}><a href="{$tsConfig.url}/comunidades/borradores/"><i class="fa fa-floppy-o" aria-hidden="true"></i>
Borradores</a></li>
<li{if $tsAction == 'mod-history'} class="here"{/if}><a href="{$tsConfig.url}/comunidades/mod-history/"><i class="fa fa-history fa-fw"></i> Historial</a></li>{/if}
</ul>
Debajo de:
<li><a {if $tsAction == 'usuarios'}class="viendo"{/if} href="{$tsConfig.url}/top/usuarios/"><i class="fa fa-users"></i> Usuarios</a></li>
Agregar:
<li><a {if $tsAction == 'comunidades'}class="viendo"{/if} href="{$tsConfig.url}/top/comunidades/"><i class="fa fa-comments-o 2x fa-lg"></i> Comunidades</a></li>
En p.denuncia.form.tpl --> themes --> default --> templates --> t.php_files --> p.denuncia.form.tpl
Arriba de:
{elseif $tsAction == 'denuncia-mensaje'}
Agregar:
{elseif $tsAction == 'denuncia-comunidad'}
<div align="center" style="padding:10px 10px 0">
<b>Denunciar comunidad:</b><br />
{$tsData.obj_title}<br /><br />
<b>Razón de la denuncia:</b><br />
<select name="razon">
{foreach from=$tsDenuncias key=i item=denuncia}
{if $denuncia}<option value="{$i}">{$denuncia}</option>{/if}
{/foreach}
</select><br />
<b>Aclaración y comentarios:</b><br />
<textarea tabindex="6" rows="5" cols="40" name="extras"></textarea><br />
<span class="size9">Para atender tu caso rápidamente, adjunta pruevas de tu denuncia.<br /> (capturas de pantalla)</span>
</div>
{elseif $tsAction == 'denuncia-tema'}
<div align="center" style="padding:10px 10px 0">
<b>Denunciar tema:</b><br />
{$tsData.obj_title}<br /><br />
<b>Autor:</b><br />
{$tsData.obj_user}<br /><br />
<b>Razón de la denuncia:</b><br />
<select name="razon">
{foreach from=$tsDenuncias key=i item=denuncia}
{if $denuncia}<option value="{$i}">{$denuncia}</option>{/if}
{/foreach}
</select><br />
<b>Aclaración y comentarios:</b><br />
<textarea tabindex="6" rows="5" cols="40" name="extras"></textarea><br />
<span class="size9">Para atender tu caso rápidamente, adjunta pruevas de tu denuncia.<br /> (capturas de pantalla)</span>
</div>
Subir esta carpeta y el archivo SQL a la base de datos.
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
Hola a tod@s, os dejo unas capturas de un tema que se está desarrollando, dejad vuestros comentarios de que os parece, que cambiar o incluir.
Gracias y saludos.
- 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 versión Dark, la cual hemos llamado Cerberus 3.2.
- Funcionalidad completa con php 8.1.6 y anteriores, dejando la retrocompatibilidad con todas las versiones de php hasta ahora conocidas.
- Se han modificado y re estilizado 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.
- Algunas funcionalidades y mejoras fueron agregadas para darle un toque más parecido a lo que buscan los usuarios que usan Risus.
- 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.
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
Mostrar titulo de los posts anterior y siguiente
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!
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Nota: Es compatible con cualquier tema, solo hay que acomodar el diseño.
Capturas GIF
Ejecutar esta consulta
ALTER TABLE p_posts ADD post_cover VARCHAR( 250 ) NOT NULL;
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
'body' => $tsCore->setSecure($_POST['cuerpo']),
Debajo agregar:
'cover' => $tsCore->setSecure($_POST['cover_p']),
Buscar:
// INSERTAMOS
$_SERVER['REMOTE_ADDR'] = $_SERVER['X_FORWARDED_FOR'] ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
if(!filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) { die('0: Su ip no se pudo validar.'); }
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\'').')')) {
Reemplazar por:
// INSERTAMOS
$_SERVER['REMOTE_ADDR'] = $_SERVER['X_FORWARDED_FOR'] ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
if(!filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) { die('0: Su ip no se pudo validar.'); }
if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `p_posts` (post_user, post_category, post_title, post_body, post_cover, 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['cover'].'\', \''.$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\'').')')) {
Agregado:
post_cover,
\''.$postData['cover'].'\',
Buscar:
'body' => $tsCore->setSecure($_POST['cuerpo'], true),
Debajo agregar:
'cover' => $tsCore->setSecure($_POST['cover_p'], true),
Buscar:
/*********/
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? 'p.post_id > 0' : 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' '.$c_where.' '.$s_where.' GROUP BY p.post_id ORDER BY '.$s_order.' DESC LIMIT '.$start);
$lastPosts['data'] = result_array($query);
Después de:
p.post_title,
Agregar:
p.post_cover,
En m.agregar_form.tpl --> themes --> default --> templates --> modules --> m.agregar_form.tpl
Buscar:
<li>
<label>Título</label>
<span style="display: none;" class="errormsg"></span>
<input type="text" tabindex="1" name="titulo" maxlength="60" size="60" class="text-inp required" value="{$tsDraft.b_title}" style="width:760px"/>
<div id="repost"></div>
</li>
Debajo agregar:
<li>
<label>URL de imagen de portada del Post (Superior a 700px x 430px)<div class="checkboxThree">
<input name="checkbox1" type="checkbox" id="checkboxThree" onClick="toogdiv(covered_p);" value="https://"/>
<label for="checkboxThree"></label>
</div></label>
<span style="display: none;" class="errormsg"></span>
<input type="text" name="cover_p" id="covered_p" tabindex="1" style="border-radius: 4px 4px 4px 4px; display: none;" onblur=" veri( this.value ) " class="text-inp" value="{if $tsDraft.b_cover}{$tsDraft.b_cover}{else}https://{/if}"/>
</li>
En extras.css --> themes --> default --> extras.css
Al final agregar:
#covered_p{-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;-ms-transition:all .5s ease;transition:all .5s ease}.form-add-post .checkboxThree input[type=checkbox]{visibility:hidden}.form-add-post input[type=text]#covered_p:disabled{display:none}.checkboxThree{width:120px;height:22px;background:#333;margin:0 0 0 9px;border-radius:50px;position:relative;display:inline-block}.checkboxThree:before{content:'On';position:absolute;top:5px;left:13px;height:2px;color:#26ca28;font-size:12px}.checkboxThree:after{content:'Off';position:absolute;top:5px;left:84px;height:2px;color:#bbb;font-size:12px}.checkboxThree input[type=checkbox]:checked+label{left:60px;background:#26ca28}.checkboxThree label{display:block;width:52px;height:2px;border-radius:50px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;-ms-transition:all .5s ease;transition:all .5s ease;cursor:pointer;position:absolute;top:5px;z-index:1;left:12px;background:#ddd}.slimScrollDiv{height:254px!important}.cover_postedor img{width:100%}
En m.agregar_javascript.tpl --> themes --> default --> templates --> modules --> m.agregar_javascript.tpl
Buscar:
function postSave() {
confirm = false;
$('form[name=newpost]').submit();
}
Debajo agregar:
function veri(cover_p) {
if ( cover_p.length<7 )
{
document.newpost.cover_p.value="http://";
}
}
function toogdiv() {
$("#covered_p").toggle();
}
En m.posts_content.tpl --> themes --> default --> templates --> modules --> m.posts_content.tpl
Donde quieran agregan esto:
{if $tsPost.post_cover=='http://'}{else}<div class="cover_postedor"><img src="{$tsPost.post_cover}" /></div>{/if}
Creditos: thespeed94
Captura
En c.cuenta.php --> inc --> class --> c.cuenta.php
Buscar:
// DATOS DEL AUTOR
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_rango, u.user_puntos, u.user_lastactive, u.user_last_ip, u.user_activo, u.user_baneado, p.user_pais, p.user_sexo, p.p_socials, p.user_firma FROM u_miembros AS u LEFT JOIN u_perfil AS p ON u.user_id = p.user_id WHERE u.user_id = \''.(int)$user_id.'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
Después de:
p.user_sexo,
Agregar:
p.p_socials,
Buscar:
$data['user_posts'] = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_id FROM p_posts WHERE post_user = \''.(int)$user_id.'\' && post_status = \'0\''));
Debajo agregar:
$data['p_socials'] = unserialize($data['p_socials']);
$data['p_socials']['f'] = $data['p_socials'][0];
$data['p_socials']['t'] = $data['p_socials'][1];
En m.posts_autor.tpl --> themes --> default --> templates --> modules --> m.posts_autor.tpl
Buscar:
<img src="{$tsConfig.default}/images/flags/{$tsAutor.pais.icon}.png" style="padding:2px" title="{$tsAutor.pais.name}" />
Debajo agregar:
<a target="_blank" href="Registrate o inicia tu sesión para ver este contenido{$tsAutor.p_socials.f}"><img src="{$tsConfig.default}/images/icons/facebook.png" style="padding:2px" title="Sígueme en Facebook!" /></a>
<a target="_blank" href="Registrate o inicia tu sesión para ver este contenido{$tsAutor.p_socials.t}"><img src="{$tsConfig.default}/images/icons/twitter.png" style="padding:2px" title="Sígueme en Twitter!" /></a>
Creditos: SuperKevinSK
Capturas
Ejecutar estas consultas
ALTER TABLE u_perfil ADD p_cancionfavoritauno VARCHAR(50) NOT NULL
ALTER TABLE u_perfil ADD p_cancionfavoritados VARCHAR(50) NOT NULL
ALTER TABLE u_perfil ADD p_cancionfavoritatres VARCHAR(50) 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.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.p_mensaje,
Agregar:
p.p_cancionfavoritauno, p.p_cancionfavoritados, p.p_cancionfavoritatres,
/*
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.p_nombre, p.p_avatar, p.p_mensaje, p.p_cancionfavoritauno, p.p_cancionfavoritados, p.p_cancionfavoritatres, 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);
Buscar:
'vivo' => $tsCore->setSecure($_POST['vivo']),
Debajo agregar:
'cancionfavoritauno' => $tsCore->setSecure($_POST['cancionfavoritauno']),
'cancionfavoritados' => $tsCore->setSecure($_POST['cancionfavoritados']),
'cancionfavoritatres' => $tsCore->setSecure($_POST['cancionfavoritatres']),
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="cancionfavoritauno">Primera Canción Favorita:</label>
<strong>Registrate o inicia tu sesión para ver este contenido
<input type="text" value="{$tsPerfil.p_cancionfavoritauno}" maxlength="60" name="cancionfavoritauno" id="cancionfavoritauno" class="text cuenta-save-2" style="width:230px">
</div>
<div class="field">
<label for="cancionfavoritados">Segunda Canción Favorita:</label>
<strong>Registrate o inicia tu sesión para ver este contenido
<input type="text" value="{$tsPerfil.p_cancionfavoritados}" maxlength="60" name="cancionfavoritados" id="cancionfavoritados" class="text cuenta-save-2" style="width:230px">
</div>
<div class="field">
<label for="cancionfavoritatres">Tercera Canción Favorita:</label>
<strong>Registrate o inicia tu sesión para ver este contenido
<input type="text" value="{$tsPerfil.p_cancionfavoritatres}" maxlength="60" name="cancionfavoritatres" id="cancionfavoritatres" class="text cuenta-save-2" style="width:230px">
</div>
En m.perfil_sidebar.tpl --> themes --> default --> templates --> modules --> m.perfil_sidebar.tpl
Buscar:
<div style="margin-bottom: 10px">
{$tsConfig.ads_300}
</div>
Debajo agregar:
<div class="widget w-canciones clearfix">
<div class="title-w clearfix">
<h3>Canciones favoritas de {$tsInfo.nick}</h3>
</div>
{if $tsInfo.p_cancionfavoritauno}
<ul class="clearfix">
{foreach from=$tsInfo.p_cancionfavoritauno item=c}
<div class="cancion-fav">
<iframe width="425" height="315" src="//www.youtube.com/embed/{$tsInfo.p_cancionfavoritauno}" frameborder="0" allowfullscreen></iframe>
</div>
{/foreach}
</ul>
{else}
<div class="emptyData">{$tsInfo.nick} no tiene canciones favoritas</div>
{/if}
{if $tsInfo.p_cancionfavoritados != ''}
<div class="cancion-fav">
<iframe width="425" height="315" src="//www.youtube.com/embed/{$tsInfo.p_cancionfavoritados}" frameborder="0" allowfullscreen></iframe>
</div>
{/if}
{if $tsInfo.p_cancionfavoritatres != ''}
<div class="cancion-fav">
<iframe width="425" height="315" src="//www.youtube.com/embed/{$tsInfo.p_cancionfavoritatres}" frameborder="0" allowfullscreen></iframe>
</div>
{/if}
</div>
En perfil.css --> themes --> default --> css --> perfil.css
Al final añadir:
.cancion-fav{overflow:hidden;padding-bottom:55px;position:relative;height:0;border-bottom:1px;border-bottom-style:solid;border-bottom-color:#004a95}.cancion-fav iframe{left:0;top:0;height:100%;width:100%;position:absolute}
Creditos: ALKACHEY

