2012-03-02 31 views
12

Vì vậy, tôi đang cố gắng hiển thị tệp list.phtml tùy chỉnh từ bên trong một khối. thats fine tôi có thể hiển thị tất cả các sản phẩm có id danh mục 6.Cách lấy tên danh mục từ list.phtml trong Magento

{{block type="catalog/product_list" category_id="6" template="catalog/product/list.phtml"}} 

các công trình trên được sử dụng tốt. Nhưng bây giờ tôi muốn truy cập vào tên của id 6, làm thế nào tôi sẽ làm điều này từ bên trong list.phtml hoặc thậm chí từ bên trong một khối khác. tôi chỉ cần tên của danh mục cho id = 6.

Trả lời

38

Bên trong list.phtml khối mẫu mà bạn có thể có được tên loại với

<?php echo $this->getLayer()->getCurrentCategory()->getName() ?> 

Trong trường hợp này loại hiện tại được thiết lập trên lớp bởi catalog/product_list khối trong _getProductCollection() gọi.

Bên trong nội dung trang CMS không có cách nào tôi biết để truy cập trực tiếp vào tên danh mục.
Từ một khối khác có tên danh mục có thể có liên quan nhiều hơn. Bạn có thể thử

<?php echo Mage::getSingleton('catalog/layer')->getCurrentCategory()->getName() ?> 

Tất nhiên nó có thể là trường hợp đó không có loại hiện tại có thể đặt trên dụ lớp, do đó hãy chắc chắn kiểm tra cho rằng để tránh các lỗi xấu xí.
Về cơ bản, nếu phương pháp catalog/product_list khối danh sách sản phẩm của phương pháp _beforeToHtml() đã được thực thi, danh mục hiện tại sẽ được đặt trên lớp.

EDIT: Tất cả điều này giả định bạn muốn lấy tên danh mục mà không chỉ định lại ID danh mục. Nếu bạn không quan tâm đến điều đó, bạn luôn có thể nhận được tên danh mục với

<?php echo Mage::getModel('catalog/category')->load($this->getCategoryId())->getName() ?> 
+0

cả hai trang này đều không được xuất ra và làm cách nào để đặt lớp hiện tại? – molleman

+0

đây là lỗi Gọi hàm thành viên getName() trên một đối tượng không trong magento – molleman

+1

Lớp hiện tại trong sổ đăng ký được thiết lập bởi mô-đun tìm kiếm danh mục. Tôi đã cập nhật câu trả lời để sử dụng 'Mage :: getSingleton ('danh mục/lớp')' thay vào đó, và cũng đã thêm giải thích khi danh mục hiện tại được đặt trên cá thể lớp. – Vinai

Các vấn đề liên quan