Colocar el logo junto al menú en Prestashop

logo prestashop

Si estas trabajando con Prestashop 1.6,  con la plantilla que trae por defecto y por necesidad de diseño necesitas colocar el logo junto al menú, aquí te doy una solución.

Debes saber que esta solución tendras que tocar el código, por lo que si no tienes experiencia programando, déjalo a alguien que sepa o ve con mucho cuidado.

En el archivo  header.tpl. que hallarás siguiendo la ruta :

 /themes/default-bootstrap/header.tpl 

y comenta el logo actual que está en las líneas siguientes :

<div id="header_logo">
<a href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}" title="{$shop_name|escape:'html':'UTF-8'}">
<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if isset($logo_image_width) && $logo_image_width} width="{$logo_image_width}"{/if}{if isset($logo_image_height) && $logo_image_height} height="{$logo_image_height}"{/if}/>
</a>
</div>

Copia el código que acabas de comentar.

Otros post sobre Prestashop

Ahora ve al archivo  blocktopmenu.tpl, que es el encargado de manejar el área del menú.

Su ruta es la que veras debajo:

/themes/default-bootstrap/modules/blocktopmenu/blocktopmenu.tpl

Busca el div  que contiene el menú, que es este:

<div id="block_top_menu" class="sf-contener clearfix col-lg-12"> …

Y  justo antes de el, crea  un div del tipo :

<div class="col-sm-4 clearfix"></div>

 Y dentro pega  dentro lo que has copiado de  header.tpl, quedará algo asi:

<div class="col-sm-4 clearfix">
<a href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}" title="{$shop_name|escape:'html':'UTF-8'}">
<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if isset($logo_image_width) && $logo_image_width} width="{$logo_image_width}"{/if}{if isset($logo_image_height) && $logo_image_height} height="{$logo_image_height}"{/if}/></a>
</div>

Puede haber, dependiendo de la versión alguna variación, pero teniendo cuidado de colocar el código correctamente funcionará

Espero haber ayudado a alguien con esto.

Un saludo

Quién va en busca de montañas, no puede detenerse a recoger las piedras del camino.

J. Martí

Búsqueda por incrementos y decremento en Laravel

laravel

Parte de la magia de este framework , es que podemos realizar búsqueda por incrementos y decremento en Laravel, aprovechando las funciones que nos ofrece Eloquent.
Esto puede sernos de mucha utilidad si asignamos valores por ejemplo a los usuarios, por participación y queremos obtener los movimientos en esos valores.

Relaciones en Laravel


Veamos un ejemplo:
En el caso siguiente asignamos inicialmente 50 puntos a cada cliente y luego obtenemos del modelo aquellos que incrementan los puntos y los que los pierden.

 $clientes = Customer::find($customer_id);
 $puntos_acumulados = $clientes->puntos_acumulados + 50;
 $clientes->update(['puntos_acumulados' => $puntos_acumulados]);
 // añadimos puntos
 Cliente::find($customer_id)->increment('puntos_acumulados', 50);
 // eliminamos puntos
 Cliente::find($customer_id)->decrement('puntos_acumulados', 50); 

Otro modo de utilizar incrementos y decrementos es aplicándolo directamente a la variable que representa al modelo por ejemplo en vez de escribir algo como:

 $productos = Producto::find($productos_id);
 $productos ->read_count++;
 $productos ->save();
 Incrementamos o decrecemos directamente asi:
 $productos = Producto::find($productos_id);
 $productos ->increment('read_count');
 O directamente en el modelo
 Producto::find(productos_id)->increment('read_count');
 Producto::find(productos_id)->increment('read_count', 5); // sumo 5
 Producto::find(productos_id)->decrement('stock'); // resto 1 

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

..Subir montaña hermana hombres…..

Laravel nos permite añadir propiedades mutacionales.

laravel

Por si lo necesitamos, debemos saber que Laravel nos permite añadir propiedades mutacionales, que nos permitan por ejemplo obtener el nombre completo de los clientes, aunque los tengamos separados en la base de datos por apellidos y nombre.

 function getNombreCompleto() 
{
 return $this->nombres . ' ' . $this->apellidos;
}

La cual llamaremos luego desde el  modelo Cliente y  con el uso de append, podemos añadirla.

class Cliente extends Model
{
 protected $appends = ['nombre_completo'];
}

Sin embargo no termina ahí, si   quisiéramos organizar a los clientes por el nombre completo no podríamos, o sea no podemos hacer esto:

$clientes = Cliente::orderBy('nombre_completo')->get();  
Pero si organizamos los datos luego de cogerlos, con sortBy si funciona, o sea:
$clients = Client::get()->sortBy('nombre_completo');  

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

..Subir montaña hermana hombres…..

Cómo funcionan las vistas, las rutas y los controladores Laravel

laravel

Si quieres saber cómo funcionan las vistas, las rutas y los controladores Laravel, en este post intentaré explicarlo.

Sabiendo que hay mucho escrito sobre el tema, pretendo explicar muy brevemente que son estos elementos que componen Laravel.

Las vistas son los archivos HTML, donde se muestra la información de la web, las rutas son el camino que damos a esas vistas para que se vean y que pueden incluir elementos, como datos denominaciones y otros, y los controladores son los archivos o espacios donde creamos la lógica de programación o sea se encargan de ejecutar  las acciones que generan los datos.

El gestor de plantillas o vistas en Laravel se llama Blade y es el encargado de crear estas vistas que combinan el lenguaje HTML y el PHP, con una sintaxis propia.

Si escribimos en la consola el comando de artisan :

artisan route list

Obtendremos un listado de todas las rutas que tenemos, con sus nombre los controladores de donde obtienen los datos y la uri que la conforma

Por tanto el  método del controlador devuelve  casi siempre una vista la vista a la que queremos dirigir sus datos. Si el controlador no es un controlador de  recursos (resource controller es aquel que se encarga de crear un CRUD), habrá que escribir en el archivo  web.php dentro de la carpeta routes, la ruta completa que deseamos, si es de recursos, con escribir solo el nombre del modelo bastara para que cree todas las rutas para un CRUD

Route:: resource('/modelos', 'ModeloController');

Cada vez que creemos un controlador habrá que relacionar sus datos con una ruta y una vista si  deseamos que los datos se muestren.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…..lo que realmente importa no es lo que te da la vida, sino lo que haces con ello….

Métodos X o Y

laravel

Los métodos X o Y, son algunos de los que posee Eloquent , que agilizan y optimizan operaciones del tipo haz esto y si no esto, algunas de ellas son findOrFail  y firstOrCreate

Más de Laravel

Sin su uso, por ejemplo para lanzar un error cuando no esta usuario que esperamos, haríamos esto:

$user = User::find($id);
if (!$user) { abort (404); }

 si usamos findOrFail seria:

 si usamos findOrFail seria:

Si deseamos hallar el primer usuario con un email dado podemos hacer esto:

$user = User::where('email', $email)->first();
if (!$user) {
  User::create([
    'email' => $email
  ]);
}

O usar el método  firstOrCreate y hacerlo asi

$user = User::firstOrCreate(['email' => $email]);

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……

Trabajando con el Config en Laravel

laravel

Una de las potentes características con que poder crear y escalar una aplicación, es que facilita de un modo muy sencillo, desarrollar empleando el config en Laravel.

Esta flexibilidad para establecer y modificar parámetros de configuración, diferentes  y alternos, es parte de la magia que Laravel ofrece.

En el directorio config, podremos crear nuestra propia configuración de la api, no ya solo de modificar parámetros, sino además de crear nuestros propios archivos de configuración

Crear un archivo de configuración

Para crearlo basta con crear en la carpeta config, un nuevo file, a modo de ejemplo podemos llamarlo, sitios.php.

Siguiendo las convenciones de Laravel, un archivo de configuración es esencialmente un array de arrays que agrupa parámetros, o sea que con declarar un return que devuelva un arreglo vacío dentro, ya tendríamos un archivo listo.

Nuestro próximo paso será añadir las opciones que declararan el comportamiento que esperamos, por tanto siendo un array de array acepta matrices multidimensionales.

Supongamos que trabajaremos con tres tipos de sitios, sitio_grande, sitio_mediano y sitio_pequeño,  a los cuales nos interesa configurarles las opciones url, cookie, y el tiempo  de vida de esta; entonces creamos para ellos una matriz múltiples con sus parámetros:

 return [ 
     'sitio_grande' => [ 
                        'url' => '',
                        'cookie' => '',
                        'durac_cookie' => ''
             ], 
     'sitio_mediano' => [ 
                        'url' => '',
                        'cookie' => '',
                        'durac_cookie' => ''
             ],
     'sitio_pequeño' => [ 
                        'url' => '',
                        'cookie' => '',
                        'durac_cookie' => ''
             ],
     ]; 

En nuestro ejemplo no hemos dado valor a las variables, pues queremos asignarlos luego de modo dinámico, pero si no fuera necesario y tuviéramos valores únicos, el archivo pordria quedar configurado asi:

 return [ 
     'sitio_grande' => [ 
                        'url' => 'https://sitio_grande.com',
                        'cookie' => 'ksiwiwjwoiii99k393j33’303j0',
                        'durac_cookie' => '3600'
             ], 
     'sitio_mediano' => [ 
                        'url' => 'https://sitio_mediano.com',
                        'cookie' => 'msksnsossjwoiii5858484n33j0',
                        'durac_cookie' => '3600'              
 ],
     'sitio_pequeño' => [ 
                        'url' => 'https://sitio_pequeño.com',
                        'cookie' => '0siwiwj09090393j33’zjsjiwwj9',
                        'durac_cookie' => '3600'
             ],
     ]; 

Acceder a la configuración

Para acceder a la configuración podemos usar la fachada Config, y su método get, siguiendo la notación de punto. Podriamos acceder a la cookie del sitio mediano, de este modo:

dd(Config::get(‘sitios.sitio_mediano.cookie’);

Esto nos devolverá el valor de la configuración para el sitio medio, y su variable cookie.

La estructura es :

nombre_archivo_configuracion.nombre_array_nivel_superior.variable.

Para acceder a las variables y modificarlas, la fachada Config, dispone del método set, con el cual pasamos un array con dos valores: la ruta de la variable y el valor que estamos asignadole.

Config::set(‘sitios.sitio_mediano.cookie’,
’82828h2922992922n28282’);

Funcion Config()

Se puede acceder también a los parámetros de configuración mediante la función Config(), su diferencia con la fachada es que no usa métodos para ejecutarse

Para devolver los valores:

dd(config(‘sitios.sitio_mediano.cookie’);

 Para asignar valores:

config(‘sitios.sitio_mediano.cookie’,
’82828h2922992922n28282’);

o

config(‘[sitios.sitio_mediano.cookie’=>
’82828h2922992922n28282’]);

Para aprovechar de modo más integro y abarcador, las posibilidades de configuración de Laravel, podemos utilizar las variables de entorno, lo cual protege aún mas nuestros datos y su acceso.

La estructura que nos ofrece Laravel es hacer referencia a los valores que hemos establecido en el archivo env.  donde guardamos las variables de entorno. En nuestro ejemplo nuestro archivo sitios.php quedaría así:

 return [ 
     'sitio_grande' => [ 
                        'url' => env('URL_SITIO_GRANDE'),
                        'cookie' => env('COOKIE_SITIO_GRANDE'),
                        'durac_cookie' => ' env('DURAC_ COOKIE_SITIO_GRANDE')
             ], 
     'sitio_mediano' => [ 
                        'url' => env('URL_SITIO_MEDIANO'),
                        'cookie' => env('COOKIE_SITIO_MEDIANO'),
                        'durac_cookie' => ' env('DURAC_COOKIE_SITIO_MEDIANO')
 ],
     'sitio_pequeño' => [ 
                        'url' => env('URL_SITIO_PEQUEÑO'),
                        'cookie' => env('COOKIE_SITIO_PEQUEÑO'),
                        'durac_cookie' => ' env('DURAC_COOKIE_SITIO_PEQUEÑO')
             ],
     ]; 

Para lograr esto bastara con haber añadido en el archivo env los valores que esperamos recibir.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…..subir montañas, hermana hombres……

El uso de Having y Raw

laravel

La combinación de las clausulas having  y  raw, nos ayudará, crear consultas más básicas

Por ejemplo, si necesitamos crear una consulta que devuelva  la cantidad de productos que correspondan a aquellas categorías cuyo id sea mayor de 1.

Podemos entonces construir la consulta de este modo.

 Raw  indicara el carácter directo de la consulta, group by  agrupará  a los productos por categoría, Count  los contará y  Having devolverá aquellos con categoría  >1

SELECT *, COUNT(*) FROM products GROUP BY category_id HAVING count(*) > 1;

DB::table('products')
	->select('*', DB::raw('COUNT(*) as products_count'))
	->groupBy('category_id')
	->having('products_count', '>', 1)
	->get();

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana a los hombres……

Crear Consultas de la base de datos caché

laravel

Laravel simplifica bastante, el acto de crear consultas de la base de datos caché.

Esto permite al framework limitar las consultas repetidas a la base de datos, poniendo a nuestra disposición llamadas al  método que maneja la  caché.

Pongamos como ejemplo que tenemos una tabla ‘consultas’, que se actualiza poco y a la cual necesitamos acceder, muchas veces, para incorporar sus datos en algún analisis.

Lo que nos permite Laravel es almacenar estas consultas en cache  durante  un tiempo, ene nuestro ejemplo colocamos  60 minutos y acceder a ellas mediante el uso de remember, sin tocar la BD

$consultas = Consulta::remember(60)->get();

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……..

El uso del método update

laravel

El método update es el encargado de retornar las columnas afectadas por un acción, veámoslo debajo

$cantidad = $casas->whereNull('categoria_id')->update(['categoria_id' => 2]);

Aquí update nos devuelve el número de registros o filas donde se cumple el planteamiento, asignar el valor 2 a aquellas casas donde categoría_id es null

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….Un sueño es más que todo  y casi nada……

Translate »