¡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 Proteger posts con pass (Act 1.3)
#1

1
Mejor respuesta del mensaje Proteger posts con pass (Act 1.3)
[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]


¿Que tiene?
  • Los miembros del staff podrán acceder sin pass.
  • Pass con una fuerte encriptación.
  • La pass no se podrá editar.
  • Icono de una llavecita en los posts protegidos en la home.


Ejecutar esta consulta

ALTER TABLE `p_postsADD `p_passVARCHAR(32NULL DEFAULT NULL 


En c.cuenta.php --> inc --> class --> c.cuenta.php

Buscar:

} else {
            
$postData['sponsored'] = empty($_POST['patrocinado']) ? 1;
            
$postData['sticky'] = empty($_POST['sticky']) ? 1;
        } 


Debajo agregar:

$postData['pass'] = empty($_POST['pass']) ? md5(sha1($_POST['pass'].$postData['title'])); 


Buscar:

post_status 


Al lado agregar:

p_pass 


Buscar:

$query db_exec(array(__FILE____LINE__), 'query''SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id  '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == '' ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 'p.post_id > 0' 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').'  '.$c_where.' '.$s_where.' GROUP BY p.post_id ORDER BY '.$s_order.' DESC LIMIT '.$start); 


Al lado de:

p.post_sticky


Agregar:

p.p_pass


Buscar:

// INSERTAMOS
            
$_SERVER['REMOTE_ADDR'] = $_SERVER['X_FORWARDED_FOR'] ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
            if(!
filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) { die('0: Su ip no se pudo validar.'); }
            if(
db_exec(array(__FILE____LINE__), 'query''INSERT INTO `p_posts` (post_user, post_category, post_title, post_body, post_date, post_tags, post_ip, post_private, post_block_comments, post_sponsored, post_sticky, post_smileys, post_visitantes, post_status, p_pass) 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'] == || $tsUser->permisos['gorpap'] == true) ? '\'3\'' '\'0\'').')')) { 


Al lado de:

post_status 


Agregar:

p_pass 


Buscar en esa linea:

'.(!$tsUser->is_admod && ($tsCore->settings['c_desapprove_post'] == 1 || $tsUser->permisos['gorpap'] == true) ? '\'3\'' '\'0\'').


Agregar:

, \''.(int)$postData['pass'].'\' 


Buscar:

// 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(empty($_POST['pass']) && empty($_POST['staff']) && !empty($postData['p_pass']))
        return 
4;
        elseif(
$tsUser->is_admod && $_POST['staff']){
            
        }elseif(!empty(
$postData['p_pass'])){
            
$pass md5(sha1($_POST['pass'].$postData['post_title']));
            if(
$pass != $postData['p_pass'])
            return 
5;
        } 


En posts.php --> inc --> php --> posts.php

Buscar:

if($tsPost['post_id'] > 0) { 


Reemplazar por:

if($tsPost == 4){
        
$tsPage "post.aviso";
        
$tsAjax 0;
        
$smarty->assign("tsPass"1);
        }elseif(
$tsPost == 5){
        
$tsPage "post.aviso";
        
$tsAjax 0;
        
$smarty->assign("tsPass"1);
        
$smarty->assign("tsPassi"1);
    }elseif(
$tsPost['post_id'] > 0) { 


En t.post.aviso.tpl --> themes --> default --> templates --> t.post.aviso.tpl

Buscar:

<div class="post-{$tsAviso.0}"


Reemplazar por:

{if $tsPass}
                {if 
$tsPassi}<div class="mensajes error"><b>La pass introducida es incorrecta</b></div>{/if}
                <
div class="post-deleted">
                    <
h3>Este post est&aacuteprotegido por una contrase&ntilde;a.</h3>
                    
Introduce la contraseña para desbloquearlo:<br />
                    <
p><form action="" method="post">
                    <
input type="password" name="pass" />
                    <
input type="submit" value="Enviar" />
                    {if 
$tsUser->is_admod}<button name="staff" value="1">Acceder como miembro de staff (Sin pass)</button>{/if}
                    </
form></p>
                  </
div
                {else}
                <
div class="post-{$tsAviso.0}"


Buscar:

{include file='sections/main_footer.tpl'


Arriba agregar:

{/if} 


En m.home_last_posts.tpl --> themes --> default --> templates --> modules --> m.home_last_posts.tpl

Buscar:

<strong>{$p.post_comments}</strong></span


Debajo agregar:

{if $p.p_pass != 0}<span><img src="{$tsConfig.tema.t_url}/images/icons/key.png" height="10" width="10" /></span>{/if} 


En m.agregar_form.tpl --> themes --> default --> templates --> modules --> m.agregar_form.tpl

Buscar:

<div class="option clearbeta">  
                                        <
input type="checkbox" tabindex="9" name="smileys" id="smileys" class="floatL" {if $tsDraft.b_smileys == 1}checked={/if}>
                                        <
class="floatL">
                                            <
label for="smileys">Sin Smileys</label>
                                            
Si tu post no necesita smileysdesact&iacute;valos.
                                        </
p>
                                    </
div


Debajo agregar:

{if $tsAction != 'editar'}
                                    <
div class="option clearbeta">  
                                        <
class="floatL">
                                            <
label for="pass">Proteger el post con contraseña</label>
                                            
Dejar en blanco para desactivarNotaEsta opcion no se podr&aacutedesactivar.(El staff podr&aacuteacceder al post sin necesidad de la pass)<br>
                                            <
input type="pass" tabindex="8" name="pass" id="pass" class="floatL"/>
                                        </
p>
                                    </
div>
                                    {/if} 



Creditos: Debes agradecer para ver el contenido...
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)