Magento: заголовки для некоторых категорий, но не для всех

#magento

#magento

Вопрос:

Мне нужно иметь теги заголовков для определенных категорий, но не для всех. Они отображаются по умолчанию, поэтому то, что я сделал до сих пор, — это создать новый файл view.phtml в app /design / frontend/default/my_theme/template/ catalog / category и прокомментировать раздел, создающий заголовок, который работает нормально. Следующим этапом будет включение заголовка для некоторых категорий. Я сделал это, добавив его вручную в описание категории, что нормально, но затем мне пришла идея, возможно, создать блок cms и использовать его для этого. Для этого должен быть тег разметки или что-то еще для отображения текущей категории, которую я мог бы поместить в статический блок. Есть ли ?.. или есть какой-либо другой способ сделать это?

(Я включил предысторию, потому что, возможно, это неправильный способ полностью отключить заголовок на страницах категорий.)

Ответ №1:

вы можете сделать это с помощью

 <layout>
     <your_target_handler>
           <reference name="head">
                <action method="setTitle"><title>Your title</title></action>
           </reference>
     </your_target_handler>
</layout>
  

или сделайте это через php

 $this->getLayout()->getBlock('head')->setTitle('my title');
  

или

 Mage::app()->getLayout()->getBlock('head')->setTitle('my title');
  

Комментарии:

1. извините, может быть, я не понимаю или, может быть, я не прояснил это в вопросе, но весь смысл в том, чтобы заголовок был динамичным

2. большое спасибо — похоже, это сработает — я отключаюсь от этого проекта на несколько дней, но попробую позже

Ответ №2:

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

Я использовал следующий код для добавления дополнительных атрибутов (textarea) к категориям в Mage 1.5.0:

 /* ADD ATTRIBUTES TO MAGENTO BACKEND FOR CATEGORIES 
 * Adding the type
 */
INSERT INTO eav_attribute (entity_type_id, attribute_code, backend_type, frontend_input, frontend_label, default_value, source_model) 
VALUES (9, 'category_from_data', 'text', 'textarea', 'From pricing text', '', '');

/*
 * Source Q:
 * INSERT INTO eav_entity_attribute ( entity_type_id, attribute_set_id, attribute_group_id, attribute_id, sort_order ) VALUES ( 3, 3, 3, <new attribute ID>, <next sort order> );
 * Works but entity_type_id should be 9 for category
 */
INSERT INTO eav_entity_attribute ( entity_type_id, attribute_set_id, attribute_group_id, attribute_id, sort_order ) VALUES ( 9, 12, 7, 9, 25 );

/* 
 * Adding the attribute itself
 */
INSERT INTO `catalog_eav_attribute` (`attribute_id`, `frontend_input_renderer`, `is_global`, `is_visible`, `is_searchable`, `is_filterable`, `is_comparable`, `is_visible_on_front`, `is_html_allowed_on_front`, `is_used_for_price_rules`, `is_filterable_in_search`, `used_in_product_listing`, `used_for_sort_by`, `is_configurable`, `apply_to`, `is_visible_in_advanced_search`, `position`, `is_wysiwyg_enabled`) VALUES
(977, NULL, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, '', 0, 0, 1);
  

Возможно, вы захотите проверить саму базу данных и выяснить, какой entity_type_id 9 содержится в eav_entity_attribute и какой идентификатор вставки в eav_attribute после 1-го запроса.

Для добавления атрибута checkbox я предлагаю вам проверить таблицы и найти существующий атрибут и соответствующим образом настроить параметры в запросе.

Надеюсь, это поможет 😉

Комментарии:

1. похоже, это сработает, спасибо — я новичок в magento — я знаю, где настроить атрибуты продукта, но где мне установить атрибуты категории?

2. @buronyasgur Я добавил SQL, который выполнил эту работу за меня. Посмотрите, поможет ли это вам или, по крайней мере, укажет правильное направление…