Jump to content

Se puede crear una tienda privada


olevipes

Recommended Posts

  • 9 months later...

SOLUCION TIENDA PRIVADA

IMAGENES DE DEMOSTRACION DENTRO DEL ZIP

Ante todo gracias a hans del foro todoprestashop.com por su aportación de private_shop.

Personalmente he modificado el script a mi gusto para mi tienda, el resultado lo podeis ver en las imagenes que adjunto. A parte os subo el codigo que he modificado, que resumo a continuación:

Version de prestashop utilizada: 1.3.7 (stable)
Ficheros de prestashop modificados: init.php, authentication.php
Ficheros añadidos a prestashop: shop-private.php (añadido por mi)
Ficheros añadidos al theme: shop-private.tpl (modificacion del fichero original de hans), shop-private.css (plantilla de estilo, de esta manera podemos utilizar esta modificacion en cualquier theme).
Ficheros modificados al theme: es.php

Empecemos por los ficheros de prestashop modificados: header.php, init.php, authentication.php.

init.php justo depués de la linea: $maintenance = true; he introducido el siguiente bloque (otra vez gracias a hans):

elseif (intval(Configuration::get('PS_SHOP_PRIVATE')))
   $shop_private = true;



al final de este mismo fichero init.php añadimos el siguiente bloque:

/* Display a login page if shop is private and the user is not logged */
if (isset($shop_private) && !$cookie->isLogged() && !strrpos($_SERVER["SCRIPT_NAME"],"shop-private"))
{

   $smarty->display(_PS_THEME_DIR_.'shop-private.tpl');
   exit;
}



authentication.php justo después de la linea: Tools::redirect('my-account.php'); he introducido el siguiente bloque:

if (isset($shop_private) && !$cookie->isLogged())
   Tools::redirect('shop-private.php');



Ficheros añadidos a Prestashop: shop-private.php

Este fichero es una copia y modificación del fichero authentication.php, de tal manera que solo cogemos la parte de login y no permitimos que se puedan registrar nuevos usuarios. Este fichero es utilizado por el fichero shop-private.tpl ubicado en el Theme.

Ficheros añadidos al Theme de prestashop: shop-private.tpl, es.php, shop-private.css

shop-private.tpl (gracias a hans)

He modificado el fichero original de hans para que en lugar de aparecer un link hacia el form de login, tengamos el form de login directamente en la página

Código añadido por mi:

<link href="{$css_dir}shop-private.css" rel="stylesheet" type="text/css" />


    

           <form action="{$base_dir_ssl}shop-private.php" method="post" id="login_form" class="std">

{l s='Already registered ?'}


{l s='E-mail address'} 
<input type="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|escape:'htmlall'|stripslashes}{/if}" class="account_input" /></span>



{l s='Password'} 
<input type="password" id="passwd" name="passwd" value="{if isset($smarty.post.passwd)}{$smarty.post.passwd|escape:'htmlall'|stripslashes}{/if}" class="account_input" /></span>



                   {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
                   <input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Log in'}" />


           </form>

           {if isset($errors) && $errors}


¡¡ ERROR !! :
               {foreach from=$errors key=k item=error}

{$error}
               {/foreach}



Fijaros en las siguiente linea:

<form action="{$base_dir_ssl}shop-private.php" method="post" id="login_form" class="std">



Hay hago un post hacia el fichero shop-private.php para que valide los datos y me devuelva los errores o directamente me dirija a la tienda.

es.php

He modificado este fichero para añadir los strings que se utilizan, las lineas añadidas son las siguientes:

$_LANG['shop-private_5f0258bf719ab828e20edf91e4fb24a7'] = 'Introduce Usuario y Password';
$_LANG['shop-private_8b5dd64ab8d0b8158906796b53a200e2'] = 'Correo electrónico';
$_LANG['shop-private_dc647eb65e6711e155375218212b3964'] = 'Contraseña';
$_LANG['shop-private_bffe9a3c9a7e00ba00a11749e022d911'] = 'Entrar'



shop-private.css (Este css lo he creado especificamente para la pantalla de login, css copiado del theme default de prestashop y adaptado para la pantalla de login)

El resultado lo podeis ver en los 2 pngs que os adjunto.

Cualquier duda, ya sabeis PM, he intentare solucionarla. Solo llevo trabajando con prestashop 3 dias, tampoco es que sea un especialista.

private_shop.zip

39784_ryGhWpwn7fkWTY9uE958_t

39785_fa3AuGKPmwUgLpPod4z9_t

Link to comment
Share on other sites

  • 4 weeks later...

Me gustaria preguntar varias cosas.

Lo primero es saber si estas modificaciones se pueden realizar sobre la ultima version de prestashop o en que version funciona correctamente.

Tambien me gustaria saber viendo las imagenes, si al cliente le das la opcion de ingresar su email/password.. pero no veo la opcion de registro.

Gracias

Link to comment
Share on other sites


Lo primero es saber si estas modificaciones se pueden realizar sobre la ultima version de prestashop o en que version funciona correctamente.


Como Pikolin20 explica, la versión que utilizó fue la 1.3.7, si pretendes hacer estos cambios en la 1.4 probablemente no funcionen ya que está última versión es diferente.

Saludos.
Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...