Jump to content

altsphere

Members
  • Posts

    8
  • Joined

  • Last visited

altsphere's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Hello, i'm building a module which : 1) display a "stock in store" button on the product page (OK) 2) open a fancybox on click which contains a view loaded by ajax via a controller(OK) 3) This view contains a select with literal JS with calls ajax onChange (OK) 4) the fancybox is update with a new view including a google map + some infos loaded via ajax by the same controller (+ personal info but this is OK) => PROB : setmedia in the controller is never called so JS and CSS are not included and I have no google map => QUESTION : how to load JS script in an ajax call via controller (this must be loaded depending on the action - the second ajax call- only) => check attached file as it's impossible to put code here first view, return from the first ajax call (first content of the fancybox) <select id="selectmagasin"> <option value="">{l s='Choisissez votre magasin' mod='stockmagasin'}</option> {foreach from=$magasins item=magasin name=magasin} <option value="{$magasin.id_store}">{$magasin.postcode|escape:'htmlall':'UTF-8'} - {$magasin.name|escape:'htmlall':'UTF-8'}</option> {/foreach} </select> <div id="stock_magasin"></div> <script type="text/javascript"> {literal} function StockMagasin() { $.ajax({ url: baseDir+'module/stockmagasin/stockmagasin', // version jeff qui marchebaseDir+'modules/stockmagasin/ajax_stockmagasin.php', type: 'POST', data: 'ajax=true&method=stockmagasin&magasin='+$("#selectmagasin").val()+'&reference={/literal}{$reference}{literal}', success: function(html) { $("#stock_magasin").html(html); } }); return true; } $("#selectmagasin").on('change',StockMagasin); {/literal} </script> Second view (point 4) return of the second ajax call, update of the fancybox's content. But no JS and CSS loaded so no google map {if $retour} <p class="alert alert-info margintop"> Il y en a {$quantite} en stock. </p> <h1 class="page-heading">{$store.name}</h1> <div id="map" style="width:100%; height:447px; margin-bottom:20px;"></div> <div class="row"> <div class="col-xs-12 col-sm-{if !empty($store.email)}4{else}6{/if}"> <p> <strong>{l s='Address' mod='storespages'}</strong><br/> {$store.address1}<br/> {$store.postcode} {$store.city}<br/> {l s='Tel.' mod='storespages'} : {$store.phone}<br/> {l s='Fax' mod='storespages'} : {$store.fax} </p> <strong>{l s='Working hours' mod='storespages'}</strong> {$store.working_hours} </div> <div class="col-xs-12 col-sm-{if !empty($store.email)}4{else}6{/if}"> {if $store.has_picture} <img src="{$store.image}" class="img-responsive" alt="magasin {$store.name}" title="magasin {$store.name}"/> {/if} </div> {if !empty($store.email)} <div class="col-xs-12 col-sm-4"> <h4>{l s='Contact the shop of %s' sprintf=$store.name mod='storespages'} : </h4> {if !empty($contact_errors)} <div class="alert alert-danger"> <p>{l s='%d error(s)' sprintf=$contact_errors|@count mod='storespages'} :</p> <ol> {foreach from=$contact_errors item=v} <li>{$v}</li> {/foreach} </ol> </div> {else} {if !empty($contact_success)} <div class="alert alert-success"> {l s='Email sent.' mod='storespages'} </div> {/if} {/if} <form method="post" action=""> <input type="hidden" name="magasin" value="{$store.id_store}"> <div class="form-group"> <div class="controls"> <input class="col-md-12" name="name" type="text" placeholder="{l s='Your name' mod='storespages'}" value="{if !empty($user)}{$user.firstname} {$user.lastname}{/if}"> </div> </div> <div class="form-group "> <div class="controls"> <input class="col-md-12" name="address" type="text" placeholder="{if $b2b_enable}{l s='Address of your shop' mod='storespages'}{else}{l s='Your address' mod='storespages'}{/if}" value="{if !empty($user)}{$user.address}{/if}"> </div> </div> <div class="form-group "> <div class="controls"> <input class="col-md-12" name="phone" type="text" placeholder="{l s='Your phone number' mod='storespages'}" value="{if !empty($user)}{$user.phone}{/if}"> </div> </div> <div class="form-group"> <div class="controls"> <input class="col-md-12" name="email" type="text" placeholder="{l s='Your email address' mod='storespages'}" value="{if !empty($user)}{$user.email}{/if}"> </div> </div> <div class="form-group "> <div class="controls"> <textarea class="col-md-12" name="message" placeholder="{l s='Your message' mod='storespages'}" style="height:100px;">{if isset($smarty.post.message)}{$smarty.post.message}{/if}</textarea> </div> </div> {$HOOK_DISPLAY_STORESPAGES_CAPTCHA} <input type="submit" name="submitContact" class="button orange medium" value="{l s='Send' mod='storespages'}"> </form> </div> {/if} </div> {else} <p class="alert alert-error margintop"> L'article n'est pas disponible, commandez en ligne !</p> {/if} stockmagasin.php
  2. Bonjour, je crée un module qui : 1) affiche un bouton "stock en magasin" sur la page produit (OK) 2) ouvre une fancybox dont le contenu est une vue chargée en ajax via un controller (OK) 3) cette vue contient un select avec du JS litéral qui fait un appel ajax sur le onChange (OK) 4) la fancybox contient une nouvelle vue contenant une google map + des infos chargée en ajax via le même controller (+ des infos propriétaires reçues en socket, cette partie est ok) => PROBLEME : le setmedia du controller ne charge jamais le JS et le CSS donc il n'y a jamais la google map. => QUESTION : comment charger des scripts JS lors d'un appel ajax via controller (sachant que c'est seulementselon l'action -second appel- qu'il faut charger ce JS de google map) Controller appelé en ajax et qui ne fait pas le setmedia (ou comment intégrer les scripts JS lors du second appel ajax uniquement => voir fichier joint impossible de l'afficher ici Vue (cf 2) retour du 1er appel ajax (1er contenu de la fancybox) <select id="selectmagasin"> <option value="">{l s='Choisissez votre magasin' mod='stockmagasin'}</option> {foreach from=$magasins item=magasin name=magasin} <option value="{$magasin.id_store}">{$magasin.postcode|escape:'htmlall':'UTF-8'} - {$magasin.name|escape:'htmlall':'UTF-8'}</option> {/foreach} </select> <div id="stock_magasin"></div> <script type="text/javascript"> {literal} function StockMagasin() { $.ajax({ url: baseDir+'module/stockmagasin/stockmagasin', // version jeff qui marchebaseDir+'modules/stockmagasin/ajax_stockmagasin.php', type: 'POST', data: 'ajax=true&method=stockmagasin&magasin='+$("#selectmagasin").val()+'&reference={/literal}{$reference}{literal}', success: function(html) { $("#stock_magasin").html(html); } }); return true; } $("#selectmagasin").on('change',StockMagasin); {/literal} </script> Vue (cf 4) retour second appel ajax (mise à jour contenu de la fancybox - mais il manque le setmedia du CSS et JS pour que la map google fonctionne) {if $retour} <p class="alert alert-info margintop"> Il y en a {$quantite} en stock. </p> <h1 class="page-heading">{$store.name}</h1> <div id="map" style="width:100%; height:447px; margin-bottom:20px;"></div> <div class="row"> <div class="col-xs-12 col-sm-{if !empty($store.email)}4{else}6{/if}"> <p> <strong>{l s='Address' mod='storespages'}</strong><br/> {$store.address1}<br/> {$store.postcode} {$store.city}<br/> {l s='Tel.' mod='storespages'} : {$store.phone}<br/> {l s='Fax' mod='storespages'} : {$store.fax} </p> <strong>{l s='Working hours' mod='storespages'}</strong> {$store.working_hours} </div> <div class="col-xs-12 col-sm-{if !empty($store.email)}4{else}6{/if}"> {if $store.has_picture} <img src="{$store.image}" class="img-responsive" alt="magasin {$store.name}" title="magasin {$store.name}"/> {/if} </div> {if !empty($store.email)} <div class="col-xs-12 col-sm-4"> <h4>{l s='Contact the shop of %s' sprintf=$store.name mod='storespages'} : </h4> {if !empty($contact_errors)} <div class="alert alert-danger"> <p>{l s='%d error(s)' sprintf=$contact_errors|@count mod='storespages'} :</p> <ol> {foreach from=$contact_errors item=v} <li>{$v}</li> {/foreach} </ol> </div> {else} {if !empty($contact_success)} <div class="alert alert-success"> {l s='Email sent.' mod='storespages'} </div> {/if} {/if} <form method="post" action=""> <input type="hidden" name="magasin" value="{$store.id_store}"> <div class="form-group"> <div class="controls"> <input class="col-md-12" name="name" type="text" placeholder="{l s='Your name' mod='storespages'}" value="{if !empty($user)}{$user.firstname} {$user.lastname}{/if}"> </div> </div> <div class="form-group "> <div class="controls"> <input class="col-md-12" name="address" type="text" placeholder="{if $b2b_enable}{l s='Address of your shop' mod='storespages'}{else}{l s='Your address' mod='storespages'}{/if}" value="{if !empty($user)}{$user.address}{/if}"> </div> </div> <div class="form-group "> <div class="controls"> <input class="col-md-12" name="phone" type="text" placeholder="{l s='Your phone number' mod='storespages'}" value="{if !empty($user)}{$user.phone}{/if}"> </div> </div> <div class="form-group"> <div class="controls"> <input class="col-md-12" name="email" type="text" placeholder="{l s='Your email address' mod='storespages'}" value="{if !empty($user)}{$user.email}{/if}"> </div> </div> <div class="form-group "> <div class="controls"> <textarea class="col-md-12" name="message" placeholder="{l s='Your message' mod='storespages'}" style="height:100px;">{if isset($smarty.post.message)}{$smarty.post.message}{/if}</textarea> </div> </div> {$HOOK_DISPLAY_STORESPAGES_CAPTCHA} <input type="submit" name="submitContact" class="button orange medium" value="{l s='Send' mod='storespages'}"> </form> </div> {/if} </div> {else} <p class="alert alert-error margintop"> L'article n'est pas disponible, commandez en ligne !</p> {/if} stockmagasin.php
  3. RESOLU ! SOLUTION : lors de l'installation, il manque le champs bo_show_screencast dans la table ps_employee
  4. C'est une toute nouvelle installation, j'ai juste importer les tables produit/history/... en prenant soit de remplir ou adapter les champs ayant changer de noms. Donc toute l'instal est celle du 1.4.5.1 Edit: j'ai essayé de désinstaller le module tableau de bord et de le réinstaller, rien en change puisque le problème vient du Calendrier (les boutons jour, jou-1, et même lorsqu'on change la date avec le datepicker, ne change rien, les dates se remettent sur celles qui se trouvent dans ps_employee)
  5. j'ai déjà regardé le topic :http://www.prestashop.com/forums/topic/139615-resolu-tableau-statistiques-bloque-au-3011-passage-heure-dhiver/page__st__20__gopid__736902?do=findComment&comment=736902 et rien n'y fait. Même problème depuis passage à la 1.4.5.1, même avec la mise à jour de statsforecast : Les dates restent bloquées à celles qui sont dans la table ps_employee (stats_date_from, stats_date_to) et quand je modifie dans les stats elles reviennent toujours sur celles-là. je dois changer via la base de données ce qui n'est pas du tout commode. Une solution?
  6. Même problème depuis passage à la 1.4.5.1, même avec la mise à jour de statsforecast. Les dates restent bloqués à celle qui sont dans la table ps_employye (stats_date_from, stats_date_to) et quand je modifie dans les stats elles reviennettoujours sur celle-là. je dois changer via la base de données ce qui n'est pas du tout commode. Une solution?
  7. Merci pour ce script! Ca m'a sauvé la mise. Par contre, les watermarks ne fonctionnent pas chez moi et je n'ai pas trouvé où insérer la partie du script original ds tes boucles. a+
×
×
  • Create New...