Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 Карта Наших Магазинов в футере
CitizenDild0
Новичок
Сообщений: 74
Регистрация: 24-09-2010


18-05-2015 00:38
Здравствуйте, мне необходимо поместить карту из страницы Наши Магазины в футере. Т.е. чтобы она всегда отображалась в футере на любой странице.

Насколько я понял нужно как-то заставить StoreController.php выводить контент в футер, а не на страницу stores. Я не понимаю как это сделать, можете подсказать?

Пожалуйста, нужна помощь.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


18-05-2015 01:37
1. Откройте файл /themes/тема/footer.tpl и добавьте:
Код:
{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}

    <div id="map" style="width: 250px;height: 250px;"></div>
    <div class="store-content-select selector3">
        <select id="locationSelect" class="form-control">
            <option>-</option>
        </select>
    </div>


2. Откройте файл /classes/controller/FrontController.php и добавьте после:
Код:
$this->addJS(_THEME_JS_DIR_.'global.js');


Код:
$default_country = new Country((int)Configuration::get('PS_COUNTRY_DEFAULT'));
$this->addJS('http'.((Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')) ? 's' : '').'://maps.google.com/maps/api/js?sensor=true&amp;region='.substr($default_country->iso_code, 0, 2));
$this->addJS(_THEME_JS_DIR_.'stores.js');
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CitizenDild0
Новичок
Сообщений: 74
Регистрация: 24-09-2010


18-05-2015 21:27
Огромное спасибо за быстрый и продуктивный ответ. Я все сделал, но получил карту, указывающую в океан:
15cb239b127d82d6717e343dec5fb799.png - Размер файла46.48KB (Нажмите для увеличения)

Т.е. он не видит где магазины, и не показывает ни одного маркера. При этом адреса в админке забиты:
411589d7772eab0adb078c645356adcd.png - Размер файла44.72KB (Нажмите для увеличения)

Вот что выдает консоль:
80cd6b69d514045b53a1d22daed4fb4f.png - Размер файла109.86KB (Нажмите для увеличения)

Спасибо


Не используйте сторонние сервисы для размещения изображений (функционал данного форума позволяет прикладывать изображения к сообщению).


Сообщение отредактировал Алекс (08-09-2015 17:41)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CitizenDild0
Новичок
Сообщений: 74
Регистрация: 24-09-2010


18-05-2015 22:07
Окей, я добавил еще во FrontController.php после строк что вы написали это:

Код:
$this->context->smarty->assign('hasStoreIcon', file_exists(_PS_IMG_DIR_.Configuration::get('PS_STORES_ICON')));
            $this->context->smarty->assign(array(
                'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')),
                'defaultLat' => (float)Configuration::get('PS_STORES_CENTER_LAT'),
                'defaultLong' => (float)Configuration::get('PS_STORES_CENTER_LONG'),
                'searchUrl' => $this->context->link->getPageLink('stores'),
                'logo_store' => Configuration::get('PS_STORES_ICON')



Теперь все отображается окей, и маркеры магазинов в том числе. Спасибо огромное, Алекс, если дадите ваш пейпал, с удовольствием куплю вам пиво.
Единственное как это правильно сделать через override, чтобы не трогать движковый FrontController.php... Я закачиваю свой FrontController.php а override/classes/controller/FrontController.php, затем удаляю cache/class_index.html. Все работает, но у меня вопрос - в моем оверрайдном файле должен быть полный FrontController.php, или можно указать только функцию setMedia() ? Если можно, то какой писать class и какой extends?

Спасибо
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


19-05-2015 00:07
Цитата:( CitizenDild0 @ 18-05-2015 23:07 Смотреть сообщение )
в моем оверрайдном файле должен быть полный FrontController.php

Нет.

Цитата:( CitizenDild0 @ 18-05-2015 23:07 Смотреть сообщение )
можно указать только функцию setMedia() ?

Да.

Создайте файл /override/classes/controller/FrontController.php
В файл добавьте подобный код:
Код:
class FrontController extends FrontControllerCore
{
здесь полностью метод setMedia.
}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CitizenDild0
Новичок
Сообщений: 74
Регистрация: 24-09-2010


19-05-2015 01:40
Работает. Еще раз спасибо!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CitizenDild0
Новичок
Сообщений: 74
Регистрация: 24-09-2010


08-09-2015 16:20
Возникла проблема когда нажимаешь на квик-вью продукта, в консоли выдает ошибку stores.js видимо из-за того, что в квик вью он второй раз загружается.
6e9d93f52c23d513d90e9d937c351ff7.png - Размер файла84.88KB (Нажмите для увеличения)

это ведет к тому что половина js функций на странице квик вью не работает.


Не используйте сторонние сервисы для размещения изображений (функционал данного форума позволяет прикладывать изображения к сообщению).


Сообщение отредактировал Алекс (08-09-2015 17:42)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


08-09-2015 16:54
В шаблоне можно ограничить вывод:
Код:
{if empty($content_only)}
    здесь код
{/if}


В js:
Код:
if (typeof quickView !== 'undefined' && quickView)
    return;
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CitizenDild0
Новичок
Сообщений: 74
Регистрация: 24-09-2010


08-09-2015 17:15
Спасибо за ответ, но что-то не помогло. Может я неправильно понял, в шаблоне - это в footer.tpl я ставлю вокруг подключений и кода с картой. А в js - это в stores.js? я не совсем понял куда.
Спасибо
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


08-09-2015 17:48
Цитата:( CitizenDild0 @ 08-09-2015 18:15 Смотреть сообщение )
я не совсем понял куда.

Или в TPL или в JS.

Цитата:( CitizenDild0 @ 08-09-2015 18:15 Смотреть сообщение )
А в js - это в stores.js?

Верно.
Разместить код можно после:
Код:
$(document).ready(function(){
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >