04-15-2021, 05:02 PM
Demo
http://Registrate o inicia tu sesión par... contenido
Ejecutar esta consulta
c.posts.php --> inc --> class --> c.posts.php
Buscar:
Debajo agregar:
Buscar:
Debajo agregar:
Buscar:
Al lado agregar:
Resultado:
Buscar:
Al lado agregar:
Resultado:
Buscar:
Reemplazar por:
Buscar:
Reemplazar por:
Buscar:
Al lado agregar:
Buscar:
Reemplazar por:
Buscar:
Debajo agregar:
Buscar:
Reemplazar por:
m.post_content.tpl --> themes --> default --> templates --> modules --> m.post_content.tpl
Buscar:
Debajo agregar:
m.agregar_form.tpl --> themes --> default --> templates --> modules --> m.agregar_form.tpl
Buscar:
Debajo agregar:
m.post_autor.tpl --> themes --> default --> templates --> modules --> m.post_autor.tpl
Buscar:
Debajo agregar:
Creditos: aperpen
http://Registrate o inicia tu sesión par... contenido
Ejecutar esta consulta
Código PHP:
ALTER TABLE `p_posts` ADD `post_usec` INT( 11 ) NOT NULL DEFAULT '0';
c.posts.php --> inc --> class --> c.posts.php
Buscar:
Código PHP:
/*
newPost()
*/
function newPost(){
global $tsCore, $tsUser, $tsMonitor, $tsActividad;
//
if($tsUser->is_admod || $tsUser->permisos['gopp']){
//
$postData = array(
'date' => time(),
'title' => $tsCore->parseBadWords($tsCore->setSecure($_POST['titulo'], true)),2,
'body' => $tsCore->setSecure($_POST['cuerpo']),
'tags' => $tsCore->parseBadWords($tsCore->setSecure($_POST['tags'], true)),true,1,
'category' => intval($_POST['categoria']),
Debajo agregar:
Código PHP:
'sec' => empty($_POST['sec']) ? 0 : $tsCore->setSecure($_POST['sec']),
Buscar:
Código PHP:
//ANTIFLOOD
$antiflood = 2;
Debajo agregar:
Código PHP:
if($postData['sec'] != 0){
$postData['sec'] = $tsUser->getUserID($postData['sec']);
if($postData['sec'] == 0) return 'El usuario secundario ingresado no existe.';
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,
Al lado agregar:
Código PHP:
post_usec,
Resultado:
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_usec,
Buscar:
Código PHP:
\''.(int)$postData['block_comments'].'\', \''.(int)$postData['sponsored'].'\', \''.(int)$postData['sticky'].'\',
Al lado agregar:
Código PHP:
\''.$postData['sec'].'\',
Resultado:
Código PHP:
\''.(int)$postData['block_comments'].'\', \''.(int)$postData['sponsored'].'\', \''.(int)$postData['sticky'].'\', \''.$postData['sec'].'\',
Buscar:
Código PHP:
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_user, post_sponsored, post_sticky, post_status FROM p_posts WHERE post_id = \''.(int)$post_id.'\' LIMIT 1');
Reemplazar por:
Código PHP:
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_user, post_sponsored, post_sticky, post_usec, post_status FROM p_posts WHERE post_id = \''.(int)$post_id.'\' LIMIT 1');
Buscar:
Código PHP:
if($data['post_status'] != '0' && !$tsUser->is_admod && !$tsUser->permisos['moedpo']) {
return 'El post no puede ser editado.';
}
//
$postData = array(
'title' => $tsCore->parseBadWords($_POST['titulo'], true),
'body' => $tsCore->setSecure($_POST['cuerpo'], true),
'tags' => $tsCore->parseBadWords($tsCore->setSecure($_POST['tags'], true)),
'category' => $_POST['categoria'],
);
Reemplazar por:
Código PHP:
if($data['post_status'] != '0' && !$tsUser->is_admod && !$tsUser->permisos['moedpo'] && $tsUser->uid != $data['post_usec']) {
return 'El post no puede ser editado.';
}
//
$postData = array(
'title' => $tsCore->parseBadWords($_POST['titulo'], true),
'body' => $tsCore->setSecure($_POST['cuerpo'], true),
'tags' => $tsCore->parseBadWords($tsCore->setSecure($_POST['tags'], true)),
'category' => $_POST['categoria'],
'sec' => empty($_POST['sec']) ? 0 : $tsCore->setSecure($_POST['sec']),
);
if(!empty($postData['sec'])){
$postData['sec'] = $tsUser->getUserID($postData['sec']);
if($postData['sec'] == 0) return 'El usuario secundario ingresado no existe.';
}
Buscar:
Código PHP:
post_visitantes = \''.$postData['visitantes'].'\',
Al lado agregar:
Código PHP:
post_usec = \''.$postData['sec'].'\',
Buscar:
Código PHP:
if(empty($ford['post_id'])){
return 'El post elegido no existe.';
}elseif($ford['post_status'] != '0' && $tsUser->is_admod == 0 && $tsUser->permisos['moedpo'] == false){
return 'El post no puede ser editado.';
}elseif(($tsUser->uid != $ford['post_user']) && $tsUser->is_admod == 0 && $tsUser->permisos['moedpo'] == false){
return 'No puedes editar un post que no es tuyo.';
}
Reemplazar por:
Código PHP:
if(empty($ford['post_id'])){
return 'El post elegido no existe.';
}elseif($ford['post_status'] != '0' && $tsUser->is_admod == 0 && $tsUser->permisos['moedpo'] == false){
return 'El post no puede ser editado.';
}elseif(($tsUser->uid != $ford['post_user'] && $ford['post_usec'] != $tsUser->uid) && $tsUser->is_admod == 0 && $tsUser->permisos['moedpo'] == false){
return 'No puedes editar un post que no es tuyo.';
}
$ford['post_usec'] = $tsUser->getUserName($ford['post_usec']);
Buscar:
Código PHP:
if(empty($post_id)) return array('deleted','Oops! Este post no existe o fue eliminado.');
// DAR MEDALLA
$this->DarMedalla($post_id);
// DATOS DEL POST
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.* ,m.*, u.user_id FROM `p_posts` AS c LEFT JOIN `u_miembros` AS u ON c.post_user = u.user_id LEFT JOIN `u_perfil` AS m ON c.post_user = m.user_id WHERE `post_id` = \''.(int)$post_id.'\' '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : 'AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' LIMIT 1');
//
$postData = db_exec('fetch_assoc', $query);
Debajo agregar:
Código PHP:
if($postData['post_usec'] > 0){
$postData['aut_sec'] = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT m.*, u.* FROM `p_posts` AS c LEFT JOIN `u_miembros` AS u ON c.post_usec = u.user_id LEFT JOIN `u_perfil` AS m ON c.post_usec = m.user_id WHERE `post_id` = \''.(int)$post_id.'\' '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : 'AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' LIMIT 1')); //
$postData['aut_sec']['rango'] = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM `u_rangos` WHERE `rango_id` = \''.(int)$postData['aut_sec']['user_rango'].'\' LIMIT 1'));
}
Buscar:
Código PHP:
// SUMAR PUNTOS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_user FROM p_posts WHERE post_id = \''.(int)$post_id.'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
// ES MI POST?
$is_mypost = ($data['post_user'] == $tsUser->uid) ? true : false;
// NO ES MI POST, PUEDO VOTAR
if(!$is_mypost){
// YA LO VOTE?
$votado = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT tid FROM p_votos WHERE tid = \''.(int)$post_id.'\' AND tuser = \''.$tsUser->uid.'\' AND type = \'1\' LIMIT 1'));
if(empty($votado)){
// COMPROBAMOS LOS PUNTOS QUE PODEMOS DAR
if($tsCore->settings['c_allow_points'] > 0) {
$max_points = $tsCore->settings['c_allow_points'];
}elseif($tsCore->settings['c_allow_points'] == '-1') { //TRUCO, podrás dar todos los puntos que tengas disponibles
$max_points = $tsUser->info['user_puntosxdar'];
}elseif($tsCore->settings['c_allow_points'] == '-2') { //TRUCO, podrás dar todos los puntos que quieras (sin abusar ¬¬), se restarán igual, si tienes puesto mantener puntos, estarás debiendo puntos durante una temporada.
$max_points = 999999999;
}else{
$max_points = $tsUser->permisos['gopfp'];
}
// TENGO SUFICIENTES PUNTOS
if($tsUser->info['user_puntosxdar'] >= $puntos){
if($puntos > 0) { // Votar sin dar puntos? No, gracias.
if($puntos <= $max_points) { // seroo churra XD ._. No alteraciones de javascript para sumar más de lo que se permite (? LOL ¬¬
// SUMAR PUNTOS AL POST
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_puntos = post_puntos + '.(int)$puntos.' WHERE post_id = \''.(int)$post_id.'\'');
// SUMAR PUNTOS AL DUEÑO DEL POST
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$puntos.'\' WHERE user_id = \''.(int)$data['post_user'].'\'');
Reemplazar por:
Código PHP:
// SUMAR PUNTOS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_user, post_usec FROM p_posts WHERE post_id = \''.(int)$post_id.'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
// ES MI POST?
$is_mypost = ($data['post_user'] == $tsUser->uid || $data['post_usec'] == $tsUser->uid) ? true : false;
// NO ES MI POST, PUEDO VOTAR
if(!$is_mypost){
// YA LO VOTE?
$votado = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT tid FROM p_votos WHERE tid = \''.(int)$post_id.'\' AND tuser = \''.$tsUser->uid.'\' AND type = \'1\' LIMIT 1'));
if(empty($votado)){
// COMPROBAMOS LOS PUNTOS QUE PODEMOS DAR
if($tsCore->settings['c_allow_points'] > 0) {
$max_points = $tsCore->settings['c_allow_points'];
}elseif($tsCore->settings['c_allow_points'] == '-1') { //TRUCO, podrás dar todos los puntos que tengas disponibles
$max_points = $tsUser->info['user_puntosxdar'];
}elseif($tsCore->settings['c_allow_points'] == '-2') { //TRUCO, podrás dar todos los puntos que quieras (sin abusar ¬¬), se restarán igual, si tienes puesto mantener puntos, estarás debiendo puntos durante una temporada.
$max_points = 999999999;
}else{
$max_points = $tsUser->permisos['gopfp'];
}
// TENGO SUFICIENTES PUNTOS
if($tsUser->info['user_puntosxdar'] >= $puntos){
if($puntos > 0) { // Votar sin dar puntos? No, gracias.
if($puntos <= $max_points) { // seroo churra XD ._. No alteraciones de javascript para sumar más de lo que se permite (? LOL ¬¬
// SUMAR PUNTOS AL POST
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_puntos = post_puntos + '.(int)$puntos.' WHERE post_id = \''.(int)$post_id.'\'');
// SUMAR PUNTOS AL DUEÑO DEL POST
if($data['post_usec'] > 0){
$puntos = $puntos / 2;
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$puntos.'\' WHERE user_id = \''.(int)$data['post_user'].'\'');
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$puntos.'\' WHERE user_id = \''.(int)$data['post_usec'].'\'');
}else{
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$puntos.'\' WHERE user_id = \''.(int)$data['post_user'].'\'');
}
m.post_content.tpl --> themes --> default --> templates --> modules --> m.post_content.tpl
Buscar:
Código PHP:
{if !$tsUser->is_member}{include file='modules/m.global_ads_728.tpl'}{/if}
Debajo agregar:
Código PHP:
{if $tsPost.post_usec == $tsUser->uid}
<a title="Editar Post" onclick="location.href='{$tsConfig.url}/posts/editar/{$tsPost.post_id}'; return false" href="" class="btnActions">
<img alt="Editar" src="{$tsConfig.images}/editar.png"/> Editar</a>
{/if}
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>
<label>Usuario secundario</label>
<input type="text" tabindex="4" name="sec" maxlength="128" class="text-inp required" value="{$tsDraft.b_usec}"/>
Puedes insertar aqui un usuario que tendrá permiso para editar el post y los puntos obtenidos en este post se repartirán. <b>Verifica que escribes bien el usuario, escribe las mayúsculas, minisculás etc. que tenga su nick. De lo contrario, si introduces un usuario incorrecto se perderá mucha información.</b>
</li>
m.post_autor.tpl --> themes --> default --> templates --> modules --> m.post_autor.tpl
Buscar:
Código PHP:
</div>
{/if}
</div>
<br />
Debajo agregar:
Código PHP:
<div class="post-autor vcard">
<div class="box_title">
<div class="box_txt post_autor">Usuario secundario:</div>
<div class="box_rss">
<a href="{$tsConfig.url}/rss/posts-usuario/{$tsPost.aut_sec.user_name}">
<span style="position:relative;">
<img border="0" title="RSS con posts de {$tsPost.aut_sec.user_name}" alt="RSS con posts de Usuario" style="position:absolute; top:-354px; clip:rect(352px 16px 368px 0px);" src="{$tsConfig.images}/big1v12.png"/>
<img border="0" style="width:14px;height:12px" src="{$tsConfig.images}/space.gif"/>
</span>
</a>
</div>
</div>
<div class="avatarBox">
<a href="{$tsConfig.url}/perfil/{$tsPost.aut_sec.user_name}">
<img title="Ver perfil de {$tsPost.aut_sec.user_name}" alt="Ver perfil de {$tsPost.aut_sec.user_name}" class="avatar" src="{$tsConfig.url}/files/avatar/{$tsPost.aut_sec.user_id}_120.jpg"/>
</a>
</div>
<a href="{$tsConfig.url}/perfil/{$tsPost.aut_sec.user_name}" style="text-decoration:none">
<span class="given-name" style="color:#{$tsPost.aut_sec.rango.r_color}">{$tsPost.aut_sec.user_name}</span>
</a>
<br />
<span class="title">{$tsPost.aut_sec.rango.r_name}</span>
<br />
<img src="{$tsConfig.default}/images/space.gif" class="status {$tsPost.aut_sec.status.css}" title="{$tsPost.aut_sec.status.t}"/>
<img src="{$tsConfig.default}/images/icons/ran/{$tsPost.aut_sec.rango.r_image}" title="{$tsPost.aut_sec.rango.r_name}" />
<img src="{$tsConfig.default}/images/icons/{if $tsPost.aut_sec.user_sexo == 0}female{else}male{/if}.png" title="{if $tsPost.aut_sec.user_sexo == 0}Mujer{else}Hombre{/if}" />
<img src="{$tsConfig.default}/images/flags/{$tsPost.aut_sec.pais.icon}.png" style="padding:2px" title="{$tsPost.aut_sec.pais.name}" />
{if $tsPost.aut_sec.user_id != $tsUser->uid}<a href="#" onclick="{if !$tsUser->is_member}registro_load_form();{else}mensaje.nuevo('{$tsPost.aut_sec.user_name}','','','');{/if}return false"><img title="Enviar mensaje privado" src="{$tsConfig.images}/icon-mensajes-recibidos.gif"/></a>{/if}
{if !$tsUser->is_member}
<hr class="divider"/>
<a class="btn_g follow_user_post" href="#" onclick="registro_load_form(); return false"><span class="icons follow">Seguir Usuario</span></a>
{elseif $tsPost.aut_sec.user_id != $tsUser->uid}
<hr class="divider"/>
<a class="btn_g unfollow_user_post" onclick="notifica.unfollow('user', {$tsPost.aut_sec.user_id}, notifica.userInPostHandle, $(this).children('span'))" {if !$tsPost.aut_sec.follow}style="display: none;"{/if}><span class="icons unfollow">Dejar de seguir</span></a>
<a class="btn_g follow_user_post" onclick="notifica.follow('user', {$tsPost.aut_sec.user_id}, notifica.userInPostHandle, $(this).children('span'))" {if $tsPost.aut_sec.follow > 0}style="display: none;"{/if}><span class="icons follow">Seguir Usuario</span></a>
{/if}
<hr class="divider"/>
<div class="metadata-usuario">
<span class="nData user_follow_count">{$tsPost.aut_sec.user_seguidores}</span>
<span class="txtData">Seguidores</span>
<span class="nData" style="color: #0196ff">{$tsPost.aut_sec.user_puntos}</span>
<span class="txtData">Puntos</span>
<span class="nData">{$tsPost.aut_sec.user_posts}</span>
<span class="txtData">Posts</span>
<span style="color: #456c00" class="nData">{$tsPost.aut_sec.user_comentarios}</span>
<span class="txtData">Comentarios</span>
</div>
{if $tsUser->is_admod || $tsUser->permisos.modu || $tsUser->permisos.mosu}
<hr class="divider"/>
<div class="mod-actions">
<b>Herramientas</b>
<a href="{$tsConfig.url}/moderacion/buscador/1/1/{$tsPost.post_ip}" class="geoip" target="_blank">{$tsPost.post_ip}</a>
{if $tsUser->is_admod == 1}<a href="{$tsConfig.url}/admin/users?act=show&uid={$tsPost.aut_sec.user_id}" class="edituser">Editar Usuario</a>{/if}
{if $tsPost.aut_sec.user_id != $tsUser->uid} <a href="#" onclick="mod.users.action({$tsPost.aut_sec.user_id}, 'aviso', false); return false;" class="alert">Enviar Aviso</a>{/if}
{if $tsPost.aut_sec.user_id != $tsUser->uid && $tsUser->is_admod || $tsUser->permisos.modu || $tsUser->permisos.mosu}
{if $tsPost.aut_sec.user_baneado}
{if $tsUser->is_admod || $tsUser->permisos.modu}<a href="#" onclick="mod.reboot({$tsPost.aut_sec.user_id}, 'users', 'unban', false); $(this).remove(); return false;" class="unban">Desuspender Usuario</a>{/if}
{else}
{if $tsUser->is_admod || $tsUser->permisos.mosu}<a href="#" onclick="mod.users.action({$tsPost.aut_sec.user_id}, 'ban', false); $(this).remove(); return false;" class="ban">Suspender Usuario</a>{/if}
{/if}
{/if}
</div>
{/if}
</div>
<br />
Creditos: aperpen