Jump to content
Olivier CLEMENCE

[module gratuit] Ajouter des vidéos à vos fiches produits

Recommended Posts

Bonjour,
Je vous présente donc Op'art product vidéo, un module gratuit qui va vous permettre d'agrémenter vos fiches produits avec des vidéos.
 
Module compatible avec Prestashop 1.5 et 1.6
 
Avec ce module, vous allez pouvoir ajouter une ou plusieurs vidéos puis les lier à un ou plusieurs produits (pas besoin de d'ajouter la vidéo à chaque produit).
Pour ajouter une vidéo c'est très simple il suffit de récupérer l'url de la vidéo sur youtube, dailymotion ou wimeo puis de la coller dans le formulaire d'ajout de vidéo.
 
Regarder la vidéo de démonstration
 
Bien sûr vos questions et commentaires sont les bienvenus !
 
Changelog
*** 08/11/13 ***
- Correction d'un bug: l'onglet vidéo n'est plus automatiquement sélectionné.
 
*** 28/02/13 ***
- Possibilité d'ajouter un titre aux vidéos.
- Possibilité d'ajouter une description aux vidéos.
- Possibilité d'ajouter une classe css spécifique à chaque vidéo.
- Possibilité de créer des liens d'accès directs aux vidéos.
 
*** 06/05/14 ***
- Le module est désormais compatible avec Prestashop 1.6.
- Correction d'un problème au niveau de la traduction du module.

 
*** 02/06/15 ***
- Correction du titre de l'onglet dans la fiche produit.

Edited by coeos.pro
pas de lien vers votre plateforme de distribution. (see edit history)
  • Like 3

Share this post


Link to post
Share on other sites

Bonjour,

Je viens de télécharger et installer ce module, qui fonctionne très bien. J'ai tout de même un petit soucis, pas dramatique en soit. Lorsque je vais sur la fiche du groupe j'arrive tout de suite sur l'onglet vidéo, est-il possible d'arriver plutôt sur la description ?

De même j'ai certaine vidéo que je n'ai qu'en local, est-il possible de les publier manuellement ? Encore une fois ce n'est pas dramatique.

Que mes requêtes soit ou non possible, je tiens à vous remercier pour ces modules (j'ai également installé le player audio).

Share this post


Link to post
Share on other sites

En effet, 

je viens d'apporter une correction au module, pouvez-vous m'envoyer votre adresse email par MP que je vous renvoi le module corrigé ?

 

En ce qui concerne l'affichage de vidéos hébergées en local ce n'est pas possible pour l'instant et je ne prévois pas de le faire (du moins avec cette version gratuite du module). Il y a tellement de raison valable d'héberger ces vidéos sur des plateforme comme youtube, wimeo, etc.. (ne serait-ce que pour la bande passante) que cette fonctionnalité n'intéresserai que peu de monde.

Share this post


Link to post
Share on other sites

Le module est sympa. J'avoue ne pas l'avoir installé mais en regardant la vidéo de présentation je me dit : comment faire quand on a 3000 produits dans sa boutique ? La partie sélection de produit ne comporte pas l'arborescence des catégories, si ?

Share this post


Link to post
Share on other sites

Bonjour Hi-commerce,

en effet ça pourrait être une amélioration intéressante que d'ajouter un filtre par catégorie pour limiter les produits dans la liste.

 

Je le note !

Share this post


Link to post
Share on other sites

J'ai fait une mise à jour du module voici les nouveautés:

*** 28/02/43 ***
- Possibilité d'ajouter un titre aux vidéos.
- Possibilité d'ajouter une description aux vidéos.
- Possibilité d'ajouter une classe css spécifique à chaque vidéo.
- Possibilité de créer des liens d'accès directs aux vidéos.

Share this post


Link to post
Share on other sites

Bonjour,

 

Module intéressant mais comment faire pour introduire des vidéos dans le descriptif du produit directement ?

 

serait il possible d'ajouter une fonctionnalité à l'éditeur bbcode?

 

Merci

Share this post


Link to post
Share on other sites

Bonjour Papich,

pas besoin d'un module pour ajouter des vidéos directement dans le descriptif.

Il suffit de récupérer le code de partage fourni par le service de vidéo (comme youtube) et de coller ce code (en mode html) dans votre descriptif.

 

Il faut sans doute autoriser les iframe dans les descriptions pour que cela marche.

Share this post


Link to post
Share on other sites

oui je sais mais quel intéret de votre module alors?

 

quand j'intégre en iframe j'ai l'erreur suivante

Le champ description (Français (French)) est invalide.

 

et quand je change avec l'ancienne intégration j'ai le même message je suis sous 1.5.6.1

Share this post


Link to post
Share on other sites

Mon module permet d'ajouter les vidéos dans un onglet supplémentaire ce qui me semble plus "propre" que de les ajouter directement dans la description (c'est une question de goût).

Il permet également de gagner du temps dans la mesure où lorsqu'une vidéo a été enregistrée dans le module elle peut être liée à plusieurs produits très simplement, ça limite le nombre de manipulation.

 

Pour votre problème d'ajout d'iframe vous pouvez regarder cet article:

http://blog.manit4c.com/2013/10/01/impossible-dajouter-du-javascript-dans-vos-descriptions-de-produit/

  • Like 1

Share this post


Link to post
Share on other sites

Merci mais cela ne fonctionne toujours pas

 

C'est vrai cela fait plus propre mais quand on a plusieurs vidéos cela peut faire cafoui non?

Share this post


Link to post
Share on other sites

 

 

C'est vrai cela fait plus propre mais quand on a plusieurs vidéos cela peut faire cafoui non?

 

Pourquoi ?

 

 

 

Merci mais cela ne fonctionne toujours pas

 

Avez-vous pensez à supprimer le fichier "class_index.php" qui se trouve dans le dossier "cache" ?

Share this post


Link to post
Share on other sites

Bonjour,

malheureusement non et ce n'est pas prévu. Je préfère développer mes modules pour la 1.5 et très bientôt la 1.6 et je ne développe pas pour 1.4 (sauf pour des demandes spécifiques).

Share this post


Link to post
Share on other sites

Bonsoir,

J'ai passé ma boutique en version 1.6 et heureusement, le slideshow fonctionne toujours, si ce n'est que je ne peux ajouter de nouvelles images, c'est embêtant :D j'ai une page blanche et rien n'y fait.

Avez-vous avancé dans la nouvelle version ? merci en tout cas :)

