Jump to content

Page Magasins : Affichage de la carte et de la liste des magasins


Recommended Posts

Bonjour à tous,

Je cherche désespérément  à afficher sur la page "magasins" la carte google maps avec la position des magasins et en dessous la liste des magasins avec leurs horaires d'ouverture et de contact. 

J'arrive a afficher soit la carte, soit les informations, mais pas les deux en même temps. 

Quelqu'un saurait quel code modifier ?

Merci d'avance

Link to comment
Share on other sites

il faut modifier le fichier stores.tpl en enlevant la condition {if} {else} {/if} . Une fois cela fait, vous aurez un pb car les 2 blocs (liste et carte) utilisent la même variable {$tores}.

Il faut donc la renommer dans le 1er bloc en $stores2 et $store2 et modifier donc son nom lors de son assignation dans le controleur StoresController.php

 

http://shop.devcustom.net/fr/magasins

Link to comment
Share on other sites

Bonjour,
Tout d'abord, un grand merci pour votre réponse. Je vois sur votre site exactement le résultat que je recherche !
J'ai bien reussi a supprimer les balises if else if.

Cependant, je ne vois pas quelles variables remplacer dans mes fichiers stores.tpl et storesControllers.php

Auriez vous plus de précisions?

Voici mon code stores.tpl 

merci

{capture name=path}{l s='Our stores'}{/capture}


	{if $stores|@count}
		<p class="store-title">
			<strong class="dark">
				{l s='Here you can find our store locations. Please feel free to contact us:'}
			</strong>
		</p>
	    <table class="table table-bordered">
	    	<thead>
            	<tr>
                	<th class="logo">{l s='Logo'}</th>
                    <th class="name">{l s='Store name'}</th>
                    <th class="address">{l s='Store address'}</th>
                    <th class="store-hours">{l s='Working hours'}</th>
                </tr>
            </thead>
			{foreach $stores as $store}
				<tr class="store-small">
					<td class="logo">
						{if $store.has_picture}
							<div class="store-image">
								<img src="{$img_store_dir}{$store.id_store}-medium_default.jpg" alt="{$store.name|escape:'html':'UTF-8'}" width="{$mediumSize.width}" height="{$mediumSize.height}"/>
							</div>
						{/if}
					</td>
					<td class="name">
						{$store.name|escape:'html':'UTF-8'}
					</td>
		            <td class="address">
		            {assign value=$store.id_store var="id_store"}
		            {foreach from=$addresses_formated.$id_store.ordered name=adr_loop item=pattern}
	                    {assign var=addressKey value=" "|explode:$pattern}
	                    {foreach from=$addressKey item=key name="word_loop"}
	                        <span {if isset($addresses_style[$key])} class="{$addresses_style[$key]}"{/if}>
	                            {$addresses_formated.$id_store.formated[$key|replace:',':'']|escape:'html':'UTF-8'}
	                        </span>
	                    {/foreach}
	                {/foreach}
	                	<br/>
						{if $store.phone}<br/>{l s='Phone:'} {$store.phone|escape:'html':'UTF-8'}{/if}
						{if $store.fax}<br/>{l s='Fax:'} {$store.fax|escape:'html':'UTF-8'}{/if}
						{if $store.email}<br/>{l s='Email:'} {$store.email|escape:'html':'UTF-8'}{/if}
						{if $store.note}<br/><br/>{$store.note|escape:'html':'UTF-8'|nl2br}{/if}
					</td>
		            <td class="store-hours">
						{if isset($store.working_hours)}{$store.working_hours}{/if}
		            </td>
				</tr>
			{/foreach}
	    </table>
		
	<div id="map"></div>
	<p class="store-title">
		<strong class="dark">
			{l s='Enter a location (e.g. zip/postal code, address, city or country) in order to find the nearest stores.'}
		</strong>
	</p>
    <div class="store-content">
        <div class="address-input">
            <label for="addressInput">{l s='Your location:'}</label>
            <input class="form-control grey" type="text" name="location" id="addressInput" value="{l s='Address, zip / postal code, city, state or country'}" />
        </div>
        <div class="radius-input">
            <label for="radiusSelect">{l s='Radius:'}</label>
            <select name="radius" id="radiusSelect" class="form-control">
                <option value="15">15</option>
                <option value="25">25</option>
                <option value="50">50</option>
                <option value="100">100</option>
            </select>
            <img src="{$img_ps_dir}loader.gif" class="middle" alt="" id="stores_loader" />
        </div>
        <div>
            <button name="search_locations" class="button btn btn-default button-small">
            	<span>
            		{l s='Search'}<i class="icon-chevron-right right"></i>
            	</span>
            </button>
        </div>
    </div>
    <div class="store-content-select selector3">
    	<select id="locationSelect" class="form-control">
    		<option>-</option>
    	</select>
    </div>

	<table id="stores-table" class="table table-bordered">
    	<thead>
			<tr>
                <th class="num">#</th>
                <th>{l s='Store'}</th>
                <th>{l s='Address'}</th>
                <th>{l s='Distance'}</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
	</table>

