Автор Тема: Prestashop - карта yandex  (Прочитано 2076 раз)

25 Июнь 2013, 23:04:48
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
и еще вопрос...)
как сделать что бы в "наши магазины"показывало яндекс карту а не гугл?
26 Июнь 2013, 10:00:18
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102478
  • Репутация: +34218/-0
    • Просмотр профиля
Нужно заменить шаблон
/themes/default/stores.tplСоздайте свою карту  и вставьте код в новый шаблон.
26 Июнь 2013, 11:07:12
Ответ #2
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22260
  • Репутация: +17113/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Цитата: Виктор Демидов
Нужно заменить шаблон
/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 ?
Решение всех Ваших вопросов в создании Интернет-магазина.
26 Июнь 2013, 12:02:10
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 980
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Уже пробовал, просто заменой карты не обойтись.
Нужно полностью делать новый файл stores.tpl с помощью API yandex,
а для этого не хватает знаний, нужно быть программистом.
Кстати, кто хорошо разбирается в API maps?
Не боги горшки обжигают, не зачем им такой хренью заниматься.
26 Июнь 2013, 12:34:56
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +206/-0
    • Просмотр профиля
Я попробывал как написал mAgency. Получилось без проблем. Так что не нужно никаких API yandex.
1. Зашел в свой акк на яндексе
2. В конструкторе карт сделал карту
3. Скопировал карту и вставил в файл stores.tpl
5 минут и все работает.
26 Июнь 2013, 16:52:17
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 980
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
А как Вы сделаете поиск по карте.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
26 Июнь 2013, 18:37:42
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +206/-0
    • Просмотр профиля
подскажите, пожалуйста, где можно убрать "Введите местоположение", "Радиус действия:"... оставить только карту...
Не нужен никакой поиск. Автору нужно только карту яндекса на странице Наши магазины.
26 Июнь 2013, 20:35:53
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 980
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Возможно что на конкретный магазин это и не надо,
а если магазинов несколько сотен и в разных
странах то замучаешься искать.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
26 Июнь 2013, 20:56:12
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +206/-0
    • Просмотр профиля
Возможно что на конкретный магазин это и не надо,
а если магазинов несколько сотен и в разных
странах то замучаешься искать.
От Kardan был вопрос по замене карты google на карту yandex. mAgency предложил решение. У вас оно не работает почему-то. Я проверил, у меня работает.

По вашим вопросам:
1. Нет решения, которые устроило всех и было бы актуальнр во всех случаях. Поэтому решать нужно вопросы под "конкретный магазин". Все остальное, это теория,  суждение, гипотеза - обязательно должно сопровождается словами "Может быть...а может и не быть...".
2. Если будет "несколько сотен и в разных странах", то вопросы по prestashop отпадают. Под такие проекты не будут использовать prestashop.
26 Июнь 2013, 23:21:35
Ответ #9
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за ответы.
Магазин действительно один и в поиске смысла нет...
сделал по рекомендациям 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, я так понимаю, координаты на карте... но не понятно почему, если их убрать,то категорий тоже не видно...
как можно "соединить" карту яндекса и рабочие категории?)
что бы отображались категории и нужная карта...
 
27 Июнь 2013, 00:04:52
Ответ #10
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если в момент, когда категорий нет, выбрать "исследовать элемент" и попробовать найти категории
то можно увидеть:
<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>
27 Июнь 2013, 12:11:40
Ответ #11
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33043
  • Репутация: +26761/-0
    • Просмотр профиля
Категории едут только потому, что в коде есть не закрытые теги. Где-то не правильно вставил код.
Удали все из шаблона и вставь код карты. Вот примерно должен выглядеть шаблон
{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}
27 Июнь 2013, 22:54:55
Ответ #12
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот весь файл
{*
* 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}
категорий не видно...
28 Июнь 2013, 11:09:57
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33043
  • Репутация: +26761/-0
    • Просмотр профиля
Если карта google не нужна, то нужно удалить файл /themes/ваша тема/js/stores.js
28 Июнь 2013, 21:41:56
Ответ #14
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как всегда все намного проще. Нет файла-нет проблем ))
увидел в файле
function doNothing() {}
выглядит немного забавно)
Переименовал файл - категории появились. Спасибо!