Share this post


Link to post
Share on other sites

*** 06/05/14 ***

- le module est désormais compatible avec Prestashop 1.6

- Correction d'un problème au niveau de la traduction du module.

Share this post


Link to post
Share on other sites

Salut et bravo pour ce module très sympa.

 

Juste une confirmation : il semblerait que pour Youtube les URL permettant de démarre directement a un endroit dans la vidéo ne fonctionne pas , type : 

 

https://www.youtube.com/watch?v=BJ_shq6hXj8#t=178

 

Du moins c'est ce que j'observe sur ma boutique : 

 

http://shop.ekimia.fr/fr/home/11-clevo-w550su-0638142715430.html

Share this post


Link to post
Share on other sites

Une suggestion d'amélioration : Support de n'importe lien direct vers une vidéo

 

je vois dans le template que tu detecte si la vidéo est sur l'un des 3 sites, en ajoutant un "else" et en calant à la place de l'iframe un simple élément <vidéo> , cela permettrait déjà d'ajouter une vidéo mp4 ou webm qui va marcher sur la plupart des navigateurs ( HTML5) 

 

dans un 2e temps on peux imaginer inclure un bout de js comme videojs , mais il y a déjà plus de travail.

Share this post


Link to post
Share on other sites

Bonjour,

a c'est possible j'avoue ne pas avoir essayé.

Je vais le noter pour une prochaine mise à jour et voir si c'est possible de prendre se paramètre en compte.

Share this post


Link to post
Share on other sites

Salut Olivier,

 

Merci pour ce module!

 

J'ai note une petite faute de frappe: "Copiez l'url de la vidéo ici. Vous pouvez utiliser des vidéos youtube, dailymotion et wimeo" (Vimeo)

Share this post


Link to post
Share on other sites

Bonjour,

Désolé pour ma réponse tardive j'étais en congés jusqu'à aujourd'hui.

 

Merci de me l'avoir signalé je vais le mettre dans ma "todolist" pour la prochaine mise à jour.

Share this post


Link to post
Share on other sites

Bonjour,

 

Très bon module qui fonctionne très bien dans le 1.6.0.11

Mais (et oui y a un mais :) ) quand j’installe le module sur un prestashop test et que je veux afficher tout les catégories (savoir plus, caractéristiques, et autre) sur la même ligne les vidéo reste en dessous impossible de trouver comment faire pour que cela marche 

PS: théme de basse pas tester sur un théme autre

 

Merci de vos raiponces

Share this post


Link to post
Share on other sites

Bonjour et merci pour votre module, j'ai un seul soucis, la vidéo ne s'ajoute pas dans l'onglets mais en-dessous (ce qui ne fait pas très propre). Avez-vous une astuce pour corriger sa?

 

Merci d'avance pour votre réponse !

 

Lien du produit concerné: http://goo.gl/JwdoKW

Share this post


Link to post
Share on other sites

Je suis entrain de modifier le code pour que cela s'affiche correctement des que j'ai trouver toutes les modification je vous le fais savoir

Share this post


Link to post
Share on other sites

Bonjour,

kelvinswiss je ne vois pas le module sur la fiche produit l'as-tu désactivé ?

 

bpascal81, je veux bien un lien vers votre fiche produit pour constater le problème.

Share this post


Link to post
Share on other sites

Bonjour, je peux pas mettre de lien vers le souci vu que je test en local avant de mettre sur site en production.

Le problème viens du fait que le module vidéo est chargé par le hook donc il faut modifier le fichier production.tpl pour charger les informations du module comme on veux sur la page produit.

J'ai déjà isolé le problème la je cherche à récupéré la variable qui dit au .tpl qu'il doit afficher ou pas le bouton vidéo vu que je n'ai pas forcément une vidéo sur chaque produit.

Donc si tu avait la valeur du isset($ ressult) que je dois vérifié me serai bien pratique.

Ton module fonctionne bien c'est juste une configuration du thème qu'il faut faire pour avoir à la sortie un affichage propre

Merci pour ta réponse

