¿Ya tienes cuenta? Inicia sesión aquí
-
Cómo funcionan las Mision...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
Ayer, 09:46 PM
» Respuestas: 0
» Vistas: 56 -
V6 Original/Dark/Memes (A...
Foro: Diseños Terminados
Último mensaje por: carlos007r
Ayer, 11:08 AM
» Respuestas: 26
» Vistas: 6,335 -
V5
Foro: Diseños Terminados
Último mensaje por: Aeikox
06-13-2026, 12:16 AM
» Respuestas: 8
» Vistas: 1,447 -
Risus 1.3 Actualizado jQu...
Foro: Risus 1.3
Último mensaje por: Tronlar
06-12-2026, 10:45 PM
» Respuestas: 55
» Vistas: 10,660 -
Preguntas Frecuentes y So...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 06:17 PM
» Respuestas: 0
» Vistas: 56 -
Cómo registrar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 05:32 PM
» Respuestas: 0
» Vistas: 50 -
Cómo monetizar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 07:19 PM
» Respuestas: 0
» Vistas: 50 -
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: 82
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
Demo
http://Registrate o inicia tu sesión par... contenido
userpruebass2
1234567p
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
'gopfd' => $_POST['global-pointsforday']);
Arriba agregar:
'goved' => $_POST['global-envivo'],
Buscar:
'gopfd' => $_POST['global-pointsforday']);
Arriba agregar:
'goved' => $_POST['global-envivo'],
En m.admin_rangos.tpl --> themes --> default --> templates --> admin_mods --> m.admin_rangos.tpl
Buscar:
<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>
Debajo agregar:
<input type="checkbox" id="goved" name="global-envivo" {if $tsRango.permisos.goved}checked{/if} /><label style="font-weight:bold;" for="goved">Actividades en Vivo</label><label for="goved"> Podrán Ver todas las actividades.</label>
<br /><hr>
En m.home.stats.tpl --> themes --> default --> templates --> modules --> m.home.stats.tpl
Buscar:
</tr>
</table>
Debajo agregar:
<div style="text-align:center;font-weight:bold;padding:3px;background:#CECECE;margin-top:5px">
<a href="/envivo/" style="display:block">{$tsConfig.titulo}! en vivo</a>
</div>
En extras.css --> themes --> default --> extras.css
Al final agregar:
#v-al{overflow: hidden;min-height: 600px;}
.content-v{width:630px;height:900px;background:transparent;float:left;}
.content-v h1{font-weight:bold;font-size:23px;font-family: Georgia;margin-bottom:3px;}
.content-v ul{background: #d6dee8;overflow: hidden;color: #a32125;text-align: left;text-transform: uppercase;border-bottom: 1px solid #004a95;}
.content-v ul li{display:inline-block;padding:8px;color:#576b86;text-transform: uppercase;font-weight:600;font-size:12px;font-family: Arial;}
.content-l{background:#FFF;width:300px;height:900px;overflow: hidden; float:right;}
.content-l h3{font-weight:600;font-size:16px;margin-left:18px;margin-top:-4px;}
.content-l h1{font-weight:600;font-size:18px;margin-left:18px;margin-top:7px;}
.content-l ul{/*! margin-left:20px; */color: #333333;font-size: 11px;font-weight: bold;padding-bottom: 2px;border-bottom: 1px solid #E1E1E1;}
.content-l ul li{display:block;padding:4px 0 4px 0;color:#9698A5;cursor:pointer;border-bottom:1px solid #F8F8F8;transition:all 0.5s linear;-webkit-transition:all 0.5s linear;-moz-transition:all 0.5s linear;-o-transition:all 0.5s linear;}
.content-l ul li:hover{background:#EEE;}
.vcont{background:#fff;overflow:hidden;}
.v-us{float:left;}
.v-ti{margin-left:130px;}
.v-ac{margin-left:40px;}
.v-marque{height:800px;background:#EEE;}
.v-marque ol li{width:100%;height:20px;background:#EEE;display:block;color:#788188;font-weight:600;}
.hr-v-m{height:1px;background:#CCC;box-shadow:2px 2px 2px #FFF;}
.v-us-mar{width:100px;padding: 8px;margin-left:8px}
.v-acc-mar{width:190px;margin-left:110px;margin-top:-22px;font-weight:bold;color:#666;}
.v-tit-mar{width:330px;margin-left:300px;margin-top:-16px;}
.v-tit-mar a{text-decoration:none;color:#788188;font-weight:600;}
.wiroos-v{position:absolute;margin-left:539px;margin-top:-38px;}
.check-v{margin-left:10px;}
.content-l span{margin-left:3px;}
.coun-vellenger{float:right;margin-right:10px;margin-top:-20px;}
.permisos-v{font-weight:bold;font-size:20px; text-align:center;}
Y subir esta carpeta
Mega
Google Drive
Mediafire
Creditos: Lucho y Vellenger
En c.afiliados.php --> inc --> class --> c.afiliados.php
Al final antes de la última llave } agregar:
/*
Cumpleaños by kmario19
*/
function getBirthday(){
global $tsUser, $tsCore;
// ZONA HORARIA
date_default_timezone_set("Europe/Madrid");
// TIEMPO
$mes = date("m",time());
$dia = date("d",time());
$ano = date("Y",time());
// DATOS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, p.user_ano FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = p.user_id AND u.user_baneado = 0 AND p.user_mes = \''.$mes.'\' AND p.user_dia = \''.$dia.'\'');
$data['data'] = result_array($query);
// TOTAL
$data['total'] = count($data['data']);
// AÑO ACTUAL
$data['ano'] = $ano;
// RETORNO
return $data;
}
Reemplazar ("Europe/Madrid"); por vuestra zona horaria
En posts.php --> inc --> php --> posts.php
Buscar:
// AFILIADOS
$smarty->assign("tsAfiliados",$tsAfiliado->getAfiliados());
Debajo agregar:
// CUMPLEAÑOS
$smarty->assign("tsBirthday",$tsAfiliado->getBirthday());
En t.home.tpl --> themes --> default --> templates --> t.home.tpl
Buscar:
{include file='modules/m.home_afiliados.tpl'}
Debajo agregar:
{if $tsBirthday.data}
{include file='modules/m.home_cumpleanos.tpl'}
{/if}
Y subir esta carpeta
Default
Mega
Google Drive
Mediafire
V5
Mega
Google Drive
Mediafire
V6
Mega
Google Drive
Mediafire
Creditos: Kmario19
Para empezar creo que funciona con cualquier theme que tengais pero no puedo asegurarlo
asi que lo primero es ir al tema que tengais y dentro de la carpeta templates buscar el archivo t.home.tpl
y buscar esta linea
{include file='sections/main_header.tpl'}y antes de esa poner
{if $tsUser->is_member}despues buscar en el mismo archivo
{include file='sections/main_footer.tpl'}y despues de esa linea poner
{else}
{$tsInstall}
{include file='sections/main_login.tpl'}
{/if}( Esto es una condicion de que si el usuario no es miembro y no esta logueado la pagina se muestre el index personal de la captura)
Luego ir a la carpeta sections y copiar el archivo main_login.tpl incluido en la descarga,
luego ir a la carpeta css y copiar el archivo index.css que esta en la descarga,
luego ir a la carpeta images y copiar la imagen fondo.jpg que esta tambien el la descarga,
y con esto tendreis vuesta index personalizada como la de arriba.
Mega
Google Drive
Mediafire
Creditos: ReModWrite
En c.registro.php --> inc --> class --> c.registro.php
Buscar
// MENSAJE PARA DAR LA BIENVENIDA BIENVENIDA
Arriba agregar
$aviso = 'El usuario <a href="'.$tsCore->settings['url'].'/perfil/'.$tsData['user_nick'].'"><b>'.$tsData['user_nick'].'</b></a> se ha registrado. <br /><br /> dale la bienvenida!';
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\'1\', \'Nuevo registro\', \''.$aviso.'\', \''.time().'\', \'0\')');
Creditos: tutan-kabron
En c.muro.php --> inc --> class --> c.muro.php
Buscar:
/*
streamPost()
*/
public function streamPost(){
Arriba agregar:
/*
CerrarComentario()
*/
function CerrarrPubli(){
global $tsCore, $tsUser;
//
//
$data = db_exec('fetch_assoc', $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.pub_id, p.p_status, p.p_user_pub, u.user_name FROM u_muro AS p, u_miembros AS u WHERE p.pub_id = \''.(int)$_POST['comid'].'\' && u.user_id = p.p_user'));
// OCULTAMOS O MOSTRAMOS
if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_muro SET p_status = '.($data['p_status'] == 1 ? '\'0\'' : '\'1\'').' WHERE pub_id = \''.(int)$_POST['comid'].'\'')) {
if($data['p_status'] == 1) return '2: Los Comentarios han sido abiertos.';
else return '1: Los Comentarios han sido cerrados.';
} else return 'Ocurrió un error';
if(!$tsUser->is_admod && $data['user_id'] != $tsUser->uid){ die('0: No tienes permiso para hacer eso.'); }
}
En ajax.muro.php --> inc --> php --> ajax --> ajax.muro.php
Buscar:
'muro-stream' => array('n' => 2, 'p' => 'stream'),
Debajo agregar:
'muro-ocultar' => array('n' => 2, 'p' => ''),
Buscar:
case 'muro-likes':
Arriba agregar:
case 'muro-ocultar':
//<--
echo $tsMuro->CerrarrPubli();
//-->
break;
En m.perfil_muro_story.tpl --> themes --> default --> modules --> m.perfil_muro_story.tpl
Buscar:
<a onclick="muro.like_this({$p.pub_id}, 'pub', this); return false;" class="a_blue">{$p.likes.link}</a>
Debajo agregar:
{if $p.p_status == 1}
{else}·
Buscar:
<a onclick="muro.show_comment_box({$p.pub_id}); return false" class="a_blue">Comentar</a>
Debajo agregar:
{/if}
Debajo de ese {/if} agregado poner:
{if $tsUser->is_admod || $tsUser->uid == $p.p_user}
·
<a onclick="cerrar_pub({$p.pub_id});" class="a_blue" title="{if $p.p_status == 1}Activar{else}Cerrar{/if} Comentarios">{if $p.p_status == 1}Activar{else}Cerrar{/if}</a>
{/if}
Buscar:
<ul id="cb_{$p.pub_id}" class="Story_Comments" {if $p.p_comments == 0 && $p.p_likes == 0}style="display:none"{/if}>
Arriba agregar:
{if $p.p_status == 1 && $p.p_comments == 0}
<br>
<div class="emptyData clearfix">
La publicación se encuentra cerrada y no se permiten comentarios
</div>
{else}
Buscar:
<div class="newComment">
Arriba agregar:
{if $p.p_status == 1}
<div class="emptyData clearfix">
La publicación se encuentra cerrada y no se permiten comentarios
</div>
{else}
Buscar:
<div class="clearBoth"></div>
</div>
</div>
</li>{/if}
</ul>
</div>
</div>
<div class="clearBoth"></div>
</div>
{/foreach}
Reemplazar por:
<div class="clearBoth"></div>
</div>
</div>
</li>{/if}{/if}
</ul>{/if}
</div>
</div>
<div class="clearBoth"></div>
</div>
{/foreach}
En funciones.js --> themes --> default --> js --> funciones.js
Al final agregar:
/* Cerrar Comentarios por Tutan-Kabron */
function cerrar_pub(comid){
mydialog.close();
$('#loading').fadeIn(250);
$.ajax({
type: 'POST',
url: global_data.url +'/muro-ocultar.php',
data: 'comid=' + comid,
success: function(h){
switch(h.charAt(0)){
case '0': //Error
mydialog.alert('Error', h.substring(3),true);
break;
case '1':
//
mydialog.alert('Hecho', h.substring(3),true);
$('#Story_Comments_' +comid).css('opacity', 1);
$('#cb_' +comid).css('opacity', 0.5);
break;
case '2':
//
mydialog.alert('Hecho', h.substring(3),true);
$('#Story_Comments_' +comid).css('opacity', 0.5);
$('#cb_' +comid).css('opacity', 1);
break;
}
$('#loading').fadeOut(350);
},
error: function(){
mydialog.error_500("borrar_com('"+comid+"')");
}
});
}
Creditos: tutan-kabron
En c.user.php --> inc --> class --> c.user.php
Buscar:
$this->is_banned = $this->info['user_baneado'];
Debajo agregar:
$this->getFollowBirthday();
Buscar:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
Arriba agregar:
/*
getFollowBirthday()
*/
function getFollowBirthday(){
/*
Si quieres, activa la zona horaria deacuerdo a tu ubicacion para que las fechas se ajusten a tu zona y no a la del servidor de tu web.
America/Bogota => Colombia (Ver zonas horarias disponibles en el topic de este mod).
Para activar borra el #.
*/
# date_default_timezone_set("America/Bogota");
$type = 18; // Tipo de notificacion disponible
$uid = $this->uid;
$mes = date("n",time());
$dia = date("j",time());
$query = db_exec(array(__FILE__, __LINE__), 'query', "SELECT f.f_id FROM u_follows AS f LEFT JOIN u_miembros AS u ON f.f_id = u.user_id LEFT JOIN u_perfil AS p ON p.user_id = u.user_id WHERE f.f_user = '$uid' AND f.f_type = '1' AND p.user_dia = '$dia' AND p.user_mes = '$mes' AND f.f_id NOT IN(SELECT obj_uno FROM u_monitor WHERE user_id = '$uid' AND not_type = '18')");
$follows = result_array($query);
// Notificamos
foreach($follows as $val){
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO u_monitor (user_id, obj_user, obj_uno, not_type, not_date) VALUES (\''.$uid.'\', \''.$val['f_id'].'\', \''.$val['f_id'].'\', \''.$type.'\', \''.time().'\')');
}
}
Zonas Horarias
En c.monitor.php --> inc --> class --> c.monitor.php
Buscar:
17 => array('text' => 'Tu foto recibió una medalla', 'css' => 'medal'),
Debajo agregar:
18 => array('text' => 'Está de cumpleaños <strong>¡Felicítalo!</strong>', 'css' => 'cake'),
Buscar:
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;
Debajo agregar:
case 18:
global $tsUser;
$dato['user_name'] = $tsUser->getUserName($data['obj_uno']);
return $dato;
break;
Buscar:
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;
Debajo agregar:
case 18:
$oracion['text'] = $this->monitor[$no_type]['text'];
break;
En phpost.css --> themes --> default --> phpost.css
Buscar:
span.ma_medal{ background: url(images/icons/med/blue_bronze_16.png);}
Debajo agregar:
span.ma_cake{ background: url(images/icons/cat/cake.png);}
Creditos: Kmario19
¿Que tiene?
- Administración completa
- Inserción en robots.txt, para google detecte tu sitemap
- Configuraciones:
- Opción de inserción automática de los posts que se crean
- Opción de inserción automática de las fotos que se crean
- Opción de actualizar la última modificación de una URL al editar un post
- Opción de actualizar la última modificación de una URL al editar una imagen
- Ver URLs incluídas en el sitemap
- Agregar URLs
- Editar URLs
- Borrar URLs
- Los cambios que realices de URLs no se verán reflejados en el sitemap no se verán reflejados hasta que tu lo desees.
- Sitemap completo (Url, frecuencia, ultima modificación, prioridad)
- URLs principales de tu web, incluídas por defecto.
- Restaurar URLs que vienen por defecto en cualquier momento.
Ejecutar esta consulta
CREATE TABLE IF NOT EXISTS `w_sitemap` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`url` varchar(120) NOT NULL,
`frecuencia` varchar(15) NOT NULL,
`fecha` int(16) NOT NULL,
`prioridad` decimal(2,1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `w_configuracion` ADD `sm_posts` INT( 1 ) NULL DEFAULT '1',
ADD `sm_fotos` INT( 1 ) NOT NULL DEFAULT '1',
ADD `sm_update_p` INT( 1 ) NOT NULL DEFAULT '1',
ADD `sm_update_f` INT( 1 ) NOT NULL DEFAULT '1';
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
function GetAdminStats()
{
$num = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT
(SELECT count(foto_id) FROM f_fotos WHERE f_status = \'2\') as fotos_eliminadas,
(SELECT count(foto_id) FROM f_fotos WHERE f_status = \'1\') as fotos_ocultas,
(SELECT count(foto_id) FROM f_fotos WHERE f_status = \'0\') as fotos_visibles,
(SELECT count(post_id) FROM p_posts WHERE post_status = \'0\') as posts_visibles,
(SELECT count(post_id) FROM p_posts WHERE post_status = \'1\') as posts_ocultos,
(SELECT count(post_id) FROM p_posts WHERE post_status = \'2\') as posts_eliminados,
(SELECT count(post_id) FROM p_posts WHERE post_status = \'3\') as posts_revision,
(SELECT count(cid) FROM p_comentarios WHERE c_status = \'0\') as comentarios_posts_visibles,
(SELECT count(cid) FROM p_comentarios WHERE c_status = \'1\') as comentarios_posts_ocultos,
(SELECT count(user_id) FROM u_miembros WHERE user_activo = \'1\') as usuarios_activos,
(SELECT count(user_id) FROM u_miembros WHERE user_activo = \'0\' ) as usuarios_inactivos,
(SELECT count(user_id) FROM u_miembros WHERE user_baneado = \'1\' ) as usuarios_baneados,
(SELECT count(cid) FROM f_comentarios) as comentarios_fotos_total,
(SELECT count(follow_id) FROM u_follows WHERE f_type = \'1\' ) AS usuarios_follows,
(SELECT count(follow_id) FROM u_follows WHERE f_type = \'2\' ) AS posts_follows,
(SELECT count(follow_id) FROM u_follows WHERE f_type = \'3\' ) AS posts_compartidos,
(SELECT count(fav_id) FROM p_favoritos) AS posts_favoritos,
(SELECT count(mr_id) FROM u_respuestas) AS usuarios_respuestas,
(SELECT count(mp_id) FROM u_mensajes) AS mensajes_total,
(SELECT count(mp_id) FROM u_mensajes WHERE mp_del_to = \'1\') AS mensajes_de_eliminados,
(SELECT count(mp_id) FROM u_mensajes WHERE mp_del_from = \'1\') AS mensajes_para_eliminados,
(SELECT count(bid) FROM p_borradores) AS posts_borradores,
(SELECT count(bid) FROM u_bloqueos) AS usuarios_bloqueados,
(SELECT count(bid) FROM u_bloqueos) AS usuarios_bloqueados,
(SELECT count(medal_id) FROM w_medallas WHERE m_type = \'1\') AS medallas_usuarios,
(SELECT count(medal_id) FROM w_medallas WHERE m_type = \'2\') AS medallas_posts,
(SELECT count(medal_id) FROM w_medallas WHERE m_type = \'3\') AS medallas_fotos,
(SELECT count(id) FROM w_medallas_assign) AS medallas_asignadas,
(SELECT count(aid) FROM w_afiliados WHERE a_active = \'1\') AS afiliados_activos,
(SELECT count(aid) FROM w_afiliados WHERE a_active = \'0\') AS afiliados_inactivos,
(SELECT count(pub_id) FROM u_muro) AS muro_estados,
(SELECT count(cid) FROM u_muro_comentarios) AS muro_comentarios
'));
$num['usuarios_total'] = $num['usuarios_activos'] + $num['usuarios_inactivos'] +
$num['usuarios_baneados'];
$num['seguidos_total'] = $num['posts_follows'] + $num['usuarios_follows'];
$num['muro_total'] = $num['muro_estados'] + $num['muro_comentarios'];
$num['afiliados_total'] = $num['afiliados_activos'] + $num['afiliados_inactivos'];
$num['posts_total'] = $num['posts_visibles'] + $num['posts_ocultos'] + $num['posts_eliminados'];
$num['comentarios_posts_total'] = $num['comentarios_posts_visibles'] + $num['comentarios_posts_ocultos'];
$num['medallas_total'] = $num['medallas_usuarios'] + $num['medallas_posts'] + $num['medallas_fotos'];
$num['fotos_total'] = $num['fotos_visibles'] + $num['fotos_ocultas'] + $num['fotos_eliminadas'];
return $num;
}
Debajo agregar:
/*
Sitemap y SEO administrables
*/
//GET URLs SITEMAP
function smUrls(){
global $tsSiteMap;
return $tsSiteMap->getSitemap();
}
//Generar sitemap
function generateSitemap(){
global $tsSiteMap;
return $tsSiteMap->generateSiteMap();
}
//Generar sitemap
function addUrl(){
global $tsSiteMap, $tsCore;
return $tsSiteMap->addURL(filter_var($_POST['url'], FILTER_VALIDATE_URL), $tsCore->setSecure($_POST['prioridad']), $tsCore->setSecure($_POST['frecuencia']));
}
//Obtener URls de la BD
function smUrlsBD(){
global $tsSiteMap;
return $tsSiteMap->getURLsBD();
}
//Restaurar SiteMap
function restaurarSitemap(){
global $tsSiteMap;
return $tsSiteMap->CreateSiteMap();
}
//Borrar URL
function deleteUrl(){
global $tsSiteMap;
return $tsSiteMap->removeUrlBD((int)$_GET['id']);
}
//Borrar URL
function getUrl(){
global $tsSiteMap;
return $tsSiteMap->getUrl((int)$_GET['id']);
}
function editUrl(){
global $tsSiteMap, $tsCore;
return $tsSiteMap->editUrl((int)$_GET['id'], filter_var($tsCore->setSecure($_POST['url']), FILTER_VALIDATE_URL), $tsCore->setSecure($_POST['frecuencia']), $tsCore->setSecure($_POST['prioridad']));
}
//Guardar Configuración
function save_conf(){
global $tsCore;
//
$c = array(
'sm_posts' => empty($_POST['sm_posts']) ? 0 : 1,
'sm_fotos' => empty($_POST['sm_fotos']) ? 0 : 1,
'sm_update_p' => empty($_POST['sm_update_p']) ? 0 : 1,
'sm_update_f' => empty($_POST['sm_update_f']) ? 0 : 1,
);
// UPDATE
if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `w_configuracion` SET `sm_posts` = \'' . $c['sm_posts'] . '\', `sm_fotos` = \'' .
$c['sm_fotos'] . '\', `sm_update_p` = \'' . $c['sm_update_p'] . '\', sm_update_f = \''.$c['sm_update_f'].'\' WHERE `tscript_id` = \'1\''))
return true;
else
exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
}
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
$tsActividad->setActividad(1, $postID);
// SUBIR DE RANGO?
$this->subirRango($tsUser->uid);
Debajo agregar:
if($tsCore->settings['sm_posts']){
$psql = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_nombre FROM p_categorias WHERE cid = \''.(int)$postData['category'].'\'');
$q = db_exec('fetch_assoc', $psql);
$pCat = $q['c_nombre'];
global $tsSiteMap;
$tsSiteMap->addUrlsm($tsCore->settings['url'].'/posts/'.$pCat.'/'.$postID.'/'.$tsCore->setSEO($postData['title']).'.html');
}
Buscar:
// ACTUALIZAMOS
if($tsUser->uid == $data['post_user'] || !empty($tsUser->is_admod) || !empty($tsUser->permisos['moedpo'])){
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') )) {
Debajo agregar:
//SITEMAPS BY APERPEN
if($tsCore->settings['sm_update_p']){
$psql = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_nombre FROM p_categorias WHERE cid = \''.(int)$postData['category'].'\'');
$q = db_exec('fetch_assoc', $psql);
$pCat = $q['c_nombre'];
global $tsSiteMap;
$tsSiteMap->updateLM($tsCore->settings['url'].'/posts/'.$pCat.'/'.(int)$post_id.'/'.$tsCore->setSEO($postData['title']).'.html');
}
Buscar:
$tsSiteMap->addUrlsm($tsCore->settings['url'].'/posts/'.$pCat.'/'.$postID.'/'.$tsCore->setSEO($postData['title']).'.html');
Reemplazar por:
$tsSiteMap->addUrlsm($tsCore->settings['url'].'/posts/'.$tsCore->setSEO($pCat).'/'.$postID.'/'.$tsCore->setSEO($postData['title']).'.html');
Buscar:
$tsSiteMap->updateLM($tsCore->settings['url'].'/posts/'.$pCat.'/'.(int)$post_id.'/'.$tsCore->setSEO($postData['title']).'.html');
Reemplazar por:
$tsSiteMap->updateLM($tsCore->settings['url'].'/posts/'.$tsCore->setSEO($pCat).'/'.(int)$post_id.'/'.$tsCore->setSEO($postData['title']).'.html');
En c.fotos.php --> inc --> class --> c.fotos.php
Buscar:
// Estadísticas
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `w_stats` SET `stats_fotos` = stats_fotos + \'1\' WHERE `stats_no` = \'1\'');
//db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `u_miembros` SET `user_fotos` = user_fotos + \'1\' WHERE `user_id` = \''.$tsUser->uid.'\''); // Eliminado en 1.1.000.9
// AGREGAR AL MONITOR DE LOS USUARIOS QUE ME SIGUEN
$tsMonitor->setFollowNotificacion(10, 1, $tsUser->uid, $fid);
// ACTIVIDAD
$tsActividad->setActividad(9, $fid);
//
Debajo agregar:
if($tsCore->settings['sm_fotos']){
global $tsSiteMap;
$tsSiteMap->addUrlsm($tsCore->settings['url'].'/fotos/'.$tsUser->nick.'/'.$fid.'/'.$tsCore->setSEO($fData['titulo']).'.html', 0);
}
Buscar:
if($data['f_user'] != $tsUser->uid){
$aviso = 'Hola <b>'.$tsUser->getUserName($data['f_user'])."</b>\n\n Te informo que tu foto <a href=".$tsCore->settings['url'].'/fotos/'.$data['user_name'].'/'.$data['foto_id'].'/'.$tsCore->setSEO($data['f_title']).'.html'."><b>".$data['f_title']."</b></a> ha sido editada por <a href=\"#\" class=\"hovercard\" uid=\"".$tsUser->uid."\">".$tsUser->nick."</a>\n\n Causa: <b>".$fData['razon']."</b>\n\n \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!";
$tsMonitor->setAviso($data['f_user'], 'Foto editada', $aviso, 2);
$_SERVER['REMOTE_ADDR'] = $_SERVER['X_FORWARDED_FOR'] ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
if(!filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) { die('Su ip no se pudo validar.'); }
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `w_historial` (`pofid`, `action`, `type`, `mod`, `reason`, `date`, `mod_ip`) VALUES (\''.(int)$data['foto_id'].'\', \'1\', \'2\', \''.$tsUser->uid.'\', \''.$fData['razon'].'\', \''.time().'\', \''.$tsCore->setSecure($_SERVER['REMOTE_ADDR']).'\')');
}
Debajo agregar:
if($tsCore->settings['sm_update_f']){
global $tsSiteMap;
$tsSiteMap->updateLM($tsCore->settings['url'].'/fotos/'.$data['user_name'].'/'.$fid.'/'.$tsCore->setSEO($fData['titulo']).'.html');
}
En admin.php --> inc --> php --> admin.php
Buscar:
// CONECTADOS A LA COMUNIDAD
} elseif($action == 'sesiones'){
if(!$act) {
$smarty->assign("tsAdminSessions",$tsAdmin->GetSessions());
}
Debajo agregar:
//SITEMAP BY APERPEN
} elseif($action == 'sitemap'){
if(empty($act)){
$smarty->assign("tsURLs",$tsAdmin->smUrlsBD());
}elseif($act == 'restaurar'){
$smarty->assign("tsRest",$tsAdmin->restaurarSitemap());
} elseif($act == 'generar'){
$smarty->assign("tsGen",$tsAdmin->generateSitemap());
}elseif($act == 'actual'){
$smarty->assign("tsURLa",$tsAdmin->smUrls());
}elseif($act == 'borrar'){
$smarty->assign("tsDel",$tsAdmin->deleteURL());
}elseif($act == 'editar'){
if(!empty($_POST['url'])){
if($tsAdmin->editUrl()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
}
else $smarty->assign("tsURL",$tsAdmin->getUrl((int)$_GET['id']));
}elseif($act == 'nueva'){
if(!empty($_POST['url'])){
if($tsAdmin->addUrl()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
}
}elseif($act == 'config'){
if(isset($_POST['sm_posts'])) {
if($tsAdmin->save_conf()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/sitemap?save=true');
}
}
En header.php
Buscar:
// Crean requests
include TS_EXTRA.'QueryString.php';
Debajo agregar:
// Clase Sitemap by Aperpen
include TS_CLASS.'c.sitemap.php';
Buscar:
// Smarty
$smarty = new tsSmarty();
Debajo agregar:
// Sitemap by aperpen
$tsSiteMap = new tsSiteMap();
En admin.css --> themes --> default --> css --> admin.css
Buscar:
.admin_table {border:1px solid #ddd; border-width:1px 0 0 1px;}
Reemplazar por:
.admin_table{border:1px solid #ddd;border-width:1px 0 0 1px;font-size:11px}
En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl
Buscar:
{elseif $tsAction == 'rangos'}
{include file='admin_mods/m.admin_rangos.tpl'}
Debajo agregar:
{elseif $tsAction == 'sitemap'}
{if $tsAct == ''}
{include file='admin_mods/m.admin_sitemap.tpl'}
{elseif $tsAct == 'restaurar' || $tsAct == 'generar' || $tsAct == 'borrar' || $tsAct == 'editar' || $tsAct == 'nueva'}
{include file='admin_mods/m.admin_restaurar.tpl'}
{elseif $tsAct == 'actual'}
{include file='admin_mods/m.admin_siteactual.tpl'}
{elseif $tsAct == 'config'}
{include file='admin_mods/m.admin_sitemapconf.tpl'}
{/if}
En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl
Buscar:
<h4>Control de Usuarios</h4>
<ul class="cat-list">
<li id="a_users"><span class="cat-title"><a href="{$tsConfig.url}/admin/users">Todos los Usuarios</a></span></li>
<li id="a_sesiones"><span class="cat-title"><a href="{$tsConfig.url}/admin/sesiones">Sesiones</a></span></li>
<li id="a_nicks"><span class="cat-title"><a href="{$tsConfig.url}/admin/nicks">Cambios de Nicks</a></span></li>
<li id="a_rangos"><span class="cat-title"><a href="{$tsConfig.url}/admin/rangos">Rangos de Usuarios</a></span></li>
</ul>
Debajo agregar:
<h4>SEO</h4>
<ul class="cat-list">
<li id="a_cats"><span class="cat-title"><a href="{$tsConfig.url}/admin/sitemap">Sitemap</a></span></li>
</ul>
Suben 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
Crean un archivo en la raíz de su web que se llame install.php con este código:
<?php
include('header.php');
echo $tsSiteMap->CreateSiteMap();
?>Luego entran a: Registrate o inicia tu sesión para ver este contenido
Y si obtienen esto:
Cita:Sitemap restaurado correctamente
Ya tienes el MOD instalado
Creditos: Aperpen
Demo
http://Registrate o inicia tu sesión par... contenido
Ejecutar esta consulta
CREATE TABLE IF NOT EXISTS `t_productos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(1) NOT NULL,
`precio` int(4) NOT NULL,
`obj` int(5) NOT NULL DEFAULT '0',
`obj_2` int(5) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
En c.user.php --> inc --> class --> c.user.php
Buscar:
// NOMBRE
$this->nick = $this->info['user_name'];
$this->uid = $this->info['user_id'];
$this->is_banned = $this->info['user_baneado'];
Debajo agregar:
$this->puntos = $this->info['user_puntos'];
En admin.php --> inc --> php --> admin.php
Buscar:
} elseif($action == 'configs'){
// GUARDAR CONFIGURACION
if(!empty($_POST['titulo'])) {
if($tsAdmin->saveConfig()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/configs?save=true');
}
Debajo agregar:
/** TIENDA **/
} elseif($action == 'tienda'){
include('../class/c.tienda.php');
$tsTienda = new tsTienda;
if(empty($act)){
$productos = $tsTienda->getProductos();
if(is_array($productos))
$smarty->assign("tsProductos", $productos);
else
$smarty->assign("tsError", $productos);
}elseif($act == 'nuevo' && !empty($_POST['type'])){
$producto = $tsTienda->nuevoProducto();
if($producto == 1)
$tsCore->redirectTo($tsCore->settings['url'].'/admin/tienda?save=true');
else
$smarty->assign("tsError", $producto);
} elseif($act == 'editar'){
if(!empty($_POST['type'])){
$producto = $tsTienda->editProducto((int)$_GET['id']);
if($producto == 1)
$tsCore->redirectTo($tsCore->settings['url'].'/admin/tienda?save=true');
else{
$smarty->assign("tsError", $producto);
$producto = $tsTienda->getProducto((int)$_GET['id']);
if(is_array($producto))
$smarty->assign("tsProducto",$producto);
else
$smarty->assign("tsError", $producto);
}
} else{
$producto = $tsTienda->getProducto((int)$_GET['id']);
if(is_array($producto))
$smarty->assign("tsProducto",$producto);
else
$smarty->assign("tsError", $producto);
}
} elseif($act == 'borrar'){
$producto = $tsTienda->delProducto();
if($producto == 1)
$tsCore->redirectTo($tsCore->settings['url'].'/admin/tienda?save=true');
else
$smarty->assign("tsError", $producto);
}
En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl
Buscar:
{elseif $tsAction == 'rangos'}
{include file='admin_mods/m.admin_rangos.tpl'}
Debajo agregar:
{elseif $tsAction == 'tienda'}
{include file='admin_mods/m.admin_tienda.tpl'}
En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl
Buscar:
<li id="a_cats"><span class="cat-title"><a href="{$tsConfig.url}/admin/cats">Categorías</a></span></li>
Debajo agregar:
<li id="a_ads"><span class="cat-title"><a href="{$tsConfig.url}/admin/tienda">Tienda</a></span></li>
En head_menu.tpl --> themes --> default --> templates --> sections --> head_menu.tpl
Default
Buscar:
<li class="tabbed {if $tsPage == 'tops'}here{/if}" id="tabbedtops">
<a title="Ir a TOPs" onclick="menu('tops', this.href); return false;" href="{$tsConfig.url}/top/">TOPs <img alt="Drop Down" src="{$tsConfig.tema.t_url}/images/arrowdown.png"></a>
</li>
Debajo agregar:
<li class="tabbed {if $tsPage == 'tienda'}here{/if}" id="tabbedtops">
<a title="Ir a Tienda" onclick="menu('tops', this.href); return false;" href="{$tsConfig.url}/tienda/">Tienda <img alt="Drop Down" src="{$tsConfig.tema.t_url}/images/arrowdown.png"></a>
</li>
V5
Buscar:
<li><a {if $tsPage == 'tops'}class="estoy"{/if} href="{$tsConfig.url}/top/">Tops</a></li>
Debajo agregar:
<li><a {if $tsPage == 'tienda'}class="estoy"{/if} href="{$tsConfig.url}/top/">Tienda</a></li>
V6
Buscar:
<a {if $tsPage == 'tops'}class="aqui"{/if} href="{$tsConfig.url}/top/" id="droptop"><i class="fas fa-sort-numeric-up" aria-hidden="true" style="margin-right: 10px;"></i>Tops</a>
Debajo agregar:
<a {if $tsPage == 'tienda'}class="aqui"{/if} href="{$tsConfig.url}/tienda/"><i class="fas fa-store-alt" aria-hidden="true" style="margin-right: 10px;"></i>Tienda</a>
Y subir esta carpeta
Default
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
V5 y V6
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
Creditos: Aperpen
Hola a tod@os, os dejo el mod actualizado para la versión 1.3, probado en la default de risus pero tiene que funcionar en cualquiera, lo que cambia es el diseño.
En c.admin. php --> inc --> class --> c.admin. php
Buscar:
$num['medallas_total'] = $num['medallas_usuarios'] + $num['medallas_posts'] + $num['medallas_fotos'];
$num['fotos_total'] = $num['fotos_visibles'] + $num['fotos_ocultas'] + $num['fotos_eliminadas'];
return $num;
}
Debajo agregar:
//////////////////////INICIA EL MOD DE TRON/////////////////
/*
newMpsall() ENVIAMOS MP MASIVO
*/
function newMpsall(){
global $tsUser, $tsCore;
//
$cuerpo=$tsCore->setSecure($_POST['cuerpo']);
$rangos=(int)$_POST['rangos'];
$fecha= time();
if($tsUser->is_admod==1){
if($rangos==1){
$where='WHERE user_id != \''.$tsUser->uid.'\'';
}elseif($rangos==2){
$where='WHERE user_id != \''.$tsUser->uid.'\' AND user_rango = 1';
}elseif($rangos==3){
$where='WHERE user_id != \''.$tsUser->uid.'\' AND user_rango = 2';
}
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT user_id,user_name FROM u_miembros '.$where.' ORDER BY user_id DESC');
if(!$query) exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$data = result_array($query);
foreach($data as $dato){
$subject='Mensaje de la administracion';
$sql = "INSERT INTO u_mensajes (mp_to,mp_from,mp_subject,mp_preview,mp_date) VALUES ('{$dato['user_id']}','{$tsUser->uid}','{$subject}','{$cuerpo}','{$fecha}')";
$result = db_exec(array(__FILE__, __LINE__), 'query', $sql);
$mp_id = db_exec('insert_id');
db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_respuestas` (mp_id, mr_from, mr_body, mr_ip, mr_date) VALUES (\''.(int)$mp_id.'\', \'1\', \''.$cuerpo.'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.time().'\')');
}
}
if($result) return
true;
else return false;
}
En ajax.admin.php --> inc --> php --> ajax --> ajax.admin.php
Buscar:
'admin-badwords-delete' => array('n' => 4, 'p' => ''),
Debajo agregar:
'admin-mpsall' => array('n' => 4, 'p' => 'mpsall'),
Buscar:
case 'admin-badwords-delete':
//<---
echo $tsAdmin->deleteBadWord();
//--->
break;
Debajo agregar:
case 'admin-mpsall':
if($_POST['cuerpo']){
//<---
echo $tsAdmin->newMpsall();
//--->
}else{
$smarty->assign("tsExit",'2');
}
break;
En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl
Buscar:
<li id="a_rangos"><span class="cat-title"><a href="{$tsConfig.url}/admin/rangos">Rangos de Usuarios</a></span></li>
Debajo agregar:
<li id="a_badwords"><span class="cat-title"><a href="javascript:enviar.mps.all();">Mensajes masivos</a></span></li>
En admin.js --> themes --> default --> js --> admin.js
Buscar:
/* AFILIADOS */
var ad_afiliado = {
cache: {},
detalles: function(aid){
$.ajax({
type: 'POST',
url: global_data.url + '/afiliado-detalles.php',
data: 'ref=' + aid,
success: function(h){
mydialog.show(true);
mydialog.title('Detalles del Afiliado');
mydialog.body(h);
mydialog.buttons(true, true, 'Aceptar', 'mydialog.close()', true, true);
mydialog.center();
}
});
}
}
Debajo agregar:
var enviar = {
mps : {
all:function(uid, redirect, aceptar){
if(!aceptar){
$('#loading').fadeIn(250);
$.ajax({
type: 'POST',
url: global_data.url + '/admin-mpsall.php?ts=false',
success: function(h){
mydialog.show();
mydialog.title('Mps masivo');
mydialog.body(h);
mydialog.buttons(true, true, 'Enviar', 'enviar.mps.all(' + uid + ", '" + redirect + "', 1);", true, false, true, 'Cancelar', 'close', true, true);
$('#modalBody').css('padding', '20px 10px 0');
mydialog.center();
$('#loading').fadeOut(350);
return;
}
});
} else {
mydialog.procesando_inicio('Enviando...', 'Mps masivo');
var cuerpo = $('input[name=cuerpo]').val();
var rangos = $('#rangos').val();
$('#loading').fadeIn(250);
$.ajax({
type: 'POST',
url: global_data.url + '/admin-mpsall.php?ts=false',
data: 'cuerpo=' + cuerpo + '&rangos=' + rangos,
success: function(h){
switch(h.charAt(0)){
case '0': //Error
mydialog.alert('Error', h.substring(3));
all.redirect("/admin/", 500);
break;
case '1':
if(redirect == 'true') all.redirect("/admin/", 1700);
else if(redirect == 'true') {
mydialog.alert('Aviso', h.substring(3));
all.redirect("/admin/", 2000);
}
else {
mydialog.close();
$('#report_' + pid).slideUp();
}
break;
}
$('#loading').fadeOut(350);
},
complete: function(){
mydialog.procesando_fin();
$('#loading').fadeOut(350);
}
});
}
},
},
redirect: function(url_ref, time){
setTimeout(function(){document.location.href = global_data.url + url_ref;}, time)
}
}
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
Creditos: TRON
Hola a tod@s, he visto un mensaje de @ moyo pidiendo este mod y aquí lo dejo, no tengo las comunidades instaladas en el el tema default y se lo he instalado rápido para verlo en la V6, vale para cualquier tema, lo que cambias es el diseño.
[img]Registrate o inicia tu sesión para ver este contenido[/img]
En c.comunidades.php --> inc --> class --> c.comunidades.php
Buscar:
} elseif($type == 3) {
$this->mod_history($comid, 5, $comid);
$name = 'cf_'.(int)$comid.'.jpg';
$root = TS_FILES.'uploads/'.$name;
if(copy($file['tmp_name'],$root)) return '1: '.$tsCore->settings['url'].'/files/uploads/'.$name;
else return '0: No se pudo subir la imagen';
}
Agregar en la misma linea después de la llave de cierre:
elseif($type == 4) {
$this->mod_history($comid, 6, $comid);
$name = 'head_'.(int)$comid.'.jpg';
$root = TS_FILES.'uploads/'.$name;
if(copy($file['tmp_name'],$root)) return '1: '.$tsCore->settings['url'].'/files/uploads/'.$name;
else return '0: No se pudo subir la imagen';
}
Quedando así:
} elseif($type == 3) {
$this->mod_history($comid, 5, $comid);
$name = 'cf_'.(int)$comid.'.jpg';
$root = TS_FILES.'uploads/'.$name;
if(copy($file['tmp_name'],$root)) return '1: '.$tsCore->settings['url'].'/files/uploads/'.$name;
else return '0: No se pudo subir la imagen';
} elseif($type == 4) {
$this->mod_history($comid, 6, $comid);
$name = 'head_'.(int)$comid.'.jpg';
$root = TS_FILES.'uploads/'.$name;
if(copy($file['tmp_name'],$root)) return '1: '.$tsCore->settings['url'].'/files/uploads/'.$name;
else return '0: No se pudo subir la imagen';
}
En ajax.comunidades.php --> inc --> php --> ajax --> ajax.comunidades.php
Buscar:
case 'comunidades-edit_fondo':
//<--
$result = $tsCom->uploadImagen($_FILES['background'], $_GET['comid'], 3);
echo $tsCore->setJSON($result);
//-->
break;
Debajo agregar:
case 'comunidades-edit_header':
//<--
$result = $tsCom->uploadImagen($_FILES['header'], $_GET['comid'], 4);
echo $tsCore->setJSON($result);
//-->
break;
En comunidades.js --> themes --> default --> js --> comunidades.js
Buscar:
votar_tema: function(voto) {
Arriba agregar:
subir_cabecera: function() {
$('#loading').fadeIn(250);
if ($('#head_input').val()) {
if(isImageFile($('#head_input').val())){
$('#head_change').css({'opacity' : 0.5});
$.ajaxFileUpload({
url: global_data.url + '/comunidades-edit_header.php?' + cgget('comid', true),
fileElementId: 'head_input',
dataType: 'json',
success: function(h){
if(h.charAt(0) == 1) {
$('#head_change').css({'opacity' : 1});
$('#head_change').attr({'src' : h.substring(3) + '?' + new Date().getTime()});
} else {
mydialog.alert('Error', h.substring(3));
}
$('#loading').fadeOut(250);
}
});
} else mydialog.alert('Error', 'El archivo no es una imagen válida.');
} else mydialog.alert('Error', 'No selecciono ningun archivo.');
},
Buscar:
if(global_com.comid!='') {
$('body').css({'background-image' : 'url("' + global_data.url + '/files/uploads/cf_' + global_com.comid + '.jpg")'});
}
Debajo agregar:
if(global_com.comid!='') {
$('.headercom').css({'background-image' : 'url("' + global_data.url + '/files/uploads/head_' + global_com.comid + '.jpg")'});
}
En c.crear_right.tpl --> themes --> default --> templates --> comunidades --> crear --> c.crear_right.tpl
Buscar:
<input type="hidden" id="comid" value="{$tsDato.c_id}" />
<div class="com_box_title clearfix"><h2>Imagen de la comunidad</h2></div>
Debajo agregar:
<div class="com_box_title clearfix"><h2>Cabecera de la comunidad</h2></div>
<div class="com_edit_imagen" align="center">
<img src="{$tsConfig.url}/files/uploads/head_{$tsDato.c_id}.jpg" id="head_change" height="180" width="100%" />
<input type="file" id="head_input" class="input_text" name="header" style="width: 100%;" onchange="com.subir_cabecera({$tsDato.c_id})" />
</div>
En c.com_info.tpl --> themes --> default --> templates --> comunidades --> inicio --> c.com_info.tpl
Buscar:
<div class="ver_com_info">
<div class="vci_left floatL">
Reemplazar por:
<div class="ver_com_info headercom">
<div class="opacity">
<div class="vci_left floatL">
Buscar:
<a href="#" onclick="$('.ver_com_info').toggle();return false;"><i class="com_icon icon_less"></i></a>
<div class="clearfix"></div>
</div>
Reemplazar por:
<a href="#" onclick="$('.ver_com_info').toggle();return false;"><i class="com_icon icon_less"></i></a>
<div class="clearfix"></div>
</div>
</div>
En comunidades.css --> themes --> default --> css --> comunidades.css
Agregar:
.ver_com_info{padding:0}
.headercom{background-position:center center;background-size:cover;background-repeat:no-repeat}
.opacity{padding:20px 8px;background-color:rgba(255,255,255,.6)}
Creditos: Miguel92

