Jump to content

[Module Gratuit]Diaporama "lightbox" Sur Une Page Fixe


Recommended Posts

Bonjour,

 

Cela ne change rien en mettant ajoutant le 1.

 

Ci dessous les données du fichier :

<?php

class DiaporamaControllerCore extends FrontController
{
	public $php_self = 'diaporama';
	public $ssl = true;
	
	public function setMedia()
	{
		parent::setMedia();
		if(_PS_VERSION_>=1.5)
			{
				if ($this->context->getMobileDevice() == false)
					{
						$this->addCSS(_THEME_CSS_DIR_.'product.css');
						$this->addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'screen');
						$this->addJqueryPlugin(array('fancybox', 'idTabs', 'scrollTo', 'serialScroll'));
						$this->addJS(array(
							_THEME_JS_DIR_.'tools.js',
							_THEME_JS_DIR_.'product.js'
						));
					}
					else
					{
						$this->addJqueryPlugin(array('scrollTo', 'serialScroll'));
						$this->addJS(array(
							_THEME_JS_DIR_.'tools.js',
							_THEME_MOBILE_JS_DIR_.'product.js',
							_THEME_MOBILE_JS_DIR_.'jquery.touch-gallery.js'
						));
					}
			
					if (Configuration::get('PS_DISPLAY_JQZOOM') == 1)
						$this->addJqueryPlugin('jqzoom');
					parent::setMedia();
			}
		else
			{
				Tools::addCSS(_THEME_CSS_DIR_.'product.css');
				Tools::addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'screen');
				Tools::addJS(array(
					_PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js',
					_PS_JS_DIR_.'jquery/jquery.idTabs.modified.js',
					_PS_JS_DIR_.'jquery/jquery.scrollTo-1.4.2-min.js',
					_PS_JS_DIR_.'jquery/jquery.serialScroll-1.2.2-min.js',
					_THEME_JS_DIR_.'tools.js',
					_THEME_JS_DIR_.'product.js'));
		
				if (Configuration::get('PS_DISPLAY_JQZOOM') == 1)
				{
					Tools::addCSS(_PS_CSS_DIR_.'jqzoom.css', 'screen');
					Tools::addJS(_PS_JS_DIR_.'jquery/jquery.jqzoom.js');
				}
			}
	}
	
	public function displayContent()
		{
			parent::displayContent();
			//Récupération des infos dans la table
			$diapo = Db::getInstance()->ExecuteS("select * from "._DB_PREFIX_."CrCom_diaporama_liens order by id asc");
			
			if(_PS_VERSION_<=1.5)
				{
					//Prestashop 1.4
					self::$smarty->assign('images',$diapo);
					self::$smarty->display(_PS_THEME_DIR_.'diaporama.tpl');
				}
			else
				{
					//Prestashop 1.5
					$this->context->smarty->assign('images',$diapo);
					$this->setTemplate(_PS_THEME_DIR_.'diaporama.tpl');
				}
		}
}
Link to comment
Share on other sites

Non mais là vous n'avez pas la bonne version.

 

Désinstallez le module.

 

Supprimez le fichier controller DiaporamaController.php dans controller/front si il existe toujours.

 

Supprimez le fichier /diaporama.php à la racine si il existe toujours.

 

Supprimez le fichier /theme/votre_theme/diaporama.tpl dans le répertoire de votre thèms si il existe toujours.

 

Supprimez le dossier modules/crcomdiaporama si il existe toujours.

 

Prenez la dernière version, je l'ai mise en pièce jointe de ce post.

 

Installez le module. Par défaut, il doit vous mettre un premier diaporama. Uploadez une image et regardez sur le diaporama.

 

 

crcomdiaporama.zip

Link to comment
Share on other sites

Re-bonjour,

 

J'ai bien suivi votre procédure, il y a un léger mieux dans le sens où j'ai maintenant mon template et le module apparaît dans la colonne de gauche, mais la colonne centrale reste désespérément vide !

 