Edited by bpascal81 (see edit history)

Share this post


Link to post
Share on other sites

Je viens de retester sur une 1.6.0.11 et la vidéo s'affiche bien dans l'onglet vidéo et s'il n'y a pas de vidéo pour le produit l'onglet n'apparaît pas.

 

Donc je ne suis pas sûr de comprendre ce que tu souhaite faire:

 

 

Mais (et oui y a un mais  :) ) quand j’installe le module sur un prestashop test et que je veux afficher tout les catégories (savoir plus, caractéristiques, et autre) sur la même ligne les vidéo reste en dessous impossible de trouver comment faire pour que cela marche 

 

Tu parles de catégories, tu veux dire tous les produits ? (les vidéos ne sont pas liées au catégories).

 

En fait tu veux avoir une page avec tous les produits d'une même catégories et que tous ces produits affichent l'intégralité des informations de leur fiche (donc coup les vidéos aussi).

 

Si c'est bien ça en effet tu va avoir un problème car le module affiche la vidéo sur un hook donc à un seul emplacement.

 

C'est assez sépcifique ce que tu souhaite faire (normal que mon module ne puisse pas le gérer de base). Mais c'est possible je penses si tu modifie ce qu'il faut où il faut.

 

Comme ça je dirait qu'il faut utiliser le hook header qui va tester si on est sur une page catégorie.

Si c'est le cas on charge toutes les vidéos et on les enregistre dans un tableau avec comme index l'id du produit.

Et lorsque tu affiche tout tes produits tu fait isset(array_video[id_product) { j'affiche la video }

 

C'est la théorie reste plus qu'à coder :)

 

Ps: si tu réussi à faire ce que tu veux hésite pas à venir poster le code ici ça servira peut être à d'autres.

Edited by manit4c (Olivier C.) (see edit history)

Share this post


Link to post
Share on other sites

En fin de compte je veux que quand on affiche un produit au lieu que toutes les description s'affiche sous forme de liste on ai un genre de menu horizontal (jusqu'a là rien de compliquer) mais je veux aussi que les vidéo s'affiche sur le même "menu" pas comme actuellement sur mon site exemple d'affichage

Et après je veux pas que la div où il y a l'affichage du contenue du menu sois masquer au chargement de la page. Pour avoir un chargement plus rapide

Donc j'ai déjà sur mon site local modifier l'affichage des div mais je ne trouve pas la variable qui va vérifier si il y a une vidéo pour afficher ou pas le bouton du même nom.

J'ai modifier le fichier product.tpl et product.php pour interrogé la base de donnée où son stocker les vidéos

Merci d'avance pour ta raiponce 

Pascal

Share this post


Link to post
Share on other sites

ça dépend de ce que tu as codé mais le hook producTabContent envoi les objet vidéo à smarty si et seulement si une vidéo existe pour ce produit.

Et il les stocke dans la variable $result.

 

Donc si tu fait un  isset($result) tu saura si tu as une vidéo ou pas.

 

Mais j'ai l'impression que tu souhaite reproduire l'affichage des onglets comme sur un theme version 1.5 non ?

T'as regardé le template opartproductvideo_15.tpl ?

Share this post


Link to post
Share on other sites

 

 

Bonjour et merci pour votre module, j'ai un seul soucis, la vidéo ne s'ajoute pas dans l'onglets mais en-dessous (ce qui ne fait pas très propre). Avez-vous une astuce pour corriger sa?

 

Je penses que c'est un problème dû à ton thème.

Si tu regarde "accessoires" et "produits dans la même catégories" ont le même comportement. Qui est d'ailleurs le comportement de base de la 1.6

 

A mon avis ton thème à été créé de manière à faire en sorte que les commentaires s'affiche dans un onglets mais pas pour les autres modules utilisant ce type de hook.

 

Il faudrait étudier le template du module commentaire et t'en inspirer pour reproduire la même chose avec mon module.

Share this post


Link to post
Share on other sites

en rentrant isset($result) && $result->title je n'ai rien qui ressort rien pas d'erreur ni de bouton

et pour le fichier opartproductvideo_15.tpl j'ai presque la même chose que dans le opartproductvideo.tpl à une ligne près

 

J'ai tester plusieur solution et rien ne ce fait voilà une parti des modif que j'ai fais

		<!-- description and features -->
{if (isset($product) && $product->description) || 
	(isset($features) && $features) || 
	(isset($accessories) && $accessories) || 
	(empty(array(definitionVideo))) || 
	(isset($result) && $result->a.id_product) || 
	(isset($attachments) && $attachments) || 
	(isset($product) && $product->customizable) || 
	(isset($result) && $result->publicTitle)}
<div id="more_info_block" class="clear">
    <ul id="more_info_tabs" class="idTabs idTabsShort clearfix">
        {if $product->description}<li><a id="more_info_tab_more_info" href="#idTab1">{l s='More info'}</a></li>{/if}
        {if $features}<li><a id="more_info_tab_data_sheet" href="#idTab2">{l s='Data sheet'}</a></li>{/if}
        {if $attachments}<li><a id="more_info_tab_attachments" href="#idTab9">{l s='Download'}</a></li>{/if}
        {if isset($accessories) AND $accessories}<li><a href="#idTab4">{l s='Accessories'}</a></li>{/if}
        {if isset($product) && $product->customizable}<li><a href="#idTab10">{l s='Product customization'}</a></li>{/if}
		{if isset($result) && $result->a.id_product}<li><a id="more_info_tab_more_info" href="#idTabOpartProducVideo">{l s='VIDEO'}</a></li>{/if}
        {$HOOK_PRODUCT_TAB}
    </ul>

