Últimos temas
-
Cómo funcionan las Mision...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
Ayer, 09:46 PM
» Respuestas: 0
» Vistas: 61 -
V6 Original/Dark/Memes (A...
Foro: Diseños Terminados
Último mensaje por: carlos007r
Ayer, 11:08 AM
» Respuestas: 26
» Vistas: 6,338 -
V5
Foro: Diseños Terminados
Último mensaje por: Aeikox
06-13-2026, 12:16 AM
» Respuestas: 8
» Vistas: 1,448 -
Risus 1.3 Actualizado jQu...
Foro: Risus 1.3
Último mensaje por: Tronlar
06-12-2026, 10:45 PM
» Respuestas: 55
» Vistas: 10,661 -
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: 58 -
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
Estadísticas del foro
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
En inc --> class --> c.admin.php
Buscar 2 veces:
Código:
'gopp' => $_POST['global-publicarposts'],Debajo agregar:
Código:
'gomp' => $_POST['global-mandarmp'],En inc --> class --> c.mensajes.php
Buscar:
Código:
if(str_replace(array("\n","\t",' '),'',$mensaje) == '') die('Debes ingresar el contenido de tu mensaje.');Debajo agregar:
Código:
//Puede mandar MP?
if(!$tsUser->permisos['gomp'] && !$tsUser->is_admod) die('No puedes enviar mensajes privados con tu rango actual.');themes --> TU TEMA --> templates --> admin_mods --> m.admin_rangos.tpl
Buscar:
Código:
<input type="checkbox" id="gopp" name="global-publicarposts" {if $tsRango.permisos.gopp}checked{/if} /><label style="font-weight:bold;" for="gopp">Publicar Posts</label><label for="gopp"> Podrán publicar posts.</label>
<br /><hr>Debajo agregar:
Código:
<input type="checkbox" id="gomp" name="global-mandarmp" {if $tsRango.permisos.gomp}checked{/if} /><label style="font-weight:bold;" for="gomp">Mandar Mp's</label><label for="gomp"> Podrán enviar mensajes privados.</label>
<br /><hr>[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Creditos: Alucard
En inc --> class --> c.tops.php
Buscar:
Código:
// FAVORITOS
$data['favoritos'] = $this->getTopPostsVars($fecha, $cat, 'favoritos');Debajo agregar:
Código:
// RECOMENDADO
$data['shared'] = $this->getTopPostsVars($fecha, $cat, 'shared');Buscar:
Código:
/*
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;
}Al lado de p.post_puntos
Agregar:
Código:
, p.post_sharedCódigo:
/*
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_shared, 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;
}KM-TRONOS
[img]Registrate o inicia tu sesión para ver este contenido[/img]
themes --> KM-TRONOS --> templates --> modules --> m.top_posts.tpl
Buscar:
Código:
<!--SEGUIDORES-->
<div class="boxy xtralarge">
<div class="boxy-title">
<h3>Top post con más seguidores</h3>
<span class="icon-noti follow-n"></span>
</div>
<div class="boxy-content">
{if !$tsTops.seguidores}<div class="emptyData">Nada por aqui</div>
{else}
{foreach from=$tsTops.seguidores item=p key=i}
<div class="TP_id">{$i+1}</div><li class="categoriaPost clearfix" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img})"><a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title}</a> <div class="TP_puntos">{$p.post_seguidores}</div></li>
{/foreach}
{/if}
</div>
</div>Debajo agregar:
Código:
<!--RECOMENDADOS-->
<div class="boxy xtralarge">
<div class="boxy-title">
<h3>Top post más recomendado</h3>
<span class="monac_icons ma_share" style="margin-top:-15px;float:right;"></span>
</div>
<div class="boxy-content">
{if !$tsTops.shared}<div class="emptyData">Nada por aqui</div>
{else}
{foreach from=$tsTops.shared item=p key=i}
<div class="TP_id">{$i+1}</div><li class="categoriaPost clearfix" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img})"><a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title}</a> <div class="TP_puntos">{$p.post_shared}</div></li>
{/foreach}
{/if}
</div>
</div>Default
[img]Registrate o inicia tu sesión para ver este contenido[/img]
themes --> default --> templates --> modules --> m.top_posts.tpl
Buscar:
Código:
<!--SEGUIDORES-->
<div class="boxy xtralarge">
<div class="boxy-title">
<h3>Top post con más seguidores</h3>
<span class="icon-noti follow-n"></span>
</div>
<div class="boxy-content">
{if !$tsTops.seguidores}<div class="emptyData">Nada por aqui</div>
{else}
<ol>
{foreach from=$tsTops.seguidores item=p}
<li class="categoriaPost clearfix" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img})"><a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:45}</a> <span>{$p.post_seguidores}</span></li>
{/foreach}
</ol>
{/if}
</div>
</div>Debajo agregar:
Código:
<!--RECOMENDADO-->
<div class="boxy xtralarge">
<div class="boxy-title">
<h3>Top post más recomendado</h3>
<span class="icon-noti follow-n"></span>
</div>
<div class="boxy-content">
{if !$tsTops.shared}<div class="emptyData">Nada por aqui</div>
{else}
<ol>
{foreach from=$tsTops.shared item=p}
<li class="categoriaPost clearfix" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img})"><a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:45}</a> <span>{$p.post_shared}</span></li>
{/foreach}
</ol>
{/if}
</div>
</div>V5
[img]Registrate o inicia tu sesión para ver este contenido[/img]
themes --> default --> templates --> modules --> m.top_posts.tpl
Buscar:
Código:
<div class="futopbox">
<div class="htops">
<h2>Top post con más seguidores</h2>
<span class="i issgu"></span>
</div>
<div class="boxtops">
{if $tsTops.seguidores}
{foreach from=$tsTops.seguidores item=p key=i}
<div class="zetops">
<b>{$i+1}</b>
<img src="{$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img}"/>
<a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|limit:35}</a>
<span>{$p.post_seguidores}</span>
</div>
{/foreach}
{else}
<div class="nada-gris">Nada por aqui</div>
{/if}
</div>
</div>Debajo agregar:
Código:
<div class="futopbox">
<div class="htops">
<h2>Top post más recomendado</h2>
<span class="i issgu"></span>
</div>
<div class="boxtops">
{if !$tsTops.shared}
{foreach from=$tsTops.shared item=p}
<div class="zetops">
<b>{$i+1}</b>
<img src="{$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img}"/>
<a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|limit:35}</a>
<span>{$p.post_shared}</span>
</div>
{/foreach}
{else}
<div class="nada-gris">Nada por aqui</div>
{/if}
</div>
</div>V6
[img]Registrate o inicia tu sesión para ver este contenido[/img]
themes --> default --> templates --> modules --> m.top_posts.tpl
Buscar:
Código:
<div class="futopbox">
<div class="htops">
<h2>Top post con más seguidores</h2>
<span class="i issgu"></span>
</div>
<div class="boxtops">
{if $tsTops.seguidores}
{foreach from=$tsTops.seguidores item=p key=i}
<div class="zetops">
<b>{$i+1}</b>
<span class="toup-{$p.c_seo}" style="margin-right: 5px;margin: 2px 10px 0 0;width: 16px;height: 16px;float: left;text-shadow: none;color: #25c2f5;" title="{$p.c_seo}"></span>
<a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|limit:35}</a>
<span>{$p.post_seguidores}</span>
</div>
{/foreach}
{else}
<div class="nada-gris">Nada por aqui</div>
{/if}
</div>
</div>Debajo agregar:
Código:
<div class="futopbox">
<div class="htops">
<h2>Top post con más seguidores</h2>
<span class="i issgu"></span>
</div>
<div class="boxtops">
{if !$tsTops.shared}
{foreach from=$tsTops.shared item=p}
<div class="zetops">
<b>{$i+1}</b>
<span class="toup-{$p.c_seo}" style="margin-right: 5px;margin: 2px 10px 0 0;width: 16px;height: 16px;float: left;text-shadow: none;color: #25c2f5;" title="{$p.c_seo}"></span>
<a href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|limit:35}</a>
<span>{$p.post_shared}</span>
</div>
{/foreach}
{else}
<div class="nada-gris">Nada por aqui</div>
{/if}
</div>
</div>Creditos: userxd
Hola, os dejo el mod de Tutan-kabron fixeado y actualizado a la versión 1.3, lo he instalado y probado en el tema default de risus, pero tiene que funcionar en cualquier tema, lo que cambia es el diseño.
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Ejecutan estas consultas
Código:
ALTER TABLE `u_miembros` ADD `user_referidos` INT( 11 ) NOT NULL DEFAULT '0'Código:
ALTER TABLE w_configuracion ADD p_p_refs INT(11) NOT NULL;Código:
CREATE TABLE IF NOT EXISTS `referidos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_referido` varchar(60) CHARACTER SET latin1 NOT NULL,
`user_name` varchar(60) CHARACTER SET latin1 NOT NULL,
`fecha` int(12) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ;En inc --> class --> c.admin.php
Buscar:
Código:
/*
getNoticias()
*/
function getNoticias()
{Arriba agregar:
Código:
/*
getReferidos()
*/
function getReferidos()
{
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, r.* from referidos AS r LEFT JOIN u_miembros AS u ON r.user_referido = u.user_name ORDER BY r.id DESC');
$data = result_array($query);
//
return $data;
}
/*
getReferido()
*/
function getReferido()
{
global $tsCore;
//
$id = $tsCore->setSecure($_GET['id']);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id`, `user_name`, `user_referido`, `fecha` FROM referidos WHERE id = \'' .
(int)$id . '\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
//
return $data;
}
/*
deReferidos();
*/
function delReferido()
{
$id = $_GET['id'];
if (!db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id` FROM `referidos` WHERE `id` = \'' .
(int)$id . '\' LIMIT 1'))) {
return 'El id ingresado no existe.';
}
$query = db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `referidos` WHERE `id` = \'' . (int)$id . '\'');
}Buscar:
Código:
'offline_message' => $tsCore->setSecure($tsCore->parseBadWords($_POST['offline_message'])),Debajo agregar:
Código:
'p_p_refs' => $tsCore->setSecure($_POST['p_p_refs']),Buscar:
Código:
'\', `offline_message` = \'' . $c['offline_message'] .Al lado agregar:
Código:
'\', `p_p_refs` = \'' . $c['p_p_refs'] .En inc --> class --> c.cuenta.php
Buscar:
Código:
/*
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:
Código:
u.user_lastactive,Agregar
Código:
u.user_referidos,Código:
/*
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_referidos, 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);En inc --> class --> c.registro.php
Buscar:
Código:
} else $valid = '0: Faltan datos y no se puede procesar tu solicitud.';
// retornar valor
return $valid;
}Debajo agregar:
Código:
/**
* @name referidos by tutan-kabron
* @access public
* @param
* @return string
*/
public function checkUserEmail2(){
global $tsCore;
// Variables
$referido = strtolower($_POST['referido']);
$which = empty($referido) ? 'referido' : 'referido';
// MENSAJE
$valid = '1: El '.$which.' no existe .'; // DEFAULT
//
if(!empty($referido)){
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `user_id` FROM `u_miembros` WHERE LOWER(user_name) = \''.$tsCore->setSecure($referido).'\' LIMIT 1');
if(db_exec('num_rows', $query) > 0) $valid = '0: El '.$which.' si existe.'; // EXISTE
} else $valid = '0: Este Campo no es obligatorio.';
// retornar valor
return $valid;
}Buscar:
Código:
/**
* @name registerUser()
* @access public
* @param
* @return string
*/
function registerUser(){
global $tsCore, $tsUser;
// DATOS NECESARIOSDebajo agregar:
Código:
$referido=$_POST['referido'];
if(empty($referido)){
$referido='1';
}else{
$referido= $tsCore->setSecure($_POST['referido']);
}Buscar:
Código:
'user_email' => $_POST['email'],Debajo agregar:
Código:
'user_referido' => $referido,Buscar:
Código:
// MENSAJE PARA DAR LA BIENVENIDA BIENVENIDAArriba agregar:
Código:
if($referido != '1'){
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$tsCore->settings['p_p_refs'].'\' WHERE user_name = \''.$tsData['user_referido'].'\'');
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\'');
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')');
$aviso = 'Tu referido <a href="'.$tsCore->settings['url'].'/perfil/'.$tsData['user_nick'].'"><b>'.$tsData['user_nick'].'</b></a>se ha registrado. <br /><br/> Dale la bienvenida! <br />Obtentienes '.(int)$tsCore->settings['p_p_refs'].' puntos por tu referido';
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\''.$tsUser->getUserId($tsData['user_referido']).'\', \'Nuevo referido\', \''.$aviso.'\', \''.'\', \''.time().'\', \'4\')');
}En inc --> php --> admin.php
Buscar:
Código:
/** NOTICIAS **/
} elseif($action == 'news'){Arriba agregar:
Código:
/** REFERIDOS by tutan-kabron**/
} elseif($action == 'referidos'){
if(empty($act)) $smarty->assign("tsReferidos",$tsAdmin->getReferidos());
elseif($act == 'borrar'){
if($tsAdmin->delReferido()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/referidos?borrar=true');
}En inc --> php --> ajax --> ajax.registro.php
Buscar:
Código:
case 'registro-geo':Arriba agregar:
Código:
case 'registro-check-referido':
//<---
echo $tsReg->checkUserEmail2();
//--->
break;Buscar:
Código:
'registro-check-nick' => array('n' => 1, 'p' => ''),Debajo agregar:
Código:
'registro-check-referido' => array('n' => 1, 'p' => ''),En themes --> default --> templates --> t.php_files --> p.registro.form.tpl
Buscar:
Código:
<div class="form-line">
<label for="email">E-mail</label>
<input name="email" type="text" id="email" tabindex="4" title="Ingresa tu dirección de email" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div>
</div>Debajo agregar:
Código:
<div class="form-line">
<label for="referido">Ingresa tu referido (opcional)</label>
<input name="referido" type="text" id="referido" tabindex="1" title="Ingrese el nick del referido" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div>
</div>En themes --> default --> js --> registro.js
Buscar:
Código:
//Un elemento pierde el foco
blur: function(el) {
var name = $(el).attr('name');
switch (name) {
case 'nick':
case 'email':
this.clear_time(name);
$(el).removeClass('selected');
this.check_campo(el, false, true);
break;
default:
$(el).removeClass('selected');
this.check_campo(el, false, true);
break;
}
},Reemplazar por:
Código:
//Un elemento pierde el foco
blur: function(el){
var name = $(el).attr('name');
switch(name){
case 'nick':
case 'referido':
case 'email':
this.clear_time(name);
$(el).removeClass('selected');
this.check_campo(el, false, true);
break;
default:
$(el).removeClass('selected');
this.check_campo(el, false, true);
break;
}
},Buscar:
Código:
/* password */
case 'password':Arriba agregar:
Código:
/* referido by tutan-kabron */
case 'referido':
//Si ya paso por aca y no hubieron cambios, devuelvo el mismo status
if(!force_check && this.datos[campo] === value)
if(this.datos_status[campo]=='empty')
return no_empty ? this.show_status(el, this.datos_status[campo], this.datos_text[campo]) : this.hide_status(el, this.datos_status[campo], this.datos_text[campo]);
else
return this.show_status(el, this.datos_status[campo], this.datos_text[campo]);
//Almaceno el dato
this.datos[campo] = value;
//Caracteres validos
if(/[^a-zA-Z0-9_]/.test(value))
return this.show_status(el, 'error', 'Sólo se permiten letras, nómeros y guiones(_)');
//Compruebo si ya esta en uso
//Compruebo el Cache
var value_lower = value.toLowerCase();
if(!this.cache[campo]){
this.cache[campo] = new Array();
this.cache[campo][value_lower] = new Array();
}else if(this.cache[campo][value_lower]){
if(this.cache[campo][value_lower]['status'])
return registro.show_status(el, 'ok', this.cache[campo][value_lower]['text']);
else
return registro.show_status(el, 'error', this.cache[campo][value_lower]['text']);
}
this.show_status(el, 'loading', 'Comprobando referido...');
$('#loading').fadeIn(250);
$.ajax({
type: 'POST',
url: global_data.url + '/registro-check-referido.php?t=nombre de usuario',
data: 'referido='+value,
success: function(h){
registro.cache[campo][value_lower] = new Array();
registro.cache[campo][value_lower]['text'] = h.substring(3);
switch(h.charAt(0)){
case '0': //Estaba en uso
registro.cache[campo][value_lower]['status'] = true;
registro.show_status(el, 'ok', h.substring(3));
break;
case '1': //No esta en uso
registro.cache[campo][value_lower]['status'] = false;
registro.show_status(el, 'error', h.substring(3));
break;
}
$('#loading').fadeOut(350);
},
error: function(){
registro.show_status(el, 'error', 'Hubo un error al intentar procesar lo solicitado');
registro.datos[campo] = '';
}
});
break;
/* termina campo referido */Buscar:
Código:
/*
getNoticias()
*/
function getNoticias()
{Arriba agregar:
Código:
/*
getReferidos()
*/
function getReferidos()
{
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, r.* from referidos AS r LEFT JOIN u_miembros AS u ON r.user_referido = u.user_name ORDER BY r.id DESC');
$data = result_array($query);
//
return $data;
}
/*
getReferido()
*/
function getReferido()
{
global $tsCore;
//
$id = $tsCore->setSecure($_GET['id']);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id`, `user_name`, `user_referido`, `fecha` FROM referidos WHERE id = \'' .
(int)$id . '\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
//
return $data;
}
/*
deReferidos();
*/
function delReferido()
{
$id = $_GET['id'];
if (!db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id` FROM `referidos` WHERE `id` = \'' .
(int)$id . '\' LIMIT 1'))) {
return 'El id ingresado no existe.';
}
$query = db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `referidos` WHERE `id` = \'' . (int)$id . '\'');
}themes --> default --> templates --> t.admin.tpl
Buscar:
Código:
{/if}Arriba agregar:
Código:
{elseif $tsAction == 'referidos'}
{include file='admin_mods/m.admin_referidos.tpl'}themes --> default --> templates --> admin_mods --> m.admin_configs.tpl
Buscar:
Código:
<dl>
<dt>
<label for="ai_max_com">Comentarios por post:</label>
<br /><span>Número máximo de comentarios por página en los post.</span></dt>
<dd>
<input type="text" id="ai_max_com" name="max_com" style="width:10%" maxlength="3" value="{$tsConfig.c_max_com}" />
</dd>
</dl>Arriba agregar:
Código:
<dl>
<dt><label for="p_p_refs">Puntos por referido</label><br /><span>Puntos que recibira como bonificacion un user al subir un posts.</span></dt>
<dd><input type="text" id="p_p_refs" name="p_p_refs" style="width:10%" maxlength="3" value="{$tsConfig.p_p_refs}" /></dd>
</dl>themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl
Al final agregar esto:
Código:
<h4>Utilidades</h4>
<ul class="cat-list">
<li id="a_users"><span class="cat-title"><a href="{$tsConfig.url}/admin/referidos">Referidos</a></span></li>
</ul>themes --> default --> templates --> modules --> m.perfil_headinfo.tpl
Buscar:
Código:
<li>
<strong>{$tsInfo.stats.user_comentarios}</strong>
<span>Comentarios</span>
</li>Debajo agregar:
Código:
<li>
<strong>{$tsInfo.user_referidos}</strong>
<span>Referidos</span>
</li>Y suben esta carpeta:
Mega
Googe drive
Mediafire
Demo
Us2r3pruebas
sdrfhM?gh567?gbsj
Creditos: Tutan-kabron
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Hola, os dejo el mod actualizado para la versión 1.3, el tutorial vale para cualquier tema, probado en la versión default de Risus y la V6.
Crean esta consulta en la BD
Código:
ALTER TABLE `u_perfil` ADD `user_avatar` VARCHAR( 500 ) NOT NULL AFTER `user_firma` ,ADD `user_pavat` int(1) NOT NULL DEFAULT '1' AFTER `user_avatar` ,ADD `user_act` varchar(2) NOT NULL DEFAULT 'no' AFTER `user_pavat`inc/class/c.admin.php
Buscar:
Código:
'godp' => $_POST['global-darpuntos'],Agregar debajo:
Código:
'goda' => $_POST['global-avatargif'],Buscar otra vez:
Código:
'godp' => $_POST['global-darpuntos'],Agregar debajo:
Código:
'goda' => $_POST['global-avatargif'],Buscar:
Código:
function setUserFirma($user_id)
{
global $tsCore;
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_perfil` SET user_firma = \'' . $tsCore->setSecure($_POST['firma']) .
'\' WHERE user_id = \'' . (int)$user_id . '\''))
return true;
}Agregar debajo:
Código:
function setUserAvatar($user_id = NULL)
{
global $tsCore;
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_perfil` SET user_avatar = \'' . $tsCore->setSecure($_POST['avatar']) .
'\' WHERE user_id = \'' . (int)$user_id . '\''))
return true;
}
function setUserAct($user_id = NULL)
{
global $tsCore;
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_perfil` SET user_act = \'' . $tsCore->setSecure($_POST['act']) .
'\' WHERE user_id = \'' . (int)$user_id . '\''))
return true;
}inc/class/c.cuenta.php
Buscar:
Código:
'firma' => $tsCore->setSecure($tsCore->parseBadWords($_POST['firma']), true),Agregar debajo:
Código:
'avatar' => $tsCore->setSecure($tsCore->parseBadWords($_POST['avatar']), true),
'pavat' => ($_POST['pavat'] == 'n') ? 0 : 1,Buscar:
Código:
p.p_configsAgregar al lado:
Código:
, p.user_avatar, p.user_act, p.user_pavatBuscar:
Código:
user_firmaAgregar al lado:
Código:
, user_avatar, user_act, user_pavatinc/class/c.posts.php
Buscar:
Código:
p.user_firmaAgregar al lado:
Código:
, p.user_avatar, p.user_act, p.user_pavatinc/php/admin.php
Buscar:
Código:
case 8:
if(!empty($_POST['save'])){
$update = $tsAdmin->setUserFirma($user_id);
if($update == 'OK') $tsCore->redirectTo($tsCore->settings['url'].'/admin/users?act=show&uid='.$user_id.'&save=true');
else $smarty->assign("tsError",$update);
}
$smarty->assign("tsUserF",$tsAdmin->getUserData());
break;Agregar debajo:
Código:
case 9:
if(!empty($_POST['save'])){
$update = $tsAdmin->setUserAvatar($user_id);
if($update == 'OK') $tsCore->redirectTo($tsCore->settings['url'].'/admin/users?act=show&uid='.$user_id.'&save=true');
else $smarty->assign("tsError",$update);
}
$smarty->assign("tsUserF",$tsAdmin->getUserData());
break;
case 10:
if(!empty($_POST['save'])){
$update = $tsAdmin->setUserAct($user_id);
if($update == 'OK') $tsCore->redirectTo($tsCore->settings['url'].'/admin/users?act=show&uid='.$user_id.'&save=true');
else $smarty->assign("tsError",$update);
}
$smarty->assign("tsUserF",$tsAdmin->getUserData());
break;themes/default/templates/modules/m.cuenta_cuenta.tpl
Buscar:
Código:
{if $tsConfig.c_allow_firma}
<div class="field">
<label for="firma">Firma:<br /> <small style="font-weight:normal">(Acepta BBCode) Max. 300 car.</small></label>
<textarea name="firma" id="firma" class="cuenta-save-1">{$tsPerfil.user_firma}</textarea>
</div>
{/if}Agregar debajo:
Código:
{if $tsPerfil.user_act== 'si'}{else}
{if $tsUser->is_admod || $tsUser->permisos.goda}
<div class="field">
<label for="avatar">Avatar:<br /> <small style="font-weight:normal">(Podes usar formato <b>gif</b>)</small></label>
<textarea style="height:16px;" name="avatar" id="avatar" value="{$tsPerfil.user_avatar}" class="cuenta-save-1" >{$tsPerfil.user_avatar}</textarea>
</div>
<div class="field">
<label>Activar</label>
<ul class="fields" style="margin-top:7px;">
<li>
<label><input type="radio" value="s" name="pavat" class="radio cuenta-save-1" {if $tsPerfil.user_pavat == '1'}checked="checked"{/if}/>Si</label>
</li>
<li>
<label><input type="radio" value="n" name="pavat" class="radio cuenta-save-1" {if $tsPerfil.user_pavat == '0'}checked="checked"{/if}/>No</label>
</li>
</ul>
</div>
<div class="field">
<img src="{if $tsPerfil.user_avatar==''}{$tsConfig.url}/files/avatar/{$tsPerfil.user_id}_50.jpg{else}{$tsPerfil.user_avatar}{/if}" style="width:50px; height:50px; margin-left:160px;"/>
</div>
{/if}
{/if}themes/default/templates/modules/m.perfil_headinfo.tpl
Buscar:
Código:
{$tsConfig.url}/files/avatar/{if $tsInfo.p_avatar}{$tsInfo.uid}_120{else}avatar{/if}.jpgCambiar por:
Código:
{if $tsInfo.user_act== 'no' && $tsInfo.user_avatar!='' && $tsInfo.user_pavat=='1' && $tsUser->permisos.goda || $tsInfo.user_act== 'no' && $tsUser->uid != $tsInfo.uid && $tsInfo.user_avatar!='' && $tsInfo.user_pavat== '1'|| $tsUser->is_member== false && $tsInfo.user_act== 'no' && $tsInfo.user_avatar!='' && $tsInfo.user_act== '1' }{$tsInfo.user_avatar}{else}{$tsConfig.url}/files/avatar/{if $tsInfo.p_avatar}{$tsInfo.uid}_120{else}avatar{/if}.jpg{/if}themes/default/templates/modules/m.posts_autor.tpl
Buscar:
Código:
{$tsConfig.url}/files/avatar/{$tsAutor.user_id}_120.jpgCambiar por:
Código:
{if $tsAutor.user_act== 'no' && $tsAutor.user_avatar!='' && $tsAutor.user_pavat=='1' && $tsUser->permisos.goda || $tsAutor.user_act== 'no' && $tsAutor.user_id != $tsUser->uid && $tsAutor.user_avatar!='' && $tsAutor.user_pavat== '1'|| $tsUser->is_member== false && $tsAutor.user_act== 'no' && $tsAutor.user_avatar!='' && $tsAutor.user_act== '1' }{$tsAutor.user_avatar}{else}{$tsConfig.url}/files/avatar/{$tsAutor.user_id}_120.jpg{/if}themes/default/templates/admin_mods/m.admin_users.tpl
Buscar:
Código:
<option value="8"{if $tsType == 8} selected="true"{/if}>Firma</option>Agregar debajo:
Código:
<option value="9"{if $tsType == 9} selected="true"{/if}>Editar Avatar</option>
<option value="10"{if $tsType == 10} selected="true"{/if}>Desactivar Avatar</option>Buscar:
Código:
{elseif $tsType == 8}
<legend>Modificar firma de usuario</legend>
<textarea name="firma" rows="3" cols="50">{$tsUserF.user_firma}</textarea>Agregar debajo:
Código:
{elseif $tsType == 9}
<legend>Modificar Avatar</legend>
<input type="text" name="avatar" class="inp-v" value="{$tsUserF.user_avatar}">
{elseif $tsType == 10}
<legend>Desactivar Avatar Permanentemente</legend>
(Ingresar <b>si</b> o <b>no</b> para desactivar avatar)
<br/><br/>
<input type="text" name="act" id="act" value="{$tsUserF.user_act}" class="inp-va" />themes/default/templates/admin_mods/m.admin_rangos.tpl
Buscar:
Código:
<legend>Global</legend>
<input type="checkbox" id="godp" name="global-darpuntos" {if $tsRango.permisos.godp}checked{/if} /><label style="font-weight:bold;" for="godp">Puntuar Posts</label><label for="godp"> Podrán puntuar posts.</label>
<br /><hr>Agregar debajo:
Código:
<input type="checkbox" id="goda" name="global-avatargif" {if $tsRango.permisos.goda}checked{/if} /><label style="font-weight:bold;" for="goda">Avatar Gif</label><label for="goda"> Podrán usar avatar gif.</label>
<br /><hr>themes/default/estilo.css
Agregar al final:
Código:
.inp-v,.inp-van{border:1px solid #999}.inp-v{width:40%;box-shadow:inset 0 0 5px #CCC;-moz-box-shadow:inset 0 0 5px #CCC;-webkit-box-shadow:inset 0 0 5px #CCC;-o-box-shadow:inset 0 0 5px #CCC;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;-o-border-radius:2px}
.inp-van,.inp-vas{color:#FFF;width:5%;text-align:center;font-size:18px;font-weight:700}.inp-van{background:#0F0;box-shadow:inset 0 0 10px green;-moz-box-shadow:inset 0 0 10px green;-webkit-box-shadow:inset 0 0 10px green;-o-box-shadow:inset 0 0 10px green;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;-o-border-radius:4px}
.inp-vas{background:#900;box-shadow:inset 0 0 10px red;-moz-box-shadow:inset 0 0 10px red;-webkit-box-shadow:inset 0 0 10px #FFO000;-o-box-shadow:inset 0 0 10px red;border:1px solid #999;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;-o-border-radius:4px}Creditos: Vellenger
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Ejecutar las siguientes consultas (una por una):
Código:
ALTER TABLE `u_miembros` ADD `user_karma` TINYINT( 4 ) NOT NULLCódigo:
ALTER TABLE `w_configuracion` ADD `c_karma_settings` ENUM( '1', '2' ) NOT NULLCódigo:
CREATE TABLE IF NOT EXISTS `u_karma_votes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`vote` enum('1','2') NOT NULL,
`ip` varchar(16) NOT NULL,
`user` int(10) unsigned NOT NULL,
`user_to` int(10) unsigned NOT NULL,
`time` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;Abrir c.admin en inc/class
Buscar:
Código:
'sump' => empty($_POST['sump']) ? 0 : 1,Debajo agregar:
Código:
'karma' => ($_POST['karma_opt'] != '1' && $_POST['karma_opt'] != '2' ? '1' : $_POST['karma_opt']),Buscar:
Código:
, `offline_message` = \'' . $c['offline_message'] . '\'Al lado agregar:
Código:
, `c_karma_settings` = \'' . $c['karma'] . '\'Abrir c.user.php en inc/class
Buscar:
Código:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
// MANEJAR SESSIONES \\Arriba agregar:
Código:
function userKarma()
{
global $tsCore;
// sólo usuarios logueados
if (!$this->uid)
return false;
// comprobación de variables
if (!ctype_digit($_POST['karma']) || ($_POST['karma'] != '1' && $_POST['karma'] != '2') || !ctype_digit($_POST['uid']))
return 'Error provocado';
// comprobamos que no se de karma a sí mismo
if ($_POST['uid'] == $this->uid)
return 'No es posible darte puntos de karma a ti mismo';
//si está la opción 2 en la configuración del karma, no se podrá dar votos negativos, comprobamos eso:
if ($_POST['karma'] == '2' && $tsCore->settings['c_karma_settings'] == '2')
return 'Sólo votos positivos';
// el usuario existe?
if(db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT user_id FROM u_miembros WHERE user_id = \'' . $_POST['uid'] . '\'')))
return 'El usuario no existe';
// comprobamos clones
if(db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT id FROM u_karma_votes WHERE (user = \''.$this->uid.'\' || ip = \''.$tsCore->getIP().'\') && time > \''.(time() - 3600).'\' && user_to = \''.$_POST['uid'].'\'')))
return 'Debes esperar una hora para poder volver a votar a ese usuario';
// pasó por acá y todo bien? actualizamos karma y guardamos voto
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_karma = user_karma ' . ($_POST['karma'] == '2' ? '-' : '+') . ' 1 WHERE user_id = \'' . $_POST['uid'] . '\' LIMIT 1');
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO u_karma_votes (user, ip, user_to, vote, time) VALUES (\'' . $this->uid . '\', \'' . $tsCore->getIP() . '\', \'' . $_POST['uid'] . '\', ' . ($_POST['karma'] == '2' ? '2' : '1') . ', \'' . time() . '\')');
//
return '1';
}Abrir c.posts.php en inc/class
Buscar:
Código:
// 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.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');reemplazar por
Código:
// 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.user_firma, u.user_karma 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');Añadido:
Código:
, u.user_karmaAbrir c.cuenta.php en inc/class
Buscar:
Código:
// 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.'\'');reemplazar por:
Código:
// INFORMACION GENERAL
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_karma, 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.'\'');Añadido:
Código:
, u.user_karmaAbrir ajax-posts.php que está en inc/php/ajax
Buscar:
Código:
case 'posts-last-comentarios':
//<--
$smarty->assign("tsComments",$tsPosts->getLastComentarios());
//-->
break;Debajo agregar:
Código:
case 'posts-user-karma':
//<!--
echo $tsUser->userKarma();
//<--
break;Abrir m.perfil_headinfo.tpl que está en themes/tutheme/templates/modules
Buscar:
Código:
<li>
<strong>{$tsInfo.stats.user_fotos}</strong>
<span>Fotos</span>
</li>Debajo agregar:
Código:
<li>
<strong>{$tsInfo.user_karma}</strong>
<span>Karma</span>
</li>Abrir m.posts_autor.tpl que está en themes/tutheme/templates/modules
Buscar:
Código:
<span style="color: #456c00" class="nData">{$tsAutor.user_comentarios}</span>
<span class="txtData">Comentarios</span>
</div>Debajo agregar:
Código:
<hr class="divider"/>
Karma: <b><div id="uKarma">{$tsAutor.user_karma}</div></b>
<div id="karmaOpts" style="display:inline;">
<a onclick="users_karma({$tsAutor.user_id}, 1)" title="Dar voto positivo"><img src="{$tsConfig.tema.t_url}/images/rep_up.png"></a>
{if $tsConfig.c_karma_settings == 1}
<a onclick="users_karma({$tsAutor.user_id}, 2)" title="Dar voto negativo"><img src="{$tsConfig.tema.t_url}/images/rep_down.png"></a>
{/if}
</div>Abrir acciones.js que está en /themes/tutheme/js/
Buscar:
Código:
function actualizar_comentarios(cat, nov){
$('#loading').fadeIn(250);
$('#ult_comm, #ult_comm > ol').slideUp(150);
$.ajax({
type: 'GET',
url: global_data.url + '/posts-last-comentarios.php',
cache: false,
data: 'cat='+cat+'&nov='+nov,
success: function(h){
$('#ult_comm').html(h);
$('#ult_comm > ol').hide();
$('#ult_comm, #ult_comm > ol:first').slideDown( 1500, 'easeInOutElastic');
$('#loading').fadeOut(350);
//$('#ult_comm, #ult_comm > ol:first').slideDown({duration: 'slow', easing: 'easeOutBack'});
// La animación easeOutBack me pareció buena, la otra también o.O aunque easeInOutElastic se ve raro con tantas letras.
},
error: function(){
$('#ult_comm, #ult_comm > ol:first').slideDown({duration: 1000, easing: 'easeOutBounce'});
$('#loading').fadeOut(350);
// Esta animación se usaba anteriormente en caso de que saliese bien, puede volver a utilizarse.
}
});
}Debajo agregar:
Código:
/* Karma V1 - By Alan - [SPAM_EXT_BLOQUEADA] */
function users_karma(uid, vote){
if(!uid || !vote) return false;
$('#loading').fadeIn(250);
$.post(global_data.url + '/posts-user-karma.php', 'uid=' + uid + '&karma=' + vote, function(olakease){
if(olakease != '1'){
mydialog.alert('Error', olakease);
} else {
var uKarma = parseInt($('#uKarma').text());
if(vote == '1'){
$('#uKarma').text(++uKarma);
} else {
$('#uKarma').text(--uKarma);
}
$('#karmaOpts').fadeOut('slow');
$('#loading').fadeOut(350);
}
});
}Abrir m.admin_configs.tpl en themes/default/templates/admin_mods
Buscar:
Código:
<dl>
<dt>
<label for="ai_met_welcome">Mensaje de Bienvenida:</label>
<br /><span id="desc_message_welcome" {if $tsConfig.c_met_welcome==0 }style="display:none;" {/if}> <br /> [usuario] => Nombre del registrado <br /> [welcome] => Bienvenido/a depende del sexo <br /> [web] => Nombre de esta web <br /> <br />(Se aceptan BBCodes y Smileys)</span></dt>
<dd>
<select id="ai_met_welcome" name="met_welcome" style="width: 266px;" class="select" {if $tsConfig.c_met_welcome==0 } onchange="if($('#ai_met_welcome').val() != 0) $('textarea[name=message_welcome]').slideDown(); $('#desc_message_welcome').slideDown();" {/if}>
<option value="0" {if $tsConfig.c_met_welcome==0 }selected{/if}>No dar bienvenida</option>
<option value="1" {if $tsConfig.c_met_welcome==1 }selected{/if}>Muro</option>
<option value="2" {if $tsConfig.c_met_welcome==2 }selected{/if}>Mensaje privado</option>
<option value="3" {if $tsConfig.c_met_welcome==3 }selected{/if}>Aviso</option>
</select>
<br />
<textarea name="message_welcome" id="ai_met_welcome" style="width: 260px; height: 100px; {if $tsConfig.c_met_welcome == 0} display:none; {/if}">{$tsConfig.c_message_welcome}</textarea>
</dd>
</dl>Debajo agregar:
Código:
<dl>
<dt>
<label for="ai_karma_opt">Mod Karma:</label><br /><span> <br /> [Mostrar ambas opciones] => Permite dar karma positivo y negativo <br /> [Sólo karma positivo] => Sólo se podrá dar karma positivo</span>
</dt>
<dd>
<select id="ai_karma_opt" name="karma_opt" style="width: 266px;" class="select">
<option value="1"{if $tsConfig.c_karma_settings == 1} selected{/if} >Mostrar ambas opciones</option>
<option value="2"{if $tsConfig.c_karma_settings == 2} selected{/if} >Sólo karma positivo</option>
</select>
</dd>
</dl>Y subir imágenes rep_up.png y rep_down.png a themes/tutheme/images/
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Creditos: Alan
[img]Registrate o inicia tu sesión para ver este contenido[/img]
En c.posts.php --> inc --> class --> c.posts.php antes de:
Código:
}Agregar arriba:
Código:
/*
getUltreg()
*/
function getUltreg(){
global $tsCore;
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_baneado, p.user_id, p.user_pais, v.pid, v.p_opcion, v.p_prefijo, v.p_img FROM u_miembros AS u LEFT JOIN u_perfil AS p ON u.user_id = p.user_id LEFT JOIN u_paises AS v ON v.p_prefijo = p.user_pais WHERE u.user_baneado = 0 AND v.pid > 0 ORDER BY u.user_id 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;
}En posts.php --> inc --> php --> posts.php
Buscar:
Código:
// DO <= PARA EL MENU
$smarty->assign("tsDo",$_GET['do']);Debajo agregar:
Código:
// ULTIMOS REGISTRADOS
$smarty->assign("tsUltreg",$tsPosts->getUltreg());extras --> themes --> default --> extras.css al final agregar:
Código:
#ultregvell{width:198px;height:auto;margin-bottom:5px;overflow:hidden}
ul.ultregvell{background:#fff;border:1px solid #ccc;border-top:none;padding-bottom:10px}
ul.ultregvell li{display:block;border-bottom:1px dashed #ccc;padding:5px 0 5px 5px}
ul.ultregvell li:hover{background:#f8f8f8}
ul.ultregvell li a{color:#666;text-decoration:none;position:absolute;margin:-3px 5px 2px 5px}
ul.ultregvell li span{color:#666;position:absolute;margin:-12px 0 0 24px}
.regpais{float:right;margin-right:10px;cursor:pointer}
.regimg{width:20px;height:20px}En t.home.tpl --> themes --> default --> templates --> t.home.tpl
Buscar:
Código:
{if $tsConfig.c_fotos_private == 1 && !$tsUser->is_member}
{else}
{include file='modules/m.home_fotos.tpl'}
{/if}Agregar arriba:
Código:
{include file='modules/m.home_ultimos_registrados.tpl'}Importar la tabla tabla u_paises a la base de datos y subir la 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
[img]Registrate o inicia tu sesión para ver este contenido[/img]
En c.registro.php --> inc --> class --> c.registro.php
Buscar:
Código:
// INSERTAMOS EL PERFIL
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_perfil` (`user_id`, `user_dia`, `user_mes`, `user_ano`, `user_pais`, `user_estado`, `user_sexo`) VALUES (\''.(int)$tsData['user_id'].'\', \''.(int)$tsData['user_dia'].'\', \''.(int)$tsData['user_mes'].'\', \''.(int)$tsData['user_anio'].'\', \''.$tsCore->setSecure($tsData['user_pais']).'\', \''.$tsCore->setSecure($tsData['user_estado']).'\', \''.(int)$tsData['user_sexo'].'\')');
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_portal` (`user_id`) VALUES (\''.$tsData['user_id'].'\')');Debajo agregar:
Código:
/////////////////////AVATAR ALEATORIO/////////////////////
$number=rand(1,22);
$name=$number.'.jpg';
$namemini=$number.'_50.jpg';
copy('../../files/avatar/avatarregistro/'.$name.'','../../files/avatar/'.$tsData['user_id'].'_120.jpg');
copy('../../files/avatar/avatarregistro/mini/'.$namemini.'','../../files/avatar/'.$tsData['user_id'].'_50.jpg');
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_perfil SET p_avatar= 1 WHERE user_id = \''.$tsData['user_id'].'\'');
////////////////FIN ALEATORIO/////////////En c.posts.php --> inc --> class --> c.posts.php al final antes de la ultima:
Código:
}Agregar arriba:
Código:
/*
Últimos Usuarios Live
*/
function getLastUS(){
global $tsCore;
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT user_id, user_name, user_registro, user_activo FROM u_miembros WHERE user_activo= \'1\' AND user_baneado= \'0\' ORDER BY user_id DESC LIMIT 5');
if(!$query) exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$data = result_array($query);
//
return $data;
}
function lastRegistered(){
global $tsCore;
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT user_registro, user_name, user_id FROM u_miembros WHERE user_baneado = 0 AND user_activo = 1 ORDER BY user_id DESC LIMIT 1');
$data = db_exec('fetch_assoc', $query);
$data['new_user'] = '<ul class="ult-reg"><li><a href="/perfil/'.$data['user_name'].'"><img class="hovercard" uid="'.$data['user_id'].'" src="/files/avatar/'.$data['user_id'].'_50.jpg"/></a><a class="lreg" href="/perfil/'.$data['user_name'].'">'.$data['user_name'].'</a> <b>Hace unos segundos</b></li></ul>';
return json_encode($data);
}En posts.php --> inc --> php --> posts.php
Buscar:
Código:
// DO <= PARA EL MENU
$smarty->assign("tsDo",$_GET['do']);Debajo agregar:
Código:
$smarty->assign("tsUlt",$tsPosts->getLastUs());En ajax.comentario.php --> inc --> php --> ajax --> ajax.comentario.php
Buscar:
Código:
case 'comentario-pages':Arriba agregar:
Código:
case 'comentario-last-registered':
echo $tsPosts->lastRegistered();
break;
//-->En t.home.tpl --> themes --> default --> templates --> t.home.tpl
Buscar:
Código:
{if $tsConfig.c_fotos_private == 1 && !$tsUser->is_member}
{else}
{include file='modules/m.home_fotos.tpl'}
{/if}Arriba agregar:
Código:
{include file='modules/m.home_ultimos_registrados.tpl'}En extras --> themes --> default --> extras.css al final agregar:
Código:
.lastregvell{height:auto;padding:5px;margin-bottom:10px;border:1px solid #ccc;border-radius:5px;overflow:hidden}
.lastregvell h2{margin:10px;font-size:12px;border-bottom:1px dashed #ccc;background:url(images/status.png) no-repeat;background-position:155px 0}
.lastregvell b{font-weight:300;margin:20px 0 0 5px;position:absolute;color:#666;float:left}
.lreg{position:absolute;float:left;margin-left:5px}
ul.ult-reg li{display:block;border-bottom:1px solid #ccc;padding:5px 0 2px 5px;cursor:pointer;background:#f8f8f8}
ul.ult-reg li a{font-weight:700}ul.ult-reg li a img{padding:1px;border:1px solid #eee;width:38px;height:38px}
ul.ult-reg li:hover{background:#eee}
ul.ult-reg li b{font-weight:300;margin:20px 0 0 5px;position:absolute;color:#666;float:left}Mega
Google Drive
Mediafire
Greditos: Vellenger
[img]Registrate o inicia tu sesión para ver este contenido[/img]
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
Código:
/*
getRelated()
*/Arriba agregar:
Código:
/*
Postautor($user_id)
*/
function Postautor($user_id = NULL){
global $tsUser;
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.post_id, 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_user = \''.(int)$user_id.'\' AND p.post_id <> \''.(int)intval($_GET['post_id']).'\' ORDER BY p.post_date DESC LIMIT 10');
$data['posts'] = result_array($query);
return $data;
}En posts.php --> inc --> php --> posts.php
Buscar:
Código:
// DATOS DEL AUTOR
$smarty->assign("tsAutor",$tsPosts->getAutor($tsPost['post_user']));Debajo agregar:
Código:
$smarty->assign("tsPostautor",$tsPosts->Postautor($tsPost['post_user']));En t.posts.tpl --> themes --> default --> templates --> t.posts.tpl
Buscar:
Código:
{include file='modules/m.posts_banner.tpl'}Reemplazar por:
Código:
{include file='modules/m.posts_mas_autor.tpl'}En m.posts_related.tpl --> themes --> default --> templates --> modules --> m.posts_related.tpl
Código:
<div class="post-relacionados">Por:
Código:
<div class="post-relacionados" style="width:370px;">Y subir esta carpeta
Mega
Google Drive
Mediafire
Greditos: Kmario19
Capturas
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Ejecutar esta consulta
Código PHP:
ALTER TABLE w_configuracion ADD `puntosxr` int(1) NOT NULL DEFAULT '0';
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
Código PHP:
'offline_message' => $tsCore->setSecure($tsCore->parseBadWords($_POST['offline_message'])),
Debajo agregar:
Código PHP:
'puntosxr' => empty($_POST['puntosxr']) ? 0 : 1,
Buscar:
Código PHP:
'\', `offline_message` = \'' . $c['offline_message'] .
Al lado agregar:
Código PHP:
'\', `puntosxr` = \'' . $c['puntosxr'] .
Buscar:
Código PHP:
'gopfd' => $_POST['global-pointsforday']);
Arriba agregar:
Código PHP:
'gopxr' => $_POST['global-poinxrangos'],
Buscar otra vez:
Código PHP:
'gopfd' => $_POST['global-pointsforday']);
Arriba agregar:
Código PHP:
'gopxr' => $_POST['global-poinxrangos'],
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
Código PHP:
$postID = db_exec('insert_id');
Debajo agregar:
Código PHP:
if($tsCore->settings['puntosxr'] == 1) db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$postData['puntosx'].'\' WHERE user_id = \''.(int)$tsUser->uid.'\'');
Buscar:
Código PHP:
'category' => intval($_POST['categoria']),
Debajo agregar:
Código PHP:
'puntosx' => $tsCore->setSecure($_POST['puntosx']),
En agregar.php --> inc --> php --> agregar.php
Buscar:
Código PHP:
if($tsPost > 0) {
Debajo agregar:
Código PHP:
$tsPtsx = (int)$_POST['puntosx'];
Buscar:
Código PHP:
$smarty->assign("tsAviso",array('titulo' => 'Bien!', 'mensaje' => 'El post <b>'.$_POST['titulo'].'</b> fue agregado. '.(!$tsUser->is_admod && ($tsUser->permisos['gorpap'] == true || $tsCore->settings['c_desapprove_post'] == 1) ? 'Deberá esperar su aprobación' : '').' ', 'but' => 'Acceder al post', 'link' => "{$tsCore->settings['url']}/posts/{$tsCat['c_seo']}/$tsPost/{$tsCore->setSEO($_POST['titulo'])}.html"));
Reemplazar por:
Código PHP:
if ($tsCore->settings['puntosxr'] ==0){$smarty->assign("tsAviso",array('titulo' => 'Bien!', 'mensaje' => 'El post <b>'.$_POST['titulo'].'</b> fue agregado. '.(!$tsUser->is_admod && ($tsUser->permisos['gorpap'] == true || $tsCore->settings['c_desapprove_posts'] == 1) ? 'Deberá esperar su aprobación' : '').' ', 'but' => 'Acceder al post', 'link' => "{$tsCore->settings['url']}/posts/{$tsCat['c_seo']}/$tsPost/{$tsCore->setSEO($_POST['titulo'])}.html"));}
else{$smarty->assign("tsAviso",array('titulo' => 'Bien!', 'mensaje' => "El post <b>".$_POST['titulo']."</b> fue agregado.<br/> <i>Has recibido una bonificación de: <blink><b style='color:#00CCFF;'>$tsPtsx</b></blink> Puntos.</i>".(!$tsUser->is_admod && ($tsUser->permisos['gorpap'] == true || $tsCore->settings['c_desapprove_posts'] == 1) ? 'Deberá esperar su aprobación' : '').' ', 'but' => 'Acceder al post', 'link' => "{$tsCore->settings['url']}/posts/{$tsCat['c_seo']}/$tsPost/{$tsCore->setSEO($_POST['titulo'])}.html"));}
En m.agregar_form.tpl --> themes --> default --> templates --> modules --> m.agregar_form.tpl
Buscar:
Código PHP:
<li>
<label>Tags</label>
<span style="display: none;" class="errormsg"></span>
<input type="text" tabindex="4" name="tags" maxlength="128" class="text-inp required" value="{$tsDraft.b_tags}"/>
Una lista separada por comas, que describa el contenido. Ejemplo: <b>gol, ingleses, Copa Oro, futbol, Chicharito, México</b>
</li>
Debajo agregar:
Código PHP:
<li><input type="hidden" tabindex="4" name="puntosx" maxlength="4" value="{$tsUser->permisos.gopxr}"/></li>
En m.admin_configs.tpl --> themes --> default --> templates --> admin_mods --> m.admin_configs.tpl
Buscar:
Código PHP:
<dl>
<dt>
<label for="ai_chat">Chatango ID:</label>
<br /><span>Por defecto puedes agregar un chat de <a href="Registrate o inicia tu sesión para ver este contenido">Chatango</a> para tu web, solo crea tu grupo he ingresa el nombre. (Dejar vacío para usar xat)</span></dt>
<dd>
<input type="text" id="ai_chat" name="chat" maxlength="20" value="{$tsConfig.chat_id}" /> </dd>
</dl>
Arriba agregar:
Código PHP:
<dl>
<dt><label for="ai_puntosxr">Activar Puntos por posts:</label><br /><span>Aquí podrás activar o desactivar bonificaciones de puntos por posts.</span></dt>
<dd>
<label><input name="puntosxr" type="radio" id="puntosxr" value="1" {if $tsConfig.puntosxr == 1}checked="checked"{/if} class="radio"/>Sí</label>
<label><input name="puntosxr" type="radio" id="puntosxr" value="0" {if $tsConfig.puntosxr != 1}checked="checked"{/if} class="radio"/>No</label>
</dd>
</dl>
En m.admin_rangos.tpl --> themes --> default --> templates --> admin_mods --> m.admin_rangos.tpl
Buscar:
Código PHP:
<dl>
<dt><label for="goaf">Anti-flood</label><br /><span>Tiempo que deben esperar entre acción.</span></dt>
<dd><input type="text" id="goaf" name="global-antiflood" value="{$tsRango.permisos.goaf}" style="width:30%"/></dd>
</dl>
Debajo agregar:
Código PHP:
<dl>
<dt><label for="gopxr">Puntos adicionales.</label><br /><span>Puntos de bonificación en cada post.</span></dt>
<dd><input type="text" id="gopxr" name="global-poinxrangos" value="{$tsRango.permisos.gopxr}" style="width:30%"/></dd>
</dl>
Importante....!!!!
- Si desactivan la opción en la admin en configuraciones no sumaran valores.
- Deben de darle valores a cada rango en admin/rangos por separado.
- NO deberán dejar campo vacío o de valor " 0 ".
- Valor mínimo " 1 ".
Creditos:
http://Registrate o inicia tu sesión par... contenido
Default
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
V5
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
V6
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Ejecutar esta consulta
Código:
ALTER TABLE `p_posts` ADD `p_fuente` VARCHAR( 255 ) NOT NULLEn c.post.php --> inc --> class --> c.post.php
Buscar:
Código PHP:
$postData['private'] = empty($_POST['privado']) ? 0 : 1;
Debajo agregar:
Código PHP:
$postData['fuente'] = isset($_POST['font']) ? 'author' : $tsCore->setSecure($_POST['fuente']);
Buscar:
Código PHP:
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 (\''.$postData['portada'].'\', \''.$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:
Código PHP:
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, p_fuente) 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\'').',\''.$postData['fuente'].'\')')) {
Añadido:
Código PHP:
, p_fuente
Código PHP:
',\''.$postData['fuente'].'\
Buscar:
Código PHP:
$postData['private'] = empty($_POST['privado']) ? 0 : 1;
Debajo agregar:
Código PHP:
$postData['fuente'] = isset($_POST['font']) ? 'author' : $tsCore->setSecure($_POST['fuente']);
Buscar:
Código PHP:
if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_title = \''.$postData['title'].'\', post_body = \''.$postData['body'].'\', post_tags = \''.$tsCore->setSecure($postData['tags']).'\', post_category = \''.(int)$postData['category'].'\', post_private = \''.$postData['private'].'\', post_block_comments = \''.$postData['block_comments'].'\', post_sponsored = \''.$postData['sponsored'].'\', post_smileys = \''.$postData['smileys'].'\', post_visitantes = \''.$postData['visitantes'].'\', post_sticky = \''.$postData['sticky'].'\' WHERE post_id = \''.(int)$post_id.'\'') or exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') )) {
Reemplazar por:
Código PHP:
if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_title = \''.$postData['title'].'\', post_body = \''.$postData['body'].'\', post_tags = \''.$tsCore->setSecure($postData['tags']).'\', post_category = \''.(int)$postData['category'].'\', post_private = \''.$postData['private'].'\', post_block_comments = \''.$postData['block_comments'].'\', post_sponsored = \''.$postData['sponsored'].'\', post_smileys = \''.$postData['smileys'].'\', post_visitantes = \''.$postData['visitantes'].'\', post_sticky = \''.$postData['sticky'].'\', p_fuente = \''.$postData['fuente'].'\' WHERE post_id = \''.(int)$post_id.'\'') or exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') )) {
Añadido:
Código PHP:
, p_fuente = \''.$postData['fuente'].'\'
En m.agregar_form.tpl --> themes --> default --> templates --> modules --> m.agregar_form.tpl
Buscar:
Default
Código PHP:
<li>
<label>Tags</label>
<span style="display: none;" class="errormsg"></span>
<input type="text" tabindex="4" name="tags" maxlength="128" class="text-inp required" value="{$tsDraft.b_tags}"/>
Una lista separada por comas, que describa el contenido. Ejemplo: <b>gol, ingleses, Copa Oro, futbol, Chicharito, México</b>
</li>
Debajo agregar:
Código PHP:
<li>
<label>Fuente</label>
<span style="display: none;" class="errormsg"></span>
<input type="text" tabindex="4" name="fuente" maxlength="250" class="text-inp required" value="URL de la fuente..."/>
<input type="checkbox" name="font" checked="checked"><b>Contenido Propio</b> La información del post es de mi autoría, no utilicé contenido de terceros.
</li>
V5
Código PHP:
<li>
<a name="post"></a>
<div class="titular">
<h2 style="background: #eee;">Contenido del Post</h2>
</div>
<span style="display: none;" class="errormsg"></span>
<textarea id="markItUp" name="cuerpo" tabindex="2" style="min-height:300px;" class="required">{$tsDraft.b_body}</textarea>
<div class="imotin">
{include file='modules/m.global_emoticons.tpl'}
</div>
</li>
Debajo agregar:
Código PHP:
<li>
<div class="titular">
<h2 style="background: #eee;">Fuente</h2>
</div>
<span style="display: none;" class="errormsg"></span>
<input type="text" tabindex="4" name="fuente" maxlength="250" class="text-inp required" value="URL de la fuente..."/>
<b style="margin-left: 5px;"><input type="checkbox" name="font" checked="checked"><b>Contenido Propio</b> La información del post es de mi autoría, no utilicé contenido de terceros.</p>
</li>
V6
Código:
<li class="special-right *****">
<label><span></span>Categoría</label>
<span style="display: none;" class="errormsg"></span>
<select class="incube required" tabindex="3" name="categoria">
<option value="" selected="selected">Seleccionar categoría</option>
{foreach from=$tsConfig.categorias item=c}
<option value="{$c.cid}" {if $tsDraft.b_category == $c.cid}selected="selected"{/if}>{$c.c_nombre}</option>
{/foreach}
</select>
</li>Debajo agregar:
Código:
<li id="tagsfox">
<label>Fuente</label>
<span style="display: none;" class="errormsg"></span>
<input type="text" tabindex="4" name="fuente" maxlength="250" class="text-inp required" value="URL de la fuente..." style="width: 298px;"/>
<p><input type="checkbox" name="font" checked="checked"><b style="margin-left: 5px;">Contenido Propio</b> La información del post es de mi autoría, no utilicé contenido de terceros.</p>
</li>Default
m.post_metadata.tpl --> themes --> default --> templates --> modules --> m.post_metadata.tpl
Buscar:
Código PHP:
{foreach from=$tsPost.post_tags key=i item=tag}
<a rel="tag" href="{$tsConfig.url}/buscador/?q={$tag|seo}&e=tags">{$tag}</a> {if $i < $tsPost.n_tags}-{/if}
{/foreach}
Debajo agregar:
Código PHP:
<br /><br /><span class="icons tags_title">Fuente:</span>
{if $tsPost.p_fuente!='author' && $tsPost.p_fuente}<a rel="tag" href="{$tsPost.p_fuente}">{$tsPost.p_fuente}</a>{else}Este post es de autoría propia{/if}
V5
En m.posts_tags.tpl --> themes --> default --> templates --> modules --> m.posts_tags.tpl
Arriba de:
Código:
<div class="tagbox">Agregar:
Código PHP:
<div class="fuente">
<div class="titular"><h2>Fuente</h2></div>
<b>{if $tsPost.p_fuente!='author' && $tsPost.p_fuente}<a rel="tag" href="{$tsPost.p_fuente}">{$tsPost.p_fuente}</a>{else}Este post es de autoría propia{/if}</b>
</div>
themes --> default --> taringa.css
Buscar:
Código:
.tagbox {
padding: 10px;
}Cambiar por:
Código:
.tagbox, .fuente {
padding: 10px;
}V6
En m.posts_content.tpl --> themes --> default --> templates --> modules --> m.posts_content.tpl
Arriba de:
Código PHP:
{/if}
{include file='modules/m.posts_tags.tpl'}
Agregar:
Código PHP:
<fieldset style="margin-top: 15px;padding: 10px;border-radius: 2px;opacity: 0.8;border: none;margin-bottom: 20px;color: #fff;background-image: linear-gradient(to top, #1a1b1f, #212528);text-align: center;">
<legend style="margin-left: 1.2em; border: 1px #222 solid;background: #2f2f2f;width: 120px;font-weight: bold;padding: 2px 6px;margin-top: 10px;color: #fff;border-top-left-radius: 50% 25%;border-top-right-radius: 50% 25%;display: inline-block;text-align: center;font-size: 14px;background-image: linear-gradient(to top, #1a1b1f, #212528);"><i class="fas fa-external-link-alt" aria-hidden="true" style="color: #25c2f5;"></i> Fuente</legend>
{if $tsPost.p_fuente!='author' && $tsPost.p_fuente}<a rel="tag" href="{$tsPost.p_fuente}">{$tsPost.p_fuente}</a>{else}Este post es de autoría propia{/if}
</fieldset>
Creditos: alexander1712

