Câu trả lời:
Thông thường, bạn không cần phải làm điều này. Mage::getStoreConfig()
sẽ tự động trả về giá trị cửa hàng, giá trị trang web, giá trị toàn cầu hoặc giá trị mặc định tùy thuộc vào cấu hình của trường.
Tuy nhiên, nếu bạn thực sự cần bỏ qua giá trị cửa hàng và nhận giá trị trang web, bạn có thể thực hiện theo cách này:
Mage::app()->getWebsite()->getConfig('.../.../...')
Đây là một trường hợp hiếm gặp, vì các cài đặt được kế thừa ở cấp độ cửa hàng và thường getStoreConfig()
đưa các cài đặt trang web vào tài khoản.
Bạn có thể sử dụng Mage_Core_Model_Website::getConfig()
- nhưng lưu ý rằng có một sự khác biệt nhỏ đối với việc Mage_Core_Model_Store::getConfig()
xử lý cũng đang được thực hiện (ví dụ thay thế {{...}}
) - loại thay thế này không được thực hiện ở cấp độ trang web.
Nếu giá trị chỉ có thể được thay đổi ở cấp trang web, một tùy chọn khác sẽ chỉ là lấy một số cửa hàng ngẫu nhiên của trang web và sau đó sử dụng getStoreConfig()
.
Điều này có thể được bắt nguồn bằng cách sử dụng mã trang web cụ thể nếu biết.
$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);
Mage::app()->getWebsites()
và mã từ trang web:$website->getCode()
Tôi có thể sai, nhưng theo tôi nhớ, phạm vi cấu hình luôn bị ràng buộc với các cửa hàng. Nếu bạn đặt một giá trị ở cấp độ trang web, nó sẽ có sẵn trên bất kỳ cửa hàng nào của trang web đó trừ khi bạn đặt một giá trị khác ở cấp độ cửa hàng.
Giả sử bạn có trang web A và cửa hàng A1 và A2 là cửa hàng cho trang web đó. Giả sử rằng A có giá trị 5 cho một thuộc tính nhất định
Sau đó Mage::getStoreConfig()
sẽ trả lại 5 cho thuộc tính đó cho cả A1 và A2. Nếu bạn đặt thuộc tính thành 3 cho A1, thì
Mage::getStoreConfig()
sẽ trả về 3 cho A1 và 5 cho A2 cho thuộc tính đó.
Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')