Sans compter que j'ai mi le ficher video.php dans le fichier product.php pour voir mais ça change rien

 

Merci de vos raiponces

Edited by bpascal81 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

 

Sur 1.6  j'ai 2 images près du slider à droite.

J'aimerais mettre le module video juste en dessous, donc sur la page d'accueil.

 

C'est possible ?

Share this post


Link to post
Share on other sites

@bpascal81 le problème je penses c'est que tu demande a ton template (à priori product.tpl) de tester une variable qu'il ne connais pas car elle n'ai pas été envoyé par son controller.

 

Mon module (comme tout module) utilise un hook et il faut donc bien le réutiliser et le place où tu le veux dans ton template product.tpl

 

 

@antikiste non désolé ce module ne fonctionne que pour les produits.

Edited by manit4c (Olivier C.) (see edit history)

Share this post


Link to post
Share on other sites

Bonjour

 

Hier j'ai un peux avancer dans le bon sans, j'ai déjà placer le module où je le voulais dans le back office, ce qui m'a mi le bouton où je le veux, mais en gardent dans le hook maintenant me rest plus cas afficher le contenue du hook ce qu'il ne me fait pas mais je suis sur le bon chemin :)

Tes informations mon bien aider quand j'ai trouver la solution je ferai un retour de toute mes manipulations pour d'autres ça peux servire

La je vais regarder pourquoi je n'ai pas d'affichage du contenue 

Merci pour tes raiponces

Pascal

Share this post


Link to post
Share on other sites

Je vais vous expliquer ce que j'ai fais pour avoir le résultat voulu

au début il faut greffer le module vidéo à displayProductTab pour qu'il s'affiche dans le menu voulu

