Nhận giá trị cấu hình cho phạm vi trang web


21

Làm cách nào tôi có thể nhận được giá trị cấu hình cho một trang web cụ thể?

Mage::getStoreConfig()nhưng không có Mage::getWebsiteConfig().

chỉnh sửa :

Tôi đang xuất dữ liệu cấu hình ở cấp trang web - vì vậy bằng cách nào đó tôi muốn cài đặt phạm vi trang web ...

Câu trả lời:


16

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('.../.../...')

1
Đừng quên thêm trang webId. tức là <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo

8

Đâ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().


6

Đ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]);

Điều này nên được đánh dấu là câu trả lời chính xác. Bạn có thể lấy các trang web từ Mage::app()->getWebsites()và mã từ trang web:$website->getCode()
Michael

Thứ tốt @benmark. Tôi đồng ý, điều này nên được đánh dấu là câu trả lời đúng. Tôi biết rằng không phổ biến để có được giá trị cấu hình theo trang web nhưng trong một số trường hợp, đó là .. ví dụ, tôi cần phải làm điều này khi chạy xuất khẩu sản phẩm theo trang web trong một nhiệm vụ công việc định kỳ.
Eduardo

2

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 đó.


Bạn hoàn toàn đúng - nhưng: Tôi đang xuất dữ liệu cấu hình ở cấp trang web - vì vậy bằng cách nào đó tôi muốn cài đặt phạm vi trang web ... Tôi biết đây là trường hợp khá hiếm.
Alex

@Alex Có lẽ bạn cũng nên đề cập đến điều đó trong câu hỏi của mình;)
mpaepper 14/213
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.