Archives pour la catégorie ‘ Prestashop’

Prestashop : Bouton d’impression pour les images avec fancybox

Voici un petit tips pour rajouter facilement un bouton d’impression pour prestashop dans la popin fancyBox sans toucher au code source du plugin

 

Dans le fichier /themes/yourtheme/product.css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#fancybox-print-item {
  width:50px;
  height:44px;
  background-image:url('../img/print-sheet.png');
  background-repeat:no-repeat;
  float:right;
  position:relative;
  margin-top:-44px;
  margin-right:4px;
  z-index:1103;
}
#fancybox-print-item a{ 
   width:50px;
   height:44px;
   display:block;
}

Dans le fichier themes/yourtheme/product.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Ajout d'une fonction d'impression à fancyBox
$('#fancybox-close').
Pas de commentaires

Prestashop problème max_input_vars en hébergement mutualisé chez ovh

Voici une petite astuce pratique pour tout ceux qui ont un hébergement mutualisé  avec la solution Prestashop chez l’hébergeur OVH
La limite de la variable php est fixée à 2000 éléments.

Cependant dans certains cas il peut être nécessaire d’augmenter cette valeur comme sur la capture ci-dessous dans la page des traductions.

Max input var ovh et traduction Prestashop

La solution est de placer un .htacess dans le dossier de l’administration avec le contenu suivant :

SetEnv PHP_VER 5.2

Les traductions sont à présent accessibles 🙂

Max input var ovh et traduction Prestashop

 

Edit 2016 :
A ma connaissance cette solution ne fonctionne plus chez ovh.
Si vous souhaitez ajouter uniquement quelques traductions manuellement vous pouvez consulter l’article :

Prestashop : Ajouter vos traductions dans les fichiers de traductions

2 commentaires

Prestashop : Charger un objet via n’importe quel champ

Durant les derniers mois j’ai travaillé de manière régulière avec la solution concurrente « Magento » qui permets le chargement et la récupération d’informations sur les objets de manière très souple via n’importe quel champ.
Cette fonctionnalité n’est malheureusement pas disponible à ce jour avec Prestashop, (version 1.5.4.1 à ce jour ), mais avec le mécanisme des override, il est relativement aisé d’adapter cette logique.

Mon besoin a été motivé par la nécessité d’ajouter de nombreux champs spécifiques sur un site prestashop en cours de développement.

/!\ Cette méthode nécessite au minimum php en version 5.3 pour fonctionner.

Voici les codes à mettre en place dans le fichier override/classes/ObjectModel.php

<?php
 
abstract class ObjectModel extends ObjectModelCore
{
 
    /**
     * Rajout de la possibilité de récupérer un objet par n'importe quel champ
     * (Il est nécessaire de l'instancier avant)
     * 
     * @param string $field champ de la table 
     * @param string $value valeur du champ de la table
     * @return int id_object : identifiant de l'objet
     */
    public static function getObjectIdByField($field = '', $value='') {
 
		$className = get_called_class();   
        return Db::getInstance()->getValue("SELECT ".
Pas de commentaires

Prestashop : Module Scroll To Top

J’ai récemment installé sur ce blog le plugin wordpress « Dynamic to Top » que je trouve très pratique à utiliser et vraiment intuitif à l’utilisation.
Dans le cadre d’un projet Prestashop, j’ai donc décidé de créer un module Prestashop reprenant ces fonctionnalités.
Celui-ci se base sur le script de l’auteur du plugin wordpress disponible à l’adresse suivante : http://mattvarone.com/web-design/uitotop-jquery-plugin/

Le plugin fera dynamiquement apparaitre une image avec un lien de retour vers le haut de page sur l’ensemble des pages trop longues du site. (Le bloc encadré en rouge sur la capture ci-dessous)

Prestashop scroll to top

Aucune configuration n’est nécessaire, le module est fonctionnel dès son installation

Vous pouvez télécharger ce module : Module Prestashop Scroll To Top
( Attention fonctionne uniquement avec prestashop 1.5.xx )

Edit 11/11/2013 : La nouvelle version du module est également compatible prestashop 1.4.x…

5 commentaires

Prestashop 1.5.x : Ajouter un css ou un javascript d’un module uniquement sur un controlleur

Dans le cadre du développement d’un nouveau module pour un site tournant sous prestashop 1.5,  celui-ci nécessite l’utilisation de fichiers css et javascripts spécifiques pour son bon fonctionnement.
Cependant ce module étant uniquement utilisé sur la fiche produit, je ne voyais pas l’intérêt de charger inutilement ces fichiers sur l’ensemble des pages du site.

Voici donc une astuce qui vous permettra de charger vos fichiers uniquement dans le controlleur nécessaire :
ProductController est donc à remplacer par le controller dans lequel vous souhaitez insérer vos contenus.

/**
* Hook Header Prestashop
* @param type $params
*/
public function hookHeader($params){
 
//Récupération du contexte
$context = Context::getContext();
 
//On ajoute uniquement nos éléments dans la fiche produit donc le controller "ProductController"
 if ( $context->controller instanceof ProductController ) {
 
 $this->context->controller->addCSS(($this->_path).'module-style.css', 'all');
 $this->context->controller->addJS(($this->_path).
Pas de commentaires

Prestashop : Ajouter un editeur wysiwyg sur la description des catégories

Voici un code pratique et rapide à mettre en place afin de pouvoir afficher du texte html dans la description des catégories sur la plateforme ecommerce Prestashop ( version 1.4.xx )

Edit : Si vous souhaitez réaliser cette action sur prestashop 1.5 vous pouvez consulter l’article suivant : Ajouter un editeur wysiwyg sur la description des catégories (prestashop 1.5 )

Comme nous allons toucher à des fichiers de l’administration cette modification nécessite de toucher au code du coeur de prestashop.
En effet l’override de cette partie n’est pas encore géré dans cette version.

Pour commencer nous allons afficher l’éditeur TinyMce sur le block description de la catégorie

Dans le fichier /admin/tabs/AdminCategories.php  (ligne 138 sur ma version ) rajouter la classe « class=rte » sur le textearea de la description.

foreach ($this->_languages AS $language)
echo '
<div style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
<textarea class="rte" name="description_'.
12 commentaires


Compte Github