Trong Magento tôi đang cố gắng lấy chủ đề hiện tại hoặc tên gói nhưng không tìm thấy bất kỳ thứ gì. Tôi sử dụng getSkinUrl (') nhưng nó trở lại con đường da không gói hoặc tên theme.please giúp tôi làm thế nào tôi có thể nhận được chủ đề hoặc tên gói.Cách lấy tên chủ đề hiện tại trong Magento
Trả lời
hiện trọn gói
Mage::getSingleton('core/design_package')->getPackageName()
Theme hiện tại (frontend)
Mage::getSingleton('core/design_package')->getTheme('frontend')
Kể từ
Mage::getSingleton('core/design_package')
là tương đương với
Mage::getDesign()
ví dụ Drew có thể được rút ngắn tới:
Mage::getDesign()->getPackageName()
và
Mage::getDesign()->getTheme('frontend')
đây cách khác:
$package = Mage::getStoreConfig('design/package/name');
$skin_name = Mage::getStoreConfig('design/theme/skin');
Xin lưu ý rằng câu trả lời ở trên bởi @Drew Hunter là không hoàn toàn chính xác. Trong khi getTheme()
là cuộc gọi hàm mong muốn, thì chuỗi 'giao diện' không phải là thông số được chấp nhận cho phương thức này. Các giá trị chỉ được phép cho phương pháp này là:
- locale
- bố trí
- mẫu
- mặc định
- da
Đó là để nói, việc sử dụng đúng chức năng này một trong các dòng sau:
Mage::getSingleton('core/design_package')->getTheme()
Mage::getSingleton('core/design_package')->getTheme('locale')
Mage::getSingleton('core/design_package')->getTheme('layout')
Mage::getSingleton('core/design_package')->getTheme('template')
Mage::getSingleton('core/design_package')->getTheme('default')
Mage::getSingleton('core/design_package')->getTheme('skin')
Không sử dụng phương pháp theo cách này sẽ luôn luôn trả về chuỗi 'mặc định'.
Kết quả bất ngờ
sử dụng không đúng sẽ tạo ra lỗi logic. Ví dụ về điều này là nếu bạn có 'Biểu thức phù hợp' được xác định để nhắm mục tiêu cụ thể đến thiết bị di động.
Mage::getSingleton('core/design_package')
tài liệu tham khảo lớp sau
Mage_Core_Model_Design_Package
Bằng cách nhìn vào 'getTheme()' phương thức trong lớp này, bạn sẽ thấy tùy chọn có thể bạn có thể vượt qua phương pháp này, họ là 'locale', 'bố trí ',' mẫu ',' mặc định 'và' da '.
Do đó, nếu một cửa hàng đặc biệt đã 'khớp Biểu hiện' cho 'mẫu' như sau
iPhone|iPod|Mobile|mobile > mobile
Sau đây có thể xảy ra
Mage::getSingleton('core/design_package')->getTheme('frontend') RETURNS 'default'
Mage::getSingleton('core/design_package')->getTheme('template') RETURNS 'mobile'
Wanted để thêm video này như bình luận, nhưng bạn có thể cũng lấy trực tiếp từ cơ sở dữ liệu với
SELECT * FROM core_config_data WHERE path="design/theme/skin";
SELECT * FROM core_config_data WHERE path="design/package/name";
Điều này có thể hữu ích hơn cho quản trị viên hơn sử dụng trực tiếp, bạn nên sử dụng các chức năng của Magento nếu bạn đang thiết kế một mẫu hoặc mã hóa trong Magento.
Cảm ơn nó hoạt động tốt – shashank
Giống như @ peter-a chỉ ra trong câu trả lời của mình, 'lối vào' không phải là một trong các tùy chọn có thể cho 'getTheme()'. Sử dụng 'ngôn ngữ', 'bố cục', 'mẫu', 'mặc định' hoặc 'da'. Nếu không 'getTheme()' sẽ luôn trả về 'mặc định'. –