Ürün Düzenleme Arka Planındaki Öznitelikleri ve Diğer Alanları Gizle


10

Mağaza sahibi için ürünlerin (ve belki de kategorilerin) düzenlenmesini kolaylaştırmak için, yönetici arka ucundaki bazı kullanıcılardan bazı gereksiz sekmeleri ve alanları gizlemek istiyoruz.

Bu şu anlama gelir: Bazı özellikleri gizlemekle kalmaz, aynı zamanda "müşteri yorumları", "çapraz satış" vb.

Bu nasıl yapılabilir?

Yanıtlar:


10

Set is_visibleiçin 0özellik hakkında ve yönetici formları (ürün sayfası ve ayrıca nitelik yönetimi sayfası) içinde görünmez.

Bunu bir SQL aracıyla veya bir kurulum komut dosyasında programlı olarak yapabilirsiniz:

$installer->updateAttribute('catalog_product', $attribute_code, 'is_visible', '0');

Boş sekmelerin otomatik olarak yok olup olmayacağını biliyor musunuz? Ve bu özellikleri yöneticiler için geçici olarak görünür yapmanın bir yolu var mı? Her neyse - bu, bir modül için kullanıcı bazında görünür olmasını sağlayan iyi bir başlangıç ​​noktası olacaktır.
Alex

1
Sen genişletmek olabilir bu - ve karar vermek için kendi EKL'lerinde kim koydu could / yapamadı Düzenlemenizin
Ben Lessani - Sonassi

Ben sadece özelliklerinden çok daha fazla şey olduğunu fark ettim :-) Bunu daha açık hale getirmek için sorumun başlığını düzenledi.
Alex

Bence sekmeler boşsa kaybolur. Onları göstermek için, istekten önce göstermek için iki gözlemci ekleyin ve sonra gizleyin? Şu an sahip olduğum en iyi fikir. Ve iki kişi dükkanda paralel olduğunda başarısız olmaz. Alternatif: toplama sorgusunu gözlemleyin ve değiştirin. ama o zaman sanırım çok şey
yapacaksın

Aslında kaybolmuyorlar - ve özniteliklerle ilgili olmayan sekmelerden bahsediyorum (çapraz satış vb.)
Alex

8

Bu olayları core_block_abstract_prepare_layout_before(yöntem removeAttributes()) ve core_block_abstract_prepare_layout_after(yöntemi removeTabs()) gözlemleyerek mümkündür .

açıklama : Ben her özellik / sekme için belirli kullanıcılardan gizlenebilir böylece ACL girişleri ekleyen bir modüle koyuyorum.

Gözlemcilerde, blokta olduğumuzu Mage_Adminhtml_Block_Catalog_Product_Edit_Tabsve sekmeleri veya nitelikleri kaldırabileceğimizi kontrol etmeliyiz .

/**
 * Overwrite the cache field in the product to remove disabled attributes
 *
 * event: core_block_abstract_prepare_layout_before
 *
 * @param Varien_Event_Observer $event
 */
public function removeAttributes(Varien_Event_Observer $event)
{
    $block = $event->getBlock();
    if (!$block instanceof Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs) {
        return;
    }

    $editableAttributes = $block->getProduct()->getTypeInstance()->getEditableAttributes();
    $adminSession = Mage::getSingleton('admin/session');


    // TODO: remove attribute to hide from the $editableAttributes array

   $block->getProduct()->setData('_cache_editable_attributes', $editableAttributes);
}

/**
 * Remove hidden tabs from product edit
 * event: core_block_abstract_prepare_layout_after
 *
 * @param Varien_Event_Observer $event
 */
public function removeTabs(Varien_Event_Observer $event)
{
    $block = $event->getBlock();
    if (!$block instanceof Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs) {
        return;
    }

    // TODO / Example: remove inventory tab
    $block->removeTab('inventory'); 

    // fix tab selection, as we might have removed the active tab
    $tabs = $block->getTabsIds();

    if (count($tabs) == 0) {
        $block->setActiveTab(null);
    } else {
        $block->setActiveTab($tabs[0]);
    }
}

ACL kurulum modülü ile hiç bir yere gittiniz mi? Yaşadığım sorun yüzlerce öznitelik setim var. Bu şu anda nasıl uygulanacak yüzlerce 'Gruplar' Sekmesi de olurdu.
Anthony Cicchelli

evet bir projemizde çalışıyor
Alex

GIT'iniz var mı? Sadece aynı proje üzerinde çalışıyoruz. Sadece farklı stratejiler görüyorum. Değilse, ne zaman bittiğimi size bildireceğim, çünkü yakında olması gerektiği gibi.
Anthony Cicchelli

Buna izin vermek için bir uzantı oluşturduk. Ayrıca Aitoc İzin Modülü'nün tüm işlevlerini de kullanır. Böylece her ikisinin de harika bir kombinasyonunu elde edersiniz.
Anthony Cicchelli

Oh ilginç. Yine de Aitoc'u sevmiyorum ... modülünüzü yayınlıyor musunuz? Bizimki henüz yayınlanmadı, ...
Alex

0

Sekmeleri gizlemenin nispeten kolay bir yolu, yalnızca yeni bir Yönetici kullanıcı oluşturmak ve yalnızca Mağaza Sahibinin kullanacağı alanlara erişim vermektir. Sizi veya başka bir geliştiriciyi değişiklik yapma yeteneğini bırakarak, mağaza sahibi için işleri basit tutacaktır.


Elbette - bu, genel alanlar (menü girişleri vb.) İçin çalışır, ancak ürün düzenleme ekranındaki çok az sayıda sekme için geçerlidir (incelemeler bu şekilde devre dışı bırakılabilir). Tek özellikler devre dışı bırakılamaz.
Alex

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.