Как я могу добавить разные блоки в нижний колонтитул для каждого хранилища в Magento

#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(); ?>
 
  1. Перейдите в cms / static blocks и создайте блок с идентификатором footer_contact_id.
    Установите storeview для вашего ПЕРВОГО хранилища и введите информацию.

2. Скопируйте блок с тем же идентификатором, чтобы установить storeview для вашего ВТОРОГО хранилища. и изменить часть информации.

3. Теперь проверьте хранилища 🙂