après on modifie le fichier product.tpl comme sur ce tuto (oui j'ai pas tout fais tout seul)

après on va continuer dans les modif du même fichier, on cherche <!-- description and features -->

on remplace par ce code tout ce qui est au début du code 

		<!-- description and features -->
	{if (isset($product) && $product->description) || (isset($features) && $features) || (isset($accessories) && $accessories) || (isset($result) && $result->title) || (isset($HOOK_PRODUCT_TAB) && $HOOK_PRODUCT_TAB) || (isset($attachments) && $attachments) || isset($product) && $product->customizable || isset($result) && $result->publicTitle}
		<div id="more_info_block" class="clear">
			<ul id="more_info_tabs" class="idTabs idTabsShort clearfix">
				{if $product->description}<li><a id="more_info_tab_more_info" href="#idTab1">{l s='More info'}</a></li>{/if}
				{if $features}<li><a id="more_info_tab_data_sheet" href="#idTab2">{l s='Data sheet'}</a></li>{/if}
				{if $attachments}<li><a id="more_info_tab_attachments" href="#idTab9">{l s='Download'}</a></li>{/if}
				{if isset($accessories) AND $accessories}<li><a href="#idTab4">{l s='Accessories'}</a></li>{/if}
				{if isset($product) && $product->customizable}<li><a href="#idTab10">{l s='Product customization'}</a></li>{/if}
				{if $HOOK_PRODUCT_TAB}<li><a href="#idTab10">{l s='video'}</a></li>{/if}
			</ul>
			<div id="more_info_sheets" class="sheets align_justify">
			<!-- Customizable video -->
			{if isset($HOOK_PRODUCT_TAB)}
				<ul id="idTab10" class="bullet">
					{$HOOK_PRODUCT_TAB_CONTENT}
				</ul>
			{/if}

si vous regarder bien on ajoute un bouton hook_product_tab et on regarde si on a une variable pour afficher ou non

 

En suite on va modifier le fichier product.php pour y ajouter ce code avant le dernier } 

	public $widthVideo;
	public $heightVideo;
	public $titleVideo;
	public $link;
	public $publicTitle;
	public $desc;
	public $className;	
	public $anchorName;
	
	public static $definitionVideo = array(
		'table' => 'opartproductvideo',
		'primary' => 'id_opartproductvideo',
		'multilang' => true,
		'fields' => array(				
			'width' => 	array('type' => self::TYPE_INT, 'validate'=>'isInt','required' => true),
			'height' => array('type' => self::TYPE_INT, 'validate'=>'isInt','required' => true),			
			'titleVideo' => 	array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 256),
			'className' => 	array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => false, 'size' => 256),
			'anchorName' => 	array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => false, 'size' => 256),
			// Lang fields
			'link' => 	array('type' => self::TYPE_STRING, 'lang' => true, 'validate'=> 'isUrl', 'required' => true ),
			'publicTitle' => 	array('type' => self::TYPE_STRING, 'lang' => true, 'validate'=> 'isGenericName', 'required' => false ),
			'desc' => 	array('type' => self::TYPE_HTML, 'lang' => true, 'validate'=> 'isString', 'required' => false )
		),
	);
	
	public function getProductsVideo($associated = true, Context $context = null)
	{
		if (!$context)
			$context = Context::getContext();
		$id_lang = $this->id_lang ? $this->id_lang : $context->language->id;
	
		if (!$this->id && $associated)
			return array();
	
		$in = $associated ? 'IN' : 'NOT IN';
		$sql='
			SELECT pl.name,pl.id_product 
			FROM `'._DB_PREFIX_.'product` p 
			LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON p.id_product = pl.id_product'.Shop::addSqlRestrictionOnLang('pl').' 
			'.Shop::addSqlAssociation('product', 'p').'
			WHERE pl.id_lang = '.(int)$id_lang.'
			AND product_shop.active = 1
			'.($this->id ? ('AND p.id_product '.$in.' (SELECT op.id_product FROM `'._DB_PREFIX_.'opartproductvideo_product` op WHERE op.id_opartproductvideo = '.(int)$this->id.')') : '').'
			ORDER BY pl.name
		';
		return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
	}

	public function setProducts($array)
	{
		$result = Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'opartproductvideo_product WHERE id_opartproductvideo = '.(int)$this->id);
		if (is_array($array))
		{
			$array = array_map('intval', $array);
			$result &= ObjectModel::updateMultishopTable('Product', array('indexed' => 0), 'a.id_product IN ('.implode(',', $array).')');
			$ids = array();
			foreach ($array as $id_product)
				$ids[] = '('.(int)$id_product.','.(int)$this->id.')';
	
			if ($result)
			{
				$result &= Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'opartproductvideo_product (id_product, id_opartproductvideo) VALUES '.implode(',', $ids));
				if (Configuration::get('PS_SEARCH_INDEXATION'))
					$result &= Search::indexation(false);
			}
		}
		return $result;
	}
	
	public function getVideoByProduct($idProd,$id_lang) {
		$sql='
			SELECT v.title,v.width,v.height,v.className,v.anchorName,vl.link,vl.desc,vl.publicTitle
			FROM `'._DB_PREFIX_.'opartproductvideo_product` vp, `'._DB_PREFIX_.'opartproductvideo` v
			LEFT JOIN `'._DB_PREFIX_.'opartproductvideo_lang` vl ON v.id_opartproductvideo = vl.id_opartproductvideo
			WHERE vl.id_lang = '.(int)$id_lang.'
			AND vp.id_product='.$idProd.' AND vp.id_opartproductvideo = v.id_opartproductvideo
			ORDER BY v.id_opartproductvideo
		';
		return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
	}

	public function setProductsVideo($array)
	{
		$result = Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'opartproductvideo_product WHERE id_opartproductvideo = '.(int)$this->id);
		if (is_array($array))
		{
			$array = array_map('intval', $array);
			$result &= ObjectModel::updateMultishopTable('Product', array('indexed' => 0), 'a.id_product IN ('.implode(',', $array).')');
			$ids = array();
			foreach ($array as $id_product)
				$ids[] = '('.(int)$id_product.','.(int)$this->id.')';
	
			if ($result)
			{
				$result &= Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'opartproductvideo_product (id_product, id_opartproductvideo) VALUES '.implode(',', $ids));
				if (Configuration::get('PS_SEARCH_INDEXATION'))
					$result &= Search::indexation(false);
			}
		}
		return $result;
	}
	
	public function getVideoInfo($url=false){
	    $url=($url!=false)?$url:$this->link;
		if(preg_match("/youtube/i",$url))            
			return "youtube";
	    else if(preg_match("/dailymotion/i",$url))   
	    	return "dailymotion";
	    else if(preg_match("/vimeo/i",$url))         
	    	return "vimeo";
	}
	
	public function getYoutubeId($url=false) {
		$url=($url!=false)?$url:$this->link;
		return substr($url, strpos($url,"v=")+2,strlen($url)); 
	}
	
	public function getDailymotionId($url=false) {
		$url=($url!=false)?$url:$this->link;
		return substr($url, strpos($url,"video/")+6,strpos($url,"_"));
	}
	
	public function getVimeoId($url=false) {
		$url=($url!=false)?$url:$this->link;
		return substr($url, strpos($url,"vimeo.com/")+10,strlen($url));
	}

reste plus cas modifier le fichier opartproductvideo.tpl pour masquer le titre de la vidéo si comme moi vous ne le voulait pas

on supprime le h2 et h3 

 

Voilà le tour est jouer 

Si vous voulez d'autre informations je reste a votre service

 

Un grand merci a manit4c pour toutes les informations 

Edited by bpascal81 (see edit history)

Share this post


Link to post
Share on other sites

Merci d'avoir partager ton code je ne l'ai pas testé mais puisque ça marche sur ta boutique c'est qu'il est fonctionnel.

 

Petite remarque:

 

 

En suite on va modifier le fichier product.php

 

Je te conseille de faire un override plutôt que de modifier directement la classe product.php tu trouvera des infos sur les overrides dans la documentation officielle de presta.

Share this post


Link to post
Share on other sites

Bonjour,

Conformément aux règles du forum :
 

Tout élément doit être fourni directement dans le forum 
...et non pas avec un lien vers un site externe. Les modules que vous proposez dans ce forum sont gratuits. Vous pouvez donc les mettre à disposition en attachant le ZIP à votre topic. Les topics avec un lien externes seront modérés et retirés.