et je n'ai pas eu pas eu le premier diaporama par défaut...

 

Merci

Link to comment
Share on other sites

Voilà le nouveau fichier :

<?php
	/**
	 * Classe Diaporama, pour afficher un diaporama du module CrComDiaporama
	 * @author Franck Mercier
	 * Novembre 2013
	 *
	 */
	
	class Diaporama1ControllerCore extends FrontController{
		public $php_self = "diaporama1";
		public $ssl = true;
		
		/**
		 * Initialisation des Composants de la vue (CSS/JAVASCRIPT)
		 */
		public function setMedia(){
			parent::setMedia();
			if(version_compare(_PS_VERSION_, "1.5", ">=")){
				if ($this->context->getMobileDevice() == false){
					$this->addCSS(_THEME_CSS_DIR_."product.css");
					$this->addCSS(_PS_CSS_DIR_."jquery.fancybox-1.3.4.css", "screen");
					$this->addJqueryPlugin(array("fancybox", "idTabs", "scrollTo", "serialScroll"));
					$this->addJS(array(
						_THEME_JS_DIR_."tools.js",
						_THEME_JS_DIR_."product.js"
					));
				}else{
					$this->addJqueryPlugin(array("scrollTo", "serialScroll"));
					$this->addJS(array(
						_THEME_JS_DIR_."tools.js",
						_THEME_MOBILE_JS_DIR_."product.js",
						_THEME_MOBILE_JS_DIR_."jquery.touch-gallery.js"
					));
				}			
				if (Configuration::get("PS_DISPLAY_JQZOOM") == 1)
					$this->addJqueryPlugin("jqzoom");
				parent::setMedia();
			}else{
				Tools::addCSS(_THEME_CSS_DIR_."product.css");
				Tools::addCSS(_PS_CSS_DIR_."jquery.fancybox-1.3.4.css", "screen");
				Tools::addJS(array(
					_PS_JS_DIR_."jquery/jquery.fancybox-1.3.4.js",
					_PS_JS_DIR_."jquery/jquery.idTabs.modified.js",
					_PS_JS_DIR_."jquery/jquery.scrollTo-1.4.2-min.js",
					_PS_JS_DIR_."jquery/jquery.serialScroll-1.2.2-min.js",
					_THEME_JS_DIR_."tools.js",
					_THEME_JS_DIR_."product.js"));
				if (Configuration::get("PS_DISPLAY_JQZOOM") == 1){
					Tools::addCSS(_PS_CSS_DIR_."jqzoom.css", "screen");
					Tools::addJS(_PS_JS_DIR_."jquery/jquery.jqzoom.js");
				}
			}
		}
		
		/**
		 * Fonction principale pour l"affichage du template
		 */
		public function displayContent(){	
			parent::displayContent();
			//Récupération des infos dans la table
			$lDiapo = Db::getInstance()->ExecuteS("SELECT * FROM  "._DB_PREFIX_."crcomdiapo WHERE DIAPO = 1 ORDER BY ID");	
			if(version_compare(_PS_VERSION_, "1.5", "<=")){
				//Prestashop 1.4
				self::$smarty->assign("images", $lDiapo);
				self::$smarty->display(_PS_THEME_DIR_."diaporama.tpl");
			}else{
				//Prestashop 1.5
				$this->context->smarty->assign("images", $lDiapo);
				$this->setTemplate(_PS_THEME_DIR_."diaporama.tpl");
			}
		}
	}
Link to comment
Share on other sites

Cela veut simplement dire que potentiellement elle peut être utilisée dans des classes qui hériteraient de celle-ci.

D'ailleurs la classe displaycontent() hérite elle-même de la classe principale frontController et est public.

 

Par contre, le controller me semble OK.

 

http://localhost/fr/index.php?controller=diaporama1 ne t'affiche rien ?

 

Par contre, une question : ton projet se trouve à la racine de ton workspace ???

 

