Prestashop - карта yandex

Автор Kardan, 25 июня 2013, 23:04:48

« назад - далее »

Kardan

и еще вопрос...)
как сделать что бы в "наши магазины"показывало яндекс карту а не гугл?

Виктор Демидов

Нужно заменить шаблон
/themes/default/stores.tpl
Создайте свою карту  и вставьте код в новый шаблон.

mAgency

Цитата: Виктор Демидов
Нужно заменить шаблон
/themes/default/stores.tpl
Создайте свою карту  и вставьте код в новый шаблон.
В конструкторе карт делаете карту с нужными координатами, генерируете код, скопируйте этот код и вставьте в файл stores.tpl
{capture name=path}{l s='Our stores'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}
<h1>{l s='Our stores'}</h1>
{if $simplifiedStoresDiplay}
{if $stores|@count}
<p>{l s='Here you can find our store locations. Please feel free to contact us:'}</p>
{foreach $stores as $store}
<div class="store-small grid_2">
{if $store.has_picture}<p><img src="{$img_store_dir}{$store.id_store}-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /></p>{/if}
<p>
<b>{$store.name|escape:'htmlall':'UTF-8'}</b><br />
{$store.address1|escape:'htmlall':'UTF-8'}<br />
{if $store.address2}{$store.address2|escape:'htmlall':'UTF-8'}{/if}<br />
{$store.postcode} {$store.city|escape:'htmlall':'UTF-8'}{if $store.state}, {$store.state}{/if}<br />
{$store.country|escape:'htmlall':'UTF-8'}<br />
{if $store.phone}{l s='Phone:' js=0} {$store.phone}{/if}
</p>
{if isset($store.working_hours)}{$store.working_hours}{/if}
</div>
{/foreach}
{/if}
{else}
<!-- Этот код вставьте на свою страницу -->
        <div id="YMapsID-xx" style="width:100%;height:XXpx">......

{/if}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Vasiy

Уже пробовал, просто заменой карты не обойтись.
Нужно полностью делать новый файл stores.tpl с помощью API yandex,
а для этого не хватает знаний, нужно быть программистом.
Кстати, кто хорошо разбирается в API maps?
Не боги горшки обжигают, не зачем им такой хренью заниматься.

Руслан Л

Я попробывал как написал mAgency. Получилось без проблем. Так что не нужно никаких API yandex.
1. Зашел в свой акк на яндексе
2. В конструкторе карт сделал карту
3. Скопировал карту и вставил в файл stores.tpl
5 минут и все работает.

Vasiy

А как Вы сделаете поиск по карте.
Не боги горшки обжигают, не зачем им такой хренью заниматься.

Руслан Л

Цитата: Kardan от 21 июня 2013, 02:31:28
подскажите, пожалуйста, где можно убрать "Введите местоположение", "Радиус действия:"... оставить только карту...
Не нужен никакой поиск. Автору нужно только карту яндекса на странице Наши магазины.

Vasiy

Возможно что на конкретный магазин это и не надо,
а если магазинов несколько сотен и в разных
странах то замучаешься искать.
Не боги горшки обжигают, не зачем им такой хренью заниматься.

Руслан Л

Цитата: Vasiy от 26 июня 2013, 20:35:53
Возможно что на конкретный магазин это и не надо,
а если магазинов несколько сотен и в разных
странах то замучаешься искать.
От Kardan был вопрос по замене карты google на карту yandex. mAgency предложил решение. У вас оно не работает почему-то. Я проверил, у меня работает.

По вашим вопросам:
1. Нет решения, которые устроило всех и было бы актуальнр во всех случаях. Поэтому решать нужно вопросы под "конкретный магазин". Все остальное, это теория,  суждение, гипотеза - обязательно должно сопровождается словами "Может быть...а может и не быть...".
2. Если будет "несколько сотен и в разных странах", то вопросы по prestashop отпадают. Под такие проекты не будут использовать prestashop.

Kardan

Спасибо за ответы.
Магазин действительно один и в поиске смысла нет...
сделал по рекомендациям mAgency: карта яндекса есть, но появилась следующая проблема-в левой колонке исчезают категории...
с файла убрал этот кусок кода:
   <script type="text/javascript">
// <![CDATA[
var map;
var markers = [];
var infoWindow;
var locationSelect;

var defaultLat = '{$defaultLat}';
var defaultLong = '{$defaultLong}';

var translation_1 = '{l s='No stores found, try selecting a wider radius' js=1}';
var translation_2 = '{l s='store found - see details:' js=1}';
var translation_3 = '{l s='stores found - see all results:' js=1}';
var translation_4 = '{l s='Phone:' js=1}';
var translation_5 = '{l s='Get Directions' js=1}';
var translation_6 = '{l s='Not found' js=1}';

