Le coin des astuces Astuces

Bug du module de statistiques - Prestashop

Le module de statistique "Visiteurs en ligne" de prestashop comporte une erreur au niveau de la requête SQL qui ne renvoi donc aucun résultats.

Pur corriger le problème remplacez les 2 fonctions du fichier modules/statslive/statslive.php :

private function getCustomersOnline()
    {
        return Db::getInstance()->ExecuteS('
        SELECT u.id_customer, u.firstname, u.lastname, pt.name as page
        FROM `'._DB_PREFIX_.'connections` c
        LEFT JOIN `'._DB_PREFIX_.'connections_page` cp ON c.id_connections = cp.id_connections
        LEFT JOIN `'._DB_PREFIX_.'page` p ON p.id_page = cp.id_page
        LEFT JOIN `'._DB_PREFIX_.'page_type` pt ON p.id_page_type = pt.id_page_type
        INNER JOIN `'._DB_PREFIX_.'guest` g ON c.id_guest = g.id_guest
        INNER JOIN `'._DB_PREFIX_.'customer` u ON u.id_customer = g.id_customer
        WHERE cp.`time_end` IS NULL
        AND TIME_TO_SEC(TIMEDIFF(NOW(), cp.`time_start`)) < 900
        GROUP BY c.id_connections
        ORDER BY u.firstname, u.lastname');
    }
   
    private function getVisitorsOnline()
    {
        return Db::getInstance()->ExecuteS('
        SELECT c.id_guest, c.ip_address, c.date_add, c.http_referer, pt.name as page
        FROM `'._DB_PREFIX_.'connections` c
        LEFT JOIN `'._DB_PREFIX_.'connections_page` cp ON c.id_connections = cp.id_connections
        LEFT JOIN `'._DB_PREFIX_.'page` p ON p.id_page = cp.id_page
        LEFT JOIN `'._DB_PREFIX_.'page_type` pt ON p.id_page_type = pt.id_page_type
        INNER JOIN `'._DB_PREFIX_.'guest` g ON c.id_guest = g.id_guest
        WHERE (g.id_customer IS NULL OR g.id_customer = 0)
        AND cp.`time_end` IS NULL
        AND TIME_TO_SEC(TIMEDIFF(NOW(), cp.`time_start`)) < 900
        GROUP BY c.id_connections
        ORDER BY c.date_add DESC');
    }

Par :

private function getCustomersOnline()
    {   
        $today = date('Y-m-d H:i:s');
        return Db::getInstance()->ExecuteS("
        SELECT u.id_customer, u.firstname, u.lastname, pt.name as page
        FROM `"._DB_PREFIX_."connections` c
        LEFT JOIN `"._DB_PREFIX_."connections_page` cp ON c.id_connections = cp.id_connections
        LEFT JOIN `"._DB_PREFIX_."page` p ON p.id_page = cp.id_page
        LEFT JOIN `"._DB_PREFIX_."page_type` pt ON p.id_page_type = pt.id_page_type
        INNER JOIN `"._DB_PREFIX_."guest` g ON c.id_guest = g.id_guest
        INNER JOIN `"._DB_PREFIX_."customer` u ON u.id_customer = g.id_customer
        WHERE cp.`time_end` IS NULL
        AND TIME_TO_SEC(TIMEDIFF('".$today."', cp.`time_start`)) < 900
        GROUP BY c.id_connections
        ORDER BY u.firstname, u.lastname");
    }
   
    private function getVisitorsOnline()
    {
        $today = date('Y-m-d H:i:s');
        return Db::getInstance()->ExecuteS("
        SELECT c.id_guest, c.ip_address, c.date_add, c.http_referer, pt.name as page
        FROM `"._DB_PREFIX_."connections` c
        LEFT JOIN `"._DB_PREFIX_."connections_page` cp ON c.id_connections = cp.id_connections
        LEFT JOIN `"._DB_PREFIX_."page` p ON p.id_page = cp.id_page
        LEFT JOIN `"._DB_PREFIX_."page_type` pt ON p.id_page_type = pt.id_page_type
        INNER JOIN `"._DB_PREFIX_."guest` g ON c.id_guest = g.id_guest
        WHERE (g.id_customer IS NULL OR g.id_customer = 0)
        AND cp.`time_end` IS NULL
        AND TIME_TO_SEC(TIMEDIFF('".$today."', cp.`time_start`)) < 900
        GROUP BY c.id_connections
        ORDER BY c.date_add DESC");
    }

Intégrer une animation Flash avec XML

Lorsqu'une animation réalisée en flash utilise des paramètres présents dans un fichier XML le code d'intégration dans une page web change car il faut indiquer le chemin de ce fichier dans les paramètres pour qu'il soit bien interprété par les différents navigateurs.

<object height="290" width="670" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,32,18" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<param name="name" value="Carousel" />
<param name="src" value="http://www.votresiteweb.fr/images/Carousel.swf" />
<param name="base" value="." />
<param name="wmode" value="transparent" />
<param name="flashvars" value="xml_source= images/default.xml" />
<embed height="290" width="670" flashvars="xml_source= images/default.xml" wmode="transparent" base="." src="http://www.votresiteweb.fr/images/Carousel.swf" name="Carousel" type="application/x-shockwave-flash"></embed>
</object>

Sans oublier le paramètre wmode à transparent pour que l'animation passe bien en arrière plan.

Slideshow Jquery avec effets divers

La librairie Jquery permet d'intégrer facilement différents effets graphiques en tout genre. Ici on va s'intéresser plus particulièrement au plugin Jquery Cycle qui permet de créer des galeries photos animées en quelques étapes.

  • Faire appel au script jquery et jquery cycle dans le header de votre page
  • Insérer la fonction de déclanchement de l'animation avec le paramètre que vous souhaité (fade, zoom, shuffle...)
  • Ajouter les quelques lignes de style CSS
  • Et placer toutes vos images dans la div du bon nom

Voir la documentation et les fichiers sources

Insérer une vidéo sur votre site

Pour insérer une vidéo sur votre site il faut tout d'abord qu'elle soit hébergée sur un serveur comme le propose Youtube ou Dailymotion ou autre. A chaque vidéo est associé un code nommé "embed" du style :

<object width="480" height="385">
<param name="movie" value="http://www.youtube.com/v/e8F9txsHzQI?fs=1&amp;hl=fr_FR"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/e8F9txsHzQI?fs=1&amp;hl=fr_FR" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed>
</object>

Il est accessible par exemple via le bouton "intégrer" sur youtube. Il vous faut copier ce code et le coller dans l'article de votre site en mode HTML et non Editeur pour que le code soit bien interprété et publier votre article !

Mettre en place un disclamer

Le disclamer = Mise en garde permet à l'auteur du site de se désengager de toute responsabilité suite au dommage qu'il pourrait occasionner. Généralement utilisé pour avertir de l'âge légal autorisé pour accéder aux données présentes sur un site.

Ainsi à chaque session sur votre site, le disclaimer DHTML couvrira le site, le laissant entrevoir en légère transparence. Le lien 'Entrer' provoque la disparition du disclaimer.

La mise en place est extrêmement simple avec seulement un fichier javascript et une simple feuille de styles CSS.

Recherche

Contactez-nous

Agence Web Loire 42
Tél. : +33(0)4 77 27 61 94
Fax : +33(0)4 77 27 61 95

13, rue de La Glacière
42510 Balbigny - FRANCE
(Roanne - Saint-Etienne - Lyon)