Tu n'as pas un répertoire dans lequel est inscrit ton prestashop , du genre:

http://localhost/mon_repertoire_prestashop/index.php?controller=diaporama1

Link to comment
Share on other sites

Merci également pour votre patience !

 

 

 Également une capture du fichier /themes/montheme_dir/diaporama.tpl

 

Je n'ai pas le fichier diaporama.tpl dans les fichiers de mon thème

 

post-699463-0-28629800-1384787756_thumb.jpg

 

et voici les fichiers du dossier dans les modules :

 

post-699463-0-64714800-1384787796_thumb.jpg

 

En y regardant de plus près, je m’aperçois que diaporama.tpl apparaît s'est créé dans le thème par défaut. J'ai remis le thème par défaut pour vois ce que cela donne, et là la colonne centrale n'apparait pas.

Link to comment
Share on other sites

C'est bien le nom de mes images. J'ai vidé le cache smarty et fait un nettoyage avec ccleaner.

 

Voici le code du fichier tpl :

<!--Affichage des images dans le front office-->
{if isset($images)}
    <div id="diaporama" class="diaporama">
    	<h3>{l s='Slideshow'}</h3>
    		<ul>
            	{foreach from=$images item=image name=mesimages}
            		<li {if $smarty.foreach.mesimages.last}style="padding:5px;float:left;margin-right:10px;"{else}style="float:left;padding:5px;"{/if} >
                        <a class="thickbox" href="{$base_dir}modules/crcomdiaporama/diapo/{$image.LIEN}" title="{$image.TITRE}">
                        <img src="{$base_dir}modules/crcomdiaporama/diapo/mini_{$image.LIEN}" alt="{$image.TITRE}" title="{$image.TITRE}" />
                        </a>
                        {if $image.TEXTE != ''}<br /><br /><strong>{$image.TEXTE}</strong>{/if}
                   	</li>
				{/foreach}
    		</ul>
	</div>
{else}
	{l s='There\'s no images for the moment'}
{/if}
 	

Edited by vir21 (see edit history)
Link to comment
Share on other sites

Non mais là vous n'avez pas la bonne version.

 

Désinstallez le module.

 

Supprimez le fichier controller DiaporamaController.php dans controller/front si il existe toujours.

 

Supprimez le fichier /diaporama.php à la racine si il existe toujours.

 

Supprimez le fichier /theme/votre_theme/diaporama.tpl dans le répertoire de votre thèms si il existe toujours.

 

Supprimez le dossier modules/crcomdiaporama si il existe toujours.

 

Prenez la dernière version, je l'ai mise en pièce jointe de ce post.

 

Installez le module. Par défaut, il doit vous mettre un premier diaporama. Uploadez une image et regardez sur le diaporama.

Bonjour Franck

Désolé de me "greffer" à cette discussion

je viens de suivre à la lettre vos indications mais je me retrouve avec une page qui me fait "peur" elle se trouve en PJ

désolé pour ce matin je ne me voulais pas "aggressif"

pour visualiser le tout j'ai activé le site: http://www.mouchesbailly.com

post-288873-0-11371000-1384807840_thumb.jpg

Edited by nympheur (see edit history)
Link to comment
Share on other sites

vir21, peux-tu regarder dans modules/crcomdiaporama/diapo/ si les 2 images aout-2007.jpg et aout-2008.jpg existent bien et également les mêmes mais avec mini_ devant et regarder attentivement leur écriture au détail près (espace, accent...) voir si c'est bien la même que le debug.

 

Enfin, es-tu capable de m'envoyer le code source de la page diaporama. Tu affiches la page localhost...controller=diaporama1 et sur firefox tu cliques droit sur "code source de la page". Tu copies ce code source et tu le colles ici.

 

Tu as bien mis le diaporama 1 dans ton back office pour les images (tu peux choisir le numéro de diaporama dans lequel tu veux afficher les images) ?

 

 

 

Nympheur, cela veut dire que la table ne s'est pas installée.

 

