Magento'da bir web sitesi altındaki mağaza gruplarının listesini ve daha sonra bu mağaza grubundaki mağazaların listesini nasıl edinebilirim?Magento mağazalarının bir listesini alma
cevap
üzerinde belirli bir web sitesinin gerekli kapsamını almak için nesneleri doğrudan
Mage::app()->getWebsites(); < in file > app/code/core/Mage/Core/Model/App.php:920
Mage::app()->getStores(); < in file > app/code/core/Mage/Core/Model/App.php:834
yinelerler almak için deneyin ya da benzer sorular varsa burada ben nasıl keşfettik Gelecek için
foreach (Mage::app()->getWebsites() as $website) {
foreach ($website->getGroups() as $group) {
$stores = $group->getStores();
foreach ($stores as $store) {
//$store is a store object
}
}
}
saklamak Bu cevaplar 60 saniye içinde. yöntem
grep ' getStores' app/code -rsn
grep ' getWebsites' app/code -rsn
İkinci adım kullanım numuneler çekirdek geliştirici olarak kullanmak içindir görmek için grep tanımlandığı gibidir burada Ana ı görmek için yöntem adı önce yöntem adları veya boşluk ile benzer bir yöntem adları için yazılması. Doğru ise, yeniden icat olabilir,
grep '>getWebsites' app/code -rsn
Anton'ın cevap: Bunun için ben methodName grep> ekleyin ve bu beni bu yöntemi denir ve dosyaların listesini verir bu bize örnekler aramaya yerleştirmek verecek tekerleği biraz. Bu tür verileri almak için Magento Core'da zaten bir tesis var.
: listeye filtre Ayrıca, işlevine websiteIds, StoreIDs veya storeGroupIds bir dizi geçebilir Mage::getSingleton('adminhtml/system_store')->getStoresStructure()
: Bu kullanarak
Tüm web sitelerinin listesini alabilir ve onların "çocuklar" public function getStoresStructure($isAll = false, $storeIds = array(), $groupIds = array(), $websiteIds = array())
Örnek çıkışı:
Array
(
[1] => Array
(
[value] => 1
[label] => Main Website
[children] => Array
(
[1] => Array
(
[value] => 1
[label] => Madison Island
[children] => Array
(
[1] => Array
(
[value] => 1
[label] => English
)
[2] => Array
(
[value] => 2
[label] => French
)
[3] => Array
(
[value] => 3
[label] => German
)
)
)
)
)
)
var "Mağaza Kapsam" açılır listeleri doldurmak için kullanılan benzer bir tanesidir ve genelinde tüm çoklu seçer yönetici bölümü.
Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true)
Array
(
[0] => Array
(
[label] => All Store Views
[value] => 0
)
[1] => Array
(
[label] => Main Website
[value] => Array
(
)
)
[2] => Array
(
[label] => Madison Island
[value] => Array
(
[0] => Array
(
[label] => English
[value] => 1
)
[1] => Array
(
[label] => French
[value] => 2
)
[2] => Array
(
[label] => German
[value] => 3
)
)
)
)
bu keşfetmek için, ben şablon blok sınıfı bunu render sorumlu olduğu öğrenmek için ipuçları üzerinde istediğim verilere sahip Yönetici üzerinde çoklu seçim, sonra döndü bulunduğu: Mage_Adminhtml_Block_Cms_Page_Edit_Form
. Bunu bildiğimde, sınıfı codebase'de (app/code/core/Mage/Adminhtml/Block/Cms/Block/Edit/Form.php) buldum ve etiketini arayarak girdi oluşturan parçayı buldum ("Mağaza" Görünüm").
$field =$fieldset->addField('store_id', 'multiselect', array(
'name' => 'stores[]',
'label' => Mage::helper('cms')->__('Store View'),
'title' => Mage::helper('cms')->__('Store View'),
'required' => true,
'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
));
Mage::getSingleton('adminhtml/system_store')
noktaları aynı zamanda yararlı olabilir benzer çeşitli yöntemler bulunan sınıf Mage_Adminhtml_Model_System_Store
için: Bu giriş değerleri temin edilmiştir nasıl gösterdi. Have a look for yourself.
'değerler' => Mage :: getSingleton ('adminhtml/system_store') -> getStoreValuesForForm (false, true), bir tedavi çalıştı! – BENN1TH
Çok teşekkür ederim. Bu çok yardımcı oldu! – Blazo
onu oylayın ve sorununuzu çözdüyse başkaları için ileride referans kabul edin –
Evet sorunumu çözdüm. Tekrar teşekkürler, ve nasıl oy vermeliyim, – Blazo