J'ai donc retiré le lien dans le post.

Merci pour la contribution ! :)

Share this post


Link to post
Share on other sites

hello !

module inutilisable avec prestashop cloud. impossible de l'installer. On ne peut passer que par les addons officiels.

 

Ou alors quitter prestashop. Je deteste cette façon de nous forcer la main. Vraiment.

Share this post


Link to post
Share on other sites

Bonjour,

 

Merci pour ce module très pratique qui fonctionne bien en prestashop 1.6.0.9.

J'ai besoin d'un petit coup de main pour l'affichage des vidéos. J'aimerai différencier l'affichage des vidéos sur les fiches produits avec, s'il y a un nombre pair de vidéo, les afficher côté à côté.

Cependant, je ne trouve pas comment les compter.

 

J'ai testé de compter $resultarray et $result mais cela ne semble pas être ça.

 

Merci d'avance pour toute aide

Share this post


Link to post
Share on other sites

Bonjour,

je penses que tu peux simplement le faire en css en utilisant "float".

Si tu à la place de ne mettre que deux vidéos en largeur et que tu les met en float:left naturellement elle se placeront 2 par lignes.

Share this post


Link to post
Share on other sites

Bonjour, 

 

Merci pour la réponse. J'ai déjà utilisé la variable "float" en css pour avoir un affichage mais cela ne fonctionne pas bien sur toutes les configurations d'où ma question 

 

Et en plus je souhaite modifier la taille d'affichage des vidéos s'il y en a 1 (sur une seule ligne) ou 2 sur la même ligne.

Edited by Galadrum (see edit history)

Share this post


Link to post
Share on other sites

Dans ce cas normalent dans ton TPL c'est bien $result qu'il faut utiliser.

 

Tu peux faire un module 2 sur le result pour savoir si le nombre de résultat est paire.

Si ce n'est pas le cas à la dernière ligne tu aura une seule vidéo.

{foreach from=$result item=video name=foo}
{if $smarty.foreach.foo.last && $result%2 == 0}
affichage sur une colonne
{else}
affichage sur deux colonne
{/if}

J'ai pas testé ce code mais c'est ce que je ferais :)

 

Ps: si tu y arrive n'hésite pas à venir le partager ici ça servira surement à d'autres !

Edited by manit4c (Olivier C.) (see edit history)

Share this post


Link to post
Share on other sites

J'avais déjà essayé de faire un truc du style mais j'avais mis la condition avant le foreach pour pouvoir voir le nombre de vidéos par page produit.
Avec ta solution, vu que la condition est dans le foreach, l'affichage global ne sera pas impacté non ?

Voici le code que j'ai mis dans le tpl, avec agrandissement des vidéos quand il n'y en a qu'une. Par contre, même sur une page avec deux vidéos s'affiche "vidéo impair" ce qui veut dire qu'on ne rentre pas dans la bonne boucle.
 

<h2 id="#idTabOpartFaq" class="idTabHrefShort page-product-heading">{l s='VIDEO' mod='opartfaq'}</h2>
<div id="idTabOpartProductVideo" class="rte" width="100%">
{foreach from=$result item=video name=foo}
{if $smarty.foreach.foo.last && $result%2 == 0}
    <div class="block opartProductVideo_pair {$video->className}">
        <h2>{$video->publicTitle} Video Pair</h2>
        <div class="opartProductVideoDesc">{$video->desc}</div>
    </div>
{else}
    <div class="block opartProductVideo {$video->className}">
        <h2>{$video->publicTitle} Video impair</h2>
        <div class="opartProductVideoDesc">{$video->desc}</div>
    </div>
{/if}

Share this post


Link to post
Share on other sites

Non le code pour pair et impair était bon mais en fait le problème est qu'il y a ce test pour chaque vidéo. 

Donc quand il y a deux vidéos, il y aura toujours une vidéo dans une boucle et une dans l'autre (alors que moi en fonction de la boucle je modifie la taille de la vidéo), voir screenshot en pièce jointe

 

C'est pour cela que je cherchais un test à faire une fois (et pas pour chaque vidéo) et qui donnait le nombre de vidéos présents, chose que je n'arrive pas à faire.

 

 

post-370465-0-79743800-1428993712_thumb.jpg

Share this post


Link to post
Share on other sites

J'avoue que je test pas donc c'est pas évident mais pour moi le test ne doit se faire que sur la dernière vidéo.

En gros si on est sur la dernière video et que le nombre de vidéo est impair alors on affiche la dernière vidéo sur une seule colonne sinon (et pour tout les autres passages) on affiche les vidéo sur deux colonnes.

 

Pour moi ça ça devrait fonctionner:

{if $smarty.foreach.foo.last && $result%2 != 0}
    <div class="block opartProductVideo_pair {$video->className}">
        <h2>{$video->publicTitle} Video IMPAIR</h2>
        <div class="opartProductVideoDesc">{$video->desc}</div>
    </div>
{else}
    <div class="block opartProductVideo {$video->className}">
        <h2>{$video->publicTitle} Video pair</h2>
        <div class="opartProductVideoDesc">{$video->desc}</div>
    </div>
{/if}