As tu eu une erreur à l'installation ?

 

Peux-tu aller voir dans phpmyadmin si la table crcomdiapo existe ?

Edited by franckm1000 (see edit history)
Link to comment
Share on other sites

Bonsoir,

 

Je me demande si cela ne serait pas lié avec un problème que je rencontre lorsque je veux insérer des images.

 

Par exemple, j'upload une image dans la short description de mon article. Pour qu'elle apparaisse, je suis obligé d'indiquer (et je ne vois qu'un point d'interrogation dans le BO) :

../../img/cms/nomdelimage.jpg

avec ce lien, mon image n'apparait pas dans mon module de vue rapide car elle devrait être écrite comme cela :

../img/cms/nomdelimage.jpg

J'ai bien essayé de mettre le code sous la forme :

{$img_ps_dir} cms/nomdelimage.jpg

mais cela ne fonctionne pas;

 

Aurai-je un dysfonctionnement qui perturbe également votre module ?

 

Bonne nuit.

Edited by vir21 (see edit history)
Link to comment
Share on other sites

Nympheur, cela veut dire que la table ne s'est pas installée.

 

As tu eu une erreur à l'installation ?

 

Peux-tu aller voir dans phpmyadmin si la table crcomdiapo existe ?

Bonjour Franck

La table existe bien

Je n'ai pas eu d'erreurs lors de la réinstallation complète mais j'ai du réinitialiser le module car je n'avais pas le menu pour ajouter les photos.

Merci d'avance

Link to comment
Share on other sites

Bonjour,

 

vir21, peux-tu regarder dans modules/crcomdiaporama/diapo/ si les 2 images aout-2007.jpg et aout-2008.jpg existent bien et également les mêmes mais avec mini_ devant et regarder attentivement leur écriture au détail près (espace, accent...) voir si c'est bien la même que le debug.

 

j'ai:

 

aout-2007.jpg     aout-2008.jpg     mini_aout-2007.jpg   mini_aout-2008.jpg

 

Enfin, es-tu capable de m'envoyer le code source de la page diaporama. Tu affiches la page localhost...controller=diaporama1 et sur firefox tu cliques droit sur "code source de la page". Tu copies ce code source et tu le colles ici.

 

ci-joint le fichier :

code source.php

 

Tu as bien mis le diaporama 1 dans ton back office pour les images (tu peux choisir le numéro de diaporama dans lequel tu veux afficher les images) ?

 

oui, je n'ai pas d'autre diaporama.

 

Bon courage !

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Bonjour,

 

J'ai installé la version 1.4 sur un PS V 1.4.2.5.

pas de problème lors de l'installation.

Par contre impossible d'uploader une image, la page se rafraichit au bout d 'un moment avec l'erreur :

 

Fatal error: Call to undefined method MySQL::insert() in /homez.367/.../modules/crcomdiaporama/crcomdiaporama.php on line 377

 

Pas d'entrèe dans la Bdd et pas de fichier uploadé.

J'ai modifé les droits du répertoire de réception ( c'est à dire : crcomdiaporama/diapo) en mettant 777 mais rien n'y fait.

Aurais-je oublié quelque chose ?

 

rectificatif du 31-12-2013 : Mille excuse je n'avais pas lu le post de Franck du 10-11 ou il indique bien le problème pour la 1.4. Si une bonne âme se penche sur le problème je suis preneur.

 

 

 

Merci par avance pour votre aide et bravo pour ce module qui correspond parfaitement à ce que je cherchais.

Edited by Berdesse (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Bonjour, 

 

Ce module semble également correspondre à mon besoin.

Malheureusement je n'arrive pas à visualiser les diaporamas en cliquant sur les liens.

Apparemment je ne suis pas le seul!!!!

 

Si tu peux trouver du temps Franck pour regarder ça serait super... :rolleyes:  

J'utilise Prestashop 1.5.6.2

 

Merci d'avance

Link to comment
Share on other sites

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