¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Posts conjuntos (Dos usuarios) (Act 1.3)
#1

4
Mejor respuesta del mensaje Posts conjuntos (Dos usuarios) (Act 1.3)Demo
Debes agradecer para ver el contenido...
 
 
Ejecutar esta consulta
ALTER TABLE `p_postsADD `post_usecINT11 NOT NULL DEFAULT '0'
 
 
c.posts.php --> inc --> class --> c.posts.php

Buscar:
/*
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:
'sec' => empty($_POST['sec']) ? $tsCore->setSecure($_POST['sec']), 
 
 
Buscar:
//ANTIFLOOD
$antiflood 2
 
  
Debajo agregar:
if($postData['sec'] != 0){
$postData['sec'] = $tsUser->getUserID($postData['sec']);
if(
$postData['sec'] == 0) return 'El usuario secundario ingresado no existe.'
 
 
Buscar:
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:
post_usec
 
 
Resultado:
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:
\''.(int)$postData['block_comments'].'\', \''.(int)$postData['sponsored'].'\', \''.(int)$postData['sticky'].'\', 
 
 
Al  lado agregar:
\''.$postData['sec'].'\', 
 
 
Resultado:
\''.(int)$postData['block_comments'].'\', \''.(int)$postData['sponsored'].'\', \''.(int)$postData['sticky'].'\', \''.$postData['sec'].'\', 
 
  
Buscar:
$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:
$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:
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:
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']) ? $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:
post_visitantes = \''.$postData['visitantes'].'\', 
 
 
Al lado agregar:
post_usec = \''.$postData['sec'].'\', 
 
 
Buscar:
if(empty($ford['post_id'])){
return 
'El post elegido no existe.';
}elseif(
$ford['post_status'] != '0' && $tsUser->is_admod == && $tsUser->permisos['moedpo'] == false){
return 
'El post no puede ser editado.';
}elseif((
$tsUser->uid != $ford['post_user']) && $tsUser->is_admod == && $tsUser->permisos['moedpo'] == false){
return 
'No puedes editar un post que no es tuyo.';

 
 
Reemplazar por:
if(empty($ford['post_id'])){
return 
'El post elegido no existe.';
}elseif(
$ford['post_status'] != '0' && $tsUser->is_admod == && $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 == && $tsUser->permisos['moedpo'] == false){
return 
'No puedes editar un post que no es tuyo.';
}
$ford['post_usec'] = $tsUser->getUserName($ford['post_usec']); 
 
 
Buscar:
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'] == '' 'AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' LIMIT 1');
//
$postData db_exec('fetch_assoc'$query); 
 
 
Debajo agregar:
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'] == '' '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:
// 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:
// 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:
{if !$tsUser->is_member}{include file='modules/m.global_ads_728.tpl'}{/if} 
 
 
Debajo agregar:
{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:
<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 comasque describa el contenidoEjemplo: <b>golinglesesCopa OrofutbolChicharitoM&eacute;xico</b>
</
li
 
 
Debajo agregar:
<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 usuarioescribe las mayúsculasminisculás etcque tenga su nickDe lo contrariosi introduces un usuario incorrecto se perderá mucha información.</b>
</
li
 
 
m.post_autor.tpl --> themes --> default --> templates --> modules --> m.post_autor.tpl
 
Buscar:
</div>
{/if}
</
div>

<
br /> 
 
  
Debajo agregar:
<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"/>
<
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"/>
<
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>
<
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&amp;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: Debes agradecer para ver el contenido...
Responder
#2

0
Excelente trabajo! Lo voy a probar pero ya veo en la demo que funciona perfectamente! Muchas gracias
Responder
#3

0
De nada @zero .
Lo acabo de actualizar ahora, lo actualizo en el hosting de pruebas y lo voy viendo, así no suelto una cosa que no funcione.
El segundo usuario no tiene el mismo diseño que el primero, no sé si se le ha olvidado ponerlo a aperpen o es así, lo he dejado tal como viene y como nadie usa el tema default no me he puesto a editarlo.
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)