#magento #magento-1.7 #magento-1.4 #magento-1.8 #magento-1.6
#magento #magento-1.7 #magento-1.4 #magento-1.8 #magento-1.6
Вопрос:
Привет, я новичок в magento.Я хочу добавить разные блоки в нижний колонтитул для каждого магазина. Например, я создал блок CMS для добавления номера телефона в нижний колонтитул и добавил этот блок в local.xml и блок cms с номером телефона отображается в нижнем колонтитуле, но моя проблема в том, что у меня несколько магазинов, и я хочу добавить разные номера телефонов в зависимости от магазина.
Как я могу это сделать.Есть ли какой-нибудь способ использовать другой блок для другого магазина в нижнем колонтитуле из раздела администратора? Любая помощь будет оценена по достоинству.
Ответ №1:
Вместо создания статического блока для отображения номера телефона,
вы можете получить номер телефона магазина из конфигурации системы (панель администратора).
Система> Конфигурация> Общие> Информация о хранилище
В этом вы можете указать номер телефона для каждого магазина
И вы можете получить номер телефона с помощью следующего кода
Mage::getStoreConfig('general/store_information/phone');
Получите значение на странице CMS
{{config path="general/store_information/phone"}}
Комментарии:
1. Спасибо за помощь. Я только что привел пример добавления телефонного блока, но мне нужно добавить разные блоки для разных магазинов, например, блок «Свяжитесь с нами» будет отличаться для каждого магазина
Ответ №2:
Вы можете изменить ответ Джерарда следующим образом:
Отредактируйте нижний колонтитул и добавьте следующий код:
$store = Mage::app()->getStore()->getStoreId();
OR
$store = Mage::app()->getStore()->getCode();
в зависимости от того, что вам удобнее, а затем использовать:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_'.$store)->toHtml(); ?>
Теперь создайте статические блоки для каждого хранилища. просто используйте идентификатор для них как footer_1
, footer_2
, footer_3
где 1,2,3
находятся store ids
. И если вы предпочитаете использовать код хранилища, используйте footer_storecode1
, footer_store2
, footer_store3
.
Таким образом, вам не нужно каждый раз редактировать код, но обратите внимание, что затем вам нужно создавать блоки для каждого хранилища.
Ответ №3:
Проверьте файл шаблона нижнего колонтитула, в который добавлен пользовательский блок. Это должно выглядеть так:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_contact_id')->toHtml(); ?>
Измените это на:
<?php
$storeCode = Mage::app()->getStore()->getCode();
if ($storeCode == 'store1') {
$footer_contact_id = 'footer_contact_store1';
}
elseif ($storeCode == 'store2') {
$footer_contact_id = 'footer_contact_store2';
}
echo $this->getLayout()->createBlock('cms/block')->setBlockId($footer_contact_id)->toHtml();
?>
Вы можете проверить коды хранилища в бэкэнде : system -> manage stores
.
Комментарии:
1. Если я создаю одно новое хранилище и два уже созданных хранилища, мне нужно снова изменить код для добавления блока для третьего хранилища. Есть ли какой-либо способ, которым я могу установить блоки в нижнем колонтитуле от администратора на основе конкретного хранилища.
2. Вы не можете устанавливать блоки cms в зависимости от вида хранилища в бэкэнде Magento. Вам придется сделать это программно.
3. Используйте файл шаблона (вместо статического блока), который извлекает контактную информацию на основе представления хранилища.
Ответ №4:
Если это ваш код шаблона:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_contact_id')->toHtml(); ?>
- Перейдите в cms / static blocks и создайте блок с идентификатором footer_contact_id.
Установите storeview для вашего ПЕРВОГО хранилища и введите информацию.
2. Скопируйте блок с тем же идентификатором, чтобы установить storeview для вашего ВТОРОГО хранилища. и изменить часть информации.
3. Теперь проверьте хранилища 🙂