Share this post


Link to post
Share on other sites

Le problème dans mon cas c'est que quand il n'y a qu'une vidéo (le cas impair), je redimensionne en tpl la vidéo pour qu'elle soit plus grande (en faisant width="{video->width*1.7}).

En testant votre code avec deux vidéos, la première vidéo est bien dans "vidéo pair" mais la seconde passe dans vidéo impair vu qu'il s'agit de la dernière et est alors redimensionnée.

 

Il faut peut être alors juste créer un compteur de vidéo à rajouter également dans la condition et juste après la boucle for pour ne rentrer dans la boucle du "impair" que s'il n'y a qu'une seule vidéo. 

 

Je vais me pencher dessus pour voir si j'arrive à écrire ça avec la bonne synthaxe.

 

Merci à chaque fois pour toutes les réponses

Edited by Galadrum (see edit history)

Share this post


Link to post
Share on other sites

Pas la peine de créer un compteur tu l'as déjà avec $result.

Mais en fait je m'aperçois que j'ai pas fait le modulo directement sur le tableu et non pas le count.

 

Essai ça:

{assign var=result_count value=$result|@count}
{foreach from=$result item=video name=foo}
{if $smarty.foreach.foo.last && $result_count%2 != 0}
<div class="block opartProductVideo_pair {$video->className}">
<h2>{$video->publicTitle} Video IMPAIR</h2>
<div class="opartProductVideoDesc">{$video->desc}</div>
</div>
{else}
<div class="block opartProductVideo {$video->className}">
<h2>{$video->publicTitle} Video pair</h2>
<div class="opartProductVideoDesc">{$video->desc}</div>
</div>
{/if}
{/foreach}
  • Like 1

Share this post


Link to post
Share on other sites

Salut,

 

Bravo pour ce module, il est super pratique et simple a utiliser.

 

J'ai juste un petit soucis.

 

Quand j'ajoute la vidéo a un produit, l'ongle ce crée mais, j'ai dans les autres onglets, le mot vidéo apparaît : voir image

 

J'aimerais aussi, il serai pas mal, pouvoir aligner la vidéo ( centrer ) pour moi cela serait plus propre selon les tailles des vidéos.

 

Merci encore pour tes tutos, astuces et surtout pour tes modules...

Share this post


Link to post
Share on other sites

Je viens de télécharger ce module dans votre boutique pour le tester et tenais à vous remercier.

 

Juste une petite question : il ne fonctionne qu'avec des videos en ligne ou il est possible d'avoir une video sur son serveur et de l'importer svp ?

 

Merci encore

 

Chris

Share this post


Link to post
Share on other sites

Bonjour, 

@SensualityForAll il est possible que ton thème gère les onglet différemment essai de dégréffer le module du hook productvideotab

 

Pour centrer ta vidéo il faut le faire en css.

 

@FFSMC-prod, non pour l'instant le module ne fonctionne qu'avec des vidéos hébergée sur wimeo, dailymotion et youtube

Share this post


Link to post
Share on other sites

D'accord, merci à vous. Je passerai donc par youtube ou atre service du même genre.

 

Merci encore d'avoir mis ce script gratuitement à disposition.

 

Chris

Share this post


Link to post
Share on other sites

Bonsoir à tous.

 

Je ne trouve pas le lien pour le télécharger. Même sur le site il marque page introuvable...

 

Si quelqu’un a une astuce.

 

Merci d'avance

 

Share this post


Link to post
Share on other sites

Bonjour David,

je n'ai plus le droit de mettre le lien vers le module (les règles du forum Prestashop l'interdise désormais).

Par contre dans la description de la vidéo de démonstration sur youtube, j'ai corrigé le lien vers la fiche produit qui en effet n'était plus le bon.

 

Donc si tu retourne sur la vidéo puis que tu clic sur le lien qui se trouve en dessous tu devrais pouvoir récupérer le module.

Share this post


Link to post
Share on other sites

Bonjour,

 

un lien direct vers l'archive du module ou le module directement téléchargeable dans le premier post est possible.

 

Ce qui n'est pas accepté c'est le lien vers un site proposant d'autre activités commerciale, cela me parait logique mais bon chaque développeur fait comme il le souhaite.

Share this post


Link to post
Share on other sites

Hello, 

oui oui on est bien d'accord mais ce post (et d'autres) existe depuis un certain temps. A l'époque cette pratique était autorisée.

Depuis le remaniement du forum ça ne l'ai plus et tout les liens vers ma boutique ont été supprimé.

Je ne souhaite pas proposer le module en libre téléchargement car en effet le but est bien d'amener les gens vers ma boutique c'est pourquoi je disait que je ne pouvais pas mettre le lien ;).

Share this post


Link to post
Share on other sites

Salut Olivier,

 

ne serait t'il pas possible d'ajouter un player style "JwPlayer" ou autre, pour pouvoir ajouter ses vidéos sur son propre serveur au lieu d'une plateforme?

et, pk pas aussi avoir la possibilité de changer de hook? ou alors, l'avoir aligné sur les miniatures de produits?

 

Malheureusement sur mon thème, le module ne fonctionne pas bien et c'est bien dommage. D’où mes propositions...

 

 

PS. J'ai essayé de t'envoyer un mail avec ton module avec mes quelques modifications, ainsi qu'une archive d'un player.... Et ça passe pas.... Pas cool OVG..

Share this post


Link to post
Share on other sites

 

Salut Olivier,

 

ne serait t'il pas possible d'ajouter un player style "JwPlayer" ou autre, pour pouvoir ajouter ses vidéos sur son propre serveur au lieu d'une plateforme?

et, pk pas aussi avoir la possibilité de changer de hook? ou alors, l'avoir aligné sur les miniatures de produits?

 

Salut,

désolé pour la réponse tardive j'étais en congés jusqu'à aujourd'hui.

 

Pour jwplayer ce n'est pas prévu que le module le supporte par contre j'ai développé un module spécifique pour jwplayer (compatible 1.5) pour un client.

Il n'est pas finaliser pour la vente et ce n'est pas dans les projets à court terme mais il ne doit pas y avoir grand chose à faire pour qu'il soit compatible 1.6.

 

 

 

Malheureusement sur mon thème, le module ne fonctionne pas bien et c'est bien dommage. D’où mes propositions...

 

Détail moi tes problèmes par mail pour voir si on peut les résoudre.

 

 

 

 

PS. J'ai essayé de t'envoyer un mail avec ton module avec mes quelques modifications, ainsi qu'une archive d'un player.... Et ça passe pas.... Pas cool OVG..

 

Je t'envoi mon adresse mail en message privé.

 

A bientôt,

Olivier

Share this post


Link to post
Share on other sites

Bonjour;

Suite à la mise à jours de mon siteweb en version 1.6.1.6 je me retrouve avec un beau site responsive mais les vidéo ne le sont pas.

Pouvez vous m'indiquer quelle fichier je dois modifier.

Merci pour le module qui est parfait pour mon siteweb www.briquet-usb.eu

 

Cordialement

Share this post


Link to post
Share on other sites

Bonjour Olivier,

 

je voudrais installer le module video pour les produits pour contre je me pose une question : j'ai un hébergement mutualisé, est ce que le fait de mettre une vidéo sur des produits va ralentir le temps de chargement de mes pages.

 

Merci du conseil

Share this post


Link to post
Share on other sites

Hello,

non pas de soucis dans la mesure où tes vidéos sont hébergée sur youtube ou dailymotion.

Ce n'est pas ton serveur qui enverra le flux vidéo. Donc pas de problème.

Share this post


Link to post
Share on other sites
Guest

Hello,

 

 

Merci pour ton module, installé mais apparemment j'ai un petite problème. L'onglet vidéo se retrouve dans l'onglet avis et la vidéo ne s'affiche pas.

 

https://outpost-shop.com/fr/accessoires/588-scrubba-wash-bag-sac-lave-linge-0680569403896.html

 

Merci

 

ben, on dirait que ça fonctionne nickel maintenant.. si ce n'est pas le cas chez vous.. faites un bon refresh et videz votre cache navigateur.

Share this post


Link to post
Share on other sites

Chez moi sa ne semble pas marcher, à ne pas confondre avec le vidéo en iframe dans la description.

 

a+

post-1018119-0-25509300-1471011838_thumb.jpg

Share this post


Link to post
Share on other sites

Bonjour Outpost,

le problème de la vidéo qui se place dans l'onglet avis c'est le plus souvent dû au fait que le thème utilisé ne respecte pas le code original du thème de base de prestashop.

Mon module se base sur le thème original et du coup si tu veux qu'il se place correctement avec ton thème il est possible que tu soit obligé de faire un peu de css et d'html.

Regarde dans les fichier de template de mon module et compare avec ceux de ton thème pour voir la différence.

Share this post


Link to post
Share on other sites

Bonjour,

 

J'ai aussi un souci d'onglet. Je dois modifier le fichier tab.tpl pour ajouter le lien de l'onglet. Ceci fonctionne parfaitement:

    <li><a href="#tab8" data-toggle="tab">{l s='Video' mod='opartproductvideo'}</a></li>    

Mais je n'arrive pas à le supprimer quand il n'y a pas de vidéo.

J'ai essayé différentes combinaisons de if /if mais sans succès. L'identifiant opartproductvideo ne semble pas capté par le tmp.

 

Une idée de comment faire ce test? Pour que l'onglet vidéo apparaisse uniquement quand c'est utile?

 

Merci de vos réponses.

Share this post


Link to post
Share on other sites

Bonjour,

si tu as modifié l'onglet tab directement dans ton thème c'est normal.

 

Il faut que tu modifie le fichier opartproductvideotab_15.tpl qui se trouve dans le dossier "views/templates/hook" de mon module.

 

Normalement tu n'as pas besoin de rajouter un IF dans le template car il y a déjà un IF dans le controler qui vérifie si l'onglet est nécessaire ou pas.

Share this post


Link to post
Share on other sites

Merci de votre réponse. Au regard du code, l'inclusion ne se fait pas, parce que nous sommes en version 1.6. hors notre thème (pourtant mis à jour) ne possède pas "d'onglet dépliés" mais des onglets comme en 1.5.  

 

L'inclusion de l'iframe vidéo se fait correctement après quelques modifications, mais l'onglet ne s'inclu pas. Est-ce que je modifie le controleur ou le tab?