การตั้งค่าวิดเจ็ต Magento 1 ในแบ็กเอนด์ - ฉันจะเลื่อนขึ้นไปได้อย่างไร


11

ฉันมีการตั้งค่าวิดเจ็ตในหน้าหมวดหมู่ทั้งหมดผ่านแบ็กเอนด์ -> CMS -> วิดเจ็ต

ตอนนี้เมื่อฉันใช้วิธีนี้ฉันเลือกบล็อกสำหรับหน้าหมวดหมู่และบล็อกแสดงขึ้นเป็นอย่างดี มันอยู่ที่ด้านล่างของข้อมูลอื่น ๆ ทั้งหมดในคอลัมน์ด้านซ้าย

แต่ฉันจะย้ายบล็อกขึ้นไปด้านบนได้อย่างไร (เหนือชั้น ฯลฯ ) ...

ทางเลือกคือการใช้งานlocal.xmlที่ฉันไม่ชอบ + มันก็จะปรากฏบนเว็บไซต์ของฉันทั้งหมดที่ใช้ชุดรูปแบบเดียวกัน


3
อาจลองใช้custom layout updatesฟิลด์ในหมวดหมู่เพื่อเพิ่มบล็อกและใช้before=""หรือafter=""เพื่อวางตำแหน่ง
Rick Kuipers

คำตอบ:


12

ปัญหาคือ Magento ไม่มีที่เก็บวิดเจ็ตที่ด้านบนของคอลัมน์ด้านซ้าย คุณสามารถสร้างคอนเทนเนอร์ดังกล่าวได้ในสองขั้นตอน:

  1. สร้างคอนเทนเนอร์บล็อกวิดเจ็ตของคุณในไฟล์local.xml :

    <layout>
       <!-- category pages with layered navigation -->
       <catalog_category_layered>
            <update handle="custom_top_container" />
       </catalog_category_layered>
       <!-- category pages without layered navigation -->
       <catalog_category_default>
            <update handle="custom_top_container" />
       </catalog_category_default>
       <!-- custom block container on that page -->
       <custom_top_container>
            <reference name="left">
               <block name="left_top" type="core/text_list" before="-" translate="label">
                    <label>Left Column Top</label>
               </block>
            <reference>
       </custom_top_container>
    </layout>

    ในตัวอย่างต่อไปนี้catalog_category_defaultและcatalog_category_layeredจะจับสำหรับหน้าหมวดหมู่และcustom_top_containerจับรวมอยู่ในหน้าเหล่านี้โดยการปรับปรุงการเรียนการสอนรูปแบบ บล็อกleft_topใหม่เป็นประเภทของMage_Core_Block_Text_Listซึ่งแสดงเอาต์พุตที่ต่อกันของบล็อกย่อยที่กำหนดให้กับบล็อกดังนั้นมันจะว่างเปล่าหากไม่มีวิดเจ็ตถูกเพิ่มเข้าไป ตอนนี้เมื่อโครงร่างพร้อมที่จะกำหนดค่าวิดเจ็ตให้ตรวจสอบขั้นตอนถัดไป

  2. สร้างไฟล์widget.xmlในไดเร็กทอรีetcของธีมของคุณ (หากคุณไม่ต้องการเก็บการกำหนดค่านี้จากธีมที่คุณกำลังขยายคุณต้องคัดลอกจากธีมนั้นไปยังของคุณ) widget.xml นี้ควรมีข้อมูลเพิ่มเติมเพื่อให้วีโอไอพีทราบว่าวิดเจ็ตใดที่รองรับคอนเทนเนอร์ที่คุณสร้างขึ้นใหม่:

    <widgets>
        <[widget_id]>
            <supported_blocks>
                <left_column_top>
                    <block_name>left_top</block_name>
                </left_column_top>
             </supported_blocks>
        </[widget_id]>
    </widgets>

    ไฟล์การกำหนดค่านี้ช่วยให้ Magento รู้ว่าสามารถใช้บล็อกใดในการดึงข้อมูลคอนเทนเนอร์ที่เป็นไปได้ในแผงควบคุมของผู้ดูแลระบบ

แสดงว่าคุณสามารถไปที่แผงควบคุมแล้วเลือกคอนเทนเนอร์ด้านบนคอลัมน์ซ้ายเพื่ออัปเดตโครงร่างวิดเจ็ต


ขอบคุณอิวาน และ myabe วิธีที่ดีที่สุด - ถ้าเรากำลังแก้ไข local.xml ยังไงก็ตาม - คือการเรียกบล็อก CMS (ภาพเล็ก ๆ ที่มีไว้สำหรับด้านซ้ายบน)
snh_nl

2

คุณสามารถลองโทรในบล็อกนั้นโดยใช้

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('BLOCK_ID_HERE')->toHtml() ?>

ใส่รหัสข้างต้นลงใน:

ส่วนหน้า / default / YOURTHEME / แม่แบบ / แคตตาล็อก / นำทาง / sidebar.phtml

เหนือรหัสที่แสดงเมนูแคตตาล็อก

หากต้องการป้องกันไม่ให้แสดงในเว็บไซต์ต่าง ๆ ให้ใช้ธีมที่แตกต่างกันในแต่ละเว็บไซต์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.