{strip}
{addJsDef map=''}
{addJsDef markers=array()}
{addJsDef infoWindow=''}
{addJsDef locationSelect=''}
{addJsDef defaultLat=$defaultLat}
{addJsDef defaultLong=$defaultLong}
{addJsDef hasStoreIcon=$hasStoreIcon}
{addJsDef distance_unit=$distance_unit}
{addJsDef img_store_dir=$img_store_dir}
{addJsDef img_ps_dir=$img_ps_dir}
{addJsDef searchUrl=$searchUrl}
{addJsDef logo_store=$logo_store}
{addJsDefL name=translation_1}{l s='No stores were found. Please try selecting a wider radius.' js=1}{/addJsDefL}
{addJsDefL name=translation_2}{l s='store found -- see details:' js=1}{/addJsDefL}
{addJsDefL name=translation_3}{l s='stores found -- view all results:' js=1}{/addJsDefL}
{addJsDefL name=translation_4}{l s='Phone:' js=1}{/addJsDefL}
{addJsDefL name=translation_5}{l s='Get directions' js=1}{/addJsDefL}
{addJsDefL name=translation_6}{l s='Not found' js=1}{/addJsDefL}
{/strip}
Link to comment
Share on other sites

Je pensais pourtant écrire français...

 

Dans ce fichier (stores.tpl), chaque fois que vous rencontrez EXACTEMENT $stores vous le remplacez par $stores2 et à chaque fois que vous rencontrez EXACTEMENT $store vous le remplacez par $store2

 

Ca va jusque là ?

 

Pour le controleur:

A la ligne 119 remplacez

'stores' => $stores,

par 

'stores2' => $stores,

et à la ligne 265, modifiez le bloc suivant:

        if (Configuration::get('PS_STORES_SIMPLIFIED')) {
            $this->assignStoresSimplified();

        } else {
            $this->assignStores();

        }

en commentant ces 3 lignes comme ceci:

        //if (Configuration::get('PS_STORES_SIMPLIFIED')) {
            $this->assignStoresSimplified();

        //} else {
            $this->assignStores();

        //}

J'espère que c'est assez clair cette fois ci.

Je n'aime pas donner du code tout fait qui sera copié/collé sans comprendre et parfois engendre de sérieux problèmes. A vous de prendre le temps d'analyser les modifications avec les explications que j'ai donné dans le 1er post.

Link to comment
Share on other sites

  • 8 months later...

Je me permets de remonter le sujet.

 

J'ai fais les modifications mais j'ai 2 erreurs :

 

Notice: Undefined index: key in C:\wamp64\www\PrestaMDU\tools\smarty\sysplugins\smarty_internal_templatebase.php(157) : eval()'d code on line 256
 
Notice: Trying to get property of non-object in C:\wamp64\www\PrestaMDU\tools\smarty\sysplugins\smarty_internal_templatebase.php(157) : eval()'d code on line 256
Edited by Serial (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...