سؤال

أقوم بإنشاء وحدة لإضافة بعض أزرار الحث على اتخاذ إجراء إضافية.لا أستطيع الحصول على الإخراج لعرضه.أعتقد أنني أخطأت في اصطلاحات التسمية أو موقع الملف (أو كليهما).

قد تكون هذه أيضًا هي الطريقة التي أحاول بها إدخال الكتلة.لا أريد تعديل ملفات phtml إذا كان بإمكاني تجنب ذلك.

كما ترون من ملفاتي، أحاول عدة طرق للحصول على أي شئ ليكون الإخراج - مع عدم وجود حظ.

الهدف هو أن تكون قادرًا على إضافة أزرار CTA إضافية بعد الإضافة إلى سلة التسوق - مثل "طلب العينات"

هيكل الملف:

app
    Code
        local
            CompanyName
                CtaAttributes
                    Block -> CtaButtons.php
                    etc -> config.xml
    design
        frontend
            base
                default
                    layout->ctabuttons.xml
                    template
                        ctaattributes
                            catelog
                               product ->ctabuttons.phtml

config.xml

<config>

    ... includes Module and Resource

    <global>
      <blocks>
        <ctaattributes>
            <class>CompanyName_CtaAttributes_Block</class>
        </ctaattributes>
      </blocks>
    </global>

</config>

CtaButtons.xml

<?xml version="1.0"?>

<layout version="0.1.0">
    <catalog_product_view>    
        <reference name="content">

                <block type="core/text_list" name="product.info.addtocart" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
                <action method="append">
                        <block>ctabuttons</block>
                </action>
        </reference>

        <reference name="product.info.addtocart">
            <block type="core/text_list" name="core-text"><action method="setText"><text><![CDATA[<div>Test</div>]]></text></action></block>
        </reference>
    </catalog_product_view>    
</layout>

ctabuttons.phtml

<?php
/**
*/
Mage::log(get_class($this));
echo 'this is my test';

CtaButtons.php

<?php

class CompanyName_CtaAttributes_Block_CtaButtons extends Mage_Core_Block_Template  {
    echo 'test';

}
هل كانت مفيدة؟

المحلول 4

لقد وجدت الحل - وهو في جزأين.

  1. لم أحدد مسارًا للواجهة الأمامية->التحديث لتحديث التخطيط الخاص بي.لقد أدخلت هذا بعد </global>

      <frontend>
        <layout>
            <updates>
                <ctaattributes>
                    <file>ctaattributes.xml</file>
                </ctaattributes>
            </updates>
        </layout>  
    </frontend>
    

لو استخدمت local.xml، لا أعتقد أن هذا سيكون مطلوبًا، ولكن في الاختبار الذي أجريته، اعتقدت أنني سأغير اسم الملف لإبقائه منفصلاً.

  1. لا يمكنك استخدام حالة الجمل في اسم فئة الكتلة

في الأصل كان صفي CompanyName_CtaAttributes_Block_CtaButtons - مع الملف المقابل يسمى CtaButtons.php.
تغيير الاسم الى CompanyName_CtaAttributes_Block_Ctabuttons و Ctabuttons.php لقد حل المشكلة.

لا أعرف ما إذا كان ملف Class الموجود في Block/Blockname.php أو ملف التخطيط xml هو الذي به مشكلة.

لقد اختبرت ذلك باستخدام CamelCase في اسم الشركة والوحدة النمطية دون أي تأثير، ويبدو أنها تقتصر على فئة وملف Blockname.

نصائح أخرى

    يجب أن يكون
  • the /blocks/ctabuttons.xml في بنية ملفك ملف.
  • لا أرى ملف الوحدة النمطية التي يجب أن تكون في / التطبيق / الخ / الوحدات النمطية
  • يجب أن يكون لديك إصدار وحدة في config.xml

إذا كنت تستخدم أحدث التصحيح، يجب أيضا السماح بالكتل الخاصة بك في النظام-> إذن-> كتلة

مرحبا تحتاج إلى تحديد نوع الكتلة أولا

من

giveacodicetagpre.

إلى

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top