var hasStoreIcon = '{$hasStoreIcon}';
var distance_unit = '{$distance_unit}';
var img_store_dir = '{$img_store_dir}';
var img_ps_dir = '{$img_ps_dir}';
var searchUrl = '{$searchUrl}';
var logo_store = '{$logo_store}';
//]]>
</script>
        <div><select id="locationSelect"><option></option></select></div>



после экспериментов над стандартным кодом оказалось:
1. Если убрать только <div><select id="locationSelect"><option></option></select></div> исчезают категории...
2. Если убрать только var defaultLat = '{$defaultLat}';      var defaultLong = '{$defaultLong}'; исчезает карта гугла и категории.
defaultLat и defaultLong, я так понимаю, координаты на карте... но не понятно почему, если их убрать,то категорий тоже не видно...
как можно "соединить" карту яндекса и рабочие категории?)
что бы отображались категории и нужная карта...


Kardan

#10
Если в момент, когда категорий нет, выбрать "исследовать элемент" и попробовать найти категории
то можно увидеть:
<ul class="tree dhtml" style="display: none;"><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li> ... </li><li class="last"> ... </li></ul>
сразу после этого идет(не знаю имеет отношение или нет... когда категории есть,  этот скрипт тоже находит) :
<script type="text/javascript">
     
// <![CDATA[
// we hide the tree only if JavaScript is activated
$('div#categories_block_left ul.dhtml').hide();
// ]]>

    </script>


coder

Категории едут только потому, что в коде есть не закрытые теги. Где-то не правильно вставил код.
Удали все из шаблона и вставь код карты. Вот примерно должен выглядеть шаблон
{if $simplifiedStoresDiplay}
{if $stores|@count}
<p>{l s='Here you can find our store locations. Please feel free to contact us:'}</p>
{foreach $stores as $store}
<div class="store-small grid_2">
{if $store.has_picture}<p><img src="{$img_store_dir}{$store.id_store}-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /></p>{/if}
<p>
<b>{$store.name|escape:'htmlall':'UTF-8'}</b><br />
{$store.address1|escape:'htmlall':'UTF-8'}<br />
{if $store.address2}{$store.address2|escape:'htmlall':'UTF-8'}{/if}<br />
{$store.postcode} {$store.city|escape:'htmlall':'UTF-8'}{if $store.state}, {$store.state}{/if}<br />
{$store.country|escape:'htmlall':'UTF-8'}<br />
{if $store.phone}{l s='Phone:' js=0} {$store.phone}{/if}
</p>
{if isset($store.working_hours)}{$store.working_hours}{/if}
</div>
{/foreach}
{/if}
{else}
<script type="text/javascript" charset="utf-8" src="//api-maps.yandex.ru/services/constructor/1.0/js/?sid=Твой ключ&width=400&height=450"></script>
{/if}

Kardan

Вот весь файл
{*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2012 PrestaShop SA
*  @version  Release: $Revision: 6594 $
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{capture name=path}{l s='Our stores'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}
<h1>{l s='Our stores'}</h1>
{if $simplifiedStoresDiplay}
{if $stores|@count}
<p>{l s='Here you can find our store locations. Please feel free to contact us:'}</p>
{foreach $stores as $store}
<div class="store-small grid_2">
{if $store.has_picture}<p><img src="{$img_store_dir}{$store.id_store}-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /></p>{/if}
<p>
<b>{$store.name|escape:'htmlall':'UTF-8'}</b><br />
{$store.address1|escape:'htmlall':'UTF-8'}<br />
{if $store.address2}{$store.address2|escape:'htmlall':'UTF-8'}{/if}<br />
{$store.postcode} {$store.city|escape:'htmlall':'UTF-8'}{if $store.state}, {$store.state}{/if}<br />
{$store.country|escape:'htmlall':'UTF-8'}<br />
{if $store.phone}{l s='Phone:' js=0} {$store.phone}{/if}
</p>
{if isset($store.working_hours)}{$store.working_hours}{/if}
</div>
{/foreach}
{/if}
{else}
       <div id="map" ><script type="text/javascript" charset="utf-8" src="//api-maps.yandex.ru/services/constructor/1.0/js/?sid=zBI6mC-UYF_keed-N4NM_Xr6jriJjxlf"></script></div>

{/if}

категорий не видно...

coder

Если карта google не нужна, то нужно удалить файл /themes/ваша тема/js/stores.js

Kardan

Как всегда все намного проще. Нет файла-нет проблем ))
увидел в файле
function doNothing() {}
выглядит немного забавно)
Переименовал файл - категории появились. Спасибо!