Thay đổi phạm vi của một thuộc tính


8

Một phần mở rộng đã tạo ra một tab phụ trong menu danh mục của tôi. Với mã này:

$setup->addAttribute('catalog_category', 'menutopdescription1', array(
    'group'         => 'General',
    'input'         => 'textarea',
    'type'          => 'text',
    'label'         => 'Topmenu description',
    'backend'       => '',
    'visible'       => 1,
    'required'      => 0,
    'is_wysiwyg_enabled' => 1,
    'visible_on_front' => 1,
    'note'=>'Category description for top menu dropdown',
    'is_html_allowed_on_front' => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

Điều này dẫn đến một phạm vi toàn cầu. Bây giờ tôi muốn thay đổi nó thành "trang web". Vì vậy, tôi có thể dễ dàng dịch nó cho các trang web khác của tôi.

Thuộc tính này không hiển thị trong danh sách thuộc tính của Magento, vì vậy tôi phải thực hiện các thay đổi trong cơ sở dữ liệu. Tôi phải thay đổi chìa khóa nào?

Câu trả lời:


16

Tạo một kịch bản nâng cấp với mã này:

$setup->updateAttribute('catalog_category', 'menutopdescription1', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE);

$ setup là một phiên bản của Mage_Catalog_Model_Resource_Setup hoặc Mage_Eav_Model_Entity_Setup.

Nếu bạn muốn thay đổi db trực tiếp (tôi không khuyên bạn), bạn cần thay đổi trường is_globalthành 2từ bảng catalog_eav_attributecho bản ghi với id giống như thuộc tính của bạn có trong eav_attributebảng.


Bạn có thể thay thế 'catalog_category'bằngMage_Catalog_Model_Category::ENTITY
Dan

@Dan. Tôi sẽ Nếu tôi có thể nhưng tôi không muốn. : D. bây giờ nghiêm túc ... điều đó cũng sẽ làm việc cảm ơn
Marius

Đoạn trích trên không làm việc cho tôi. Thay vào đó, những gì tôi phải làm là:$installer->updateAttribute('Mage_Catalog_Model_Category::ENTITY', 'menutopdescription1', 'is_global', '0');
Louis B.

2
@LouisBataillard Tôi đã chỉnh sửa câu trả lời (chờ phê duyệt). 'toàn cầu' được sử dụng trong quá trình tạo thuộc tính, được truyền qua phương thức _prepareValues ​​(). Và được sửa đổi thành 'is_global'. Tại sao các nhà phát triển làm điều này tôi không biết (tôi thấy khó hiểu khi thay đổi cách chúng tôi tham chiếu điều tương tự). 'is_global' là "thuộc tính" của thuộc tính thực tế. Và đây là chìa khóa chúng tôi muốn tham khảo trong quá trình cập nhật các thuộc tính.
Darren Felton

Điều gì xảy ra nếu tôi phải thay đổi phạm vi sang trang web Globle instaed trong DB?
Ketan Borada
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.