هذا - > جيتشيلدتمل على كتلة جديدة خارج ملف القالب

magento.stackexchange https://magento.stackexchange.com//questions/52143

  •  12-12-2019
  •  | 
  •  

سؤال

أود أن أتصل $this->getChildHtml('product_type_data') للحصول على سعر المنتج خارج العرض.ملف قالب فتمل.

حاليا لدي echo $this->getChildHtml('product_type_data') وأن إخراج محتويات ' كتالوج / المنتج / عرض / نوع / الافتراضي.فتمل'.

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

$block = Mage::app()->getLayout()->createBlock('customerprices/catalog_product_view', $this->getId());
$block->setTemplate('catalog/product/view/type/default.phtml');
$block->setIsLoggedIn(Mage::getSingleton('customer/session')->isLoggedIn());
$out = $block->getChildHtml('product_type_data');

ولكن في هذه الحالة out خارج يحتوي على سلسلة فارغة.هل أنا بحاجة إلى تعيين شيء على هذه الكتلة بحيث سيعود أتش تي أم أل السعر?إذا كان الأمر كذلك كيف?لدي كائن $ _ المنتج الحالي إذا كان ذلك مطلوبا.

وسأكون ممتنا أي اقتراحات.


باستخدام ماجى:: جيتبلوكسينجلتون (...)

عندما أستخدم هذا الرمز:

$thatx = Mage::getBlockSingleton('catalog/product_view');   
$cnamex = get_class($thatx);
echo 'cname: '.$cnamex;

nam كنامكس لا يحتوي على اسم الفئة (سلسلة فارغة / متغير).أنا نتيجة لا أستطيع تشغيل أي أساليب على ذلك.

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

المحلول

إذا كنت بحاجة فقط كتلة سعر المنتج ليتم تقديمها يمكنك استخدام مثل هذا:

$out=Mage::getBlockSingleton('catalog/product_view')->getPriceHtml($_product);

انظر getPriceHtml() طريقة Mage_Catalog_Block_Product_Abstract وهي فئة الوالدين من Mage_Catalog_Block_Product_View

الطريقة الثانية

تمديد كتلة الخاص بك customerprices/catalog_product_view من عند Mage_Catalog_Block_Product_Abstract واستخدامها:

class MyCompany_Customerprices_Catalog_Product_View extends Mage_Catalog_Block_Product_Abstract{

}

و

$block = Mage::app()->getLayout()->createBlock('customerprices/catalog_product_view', $this->getId());
$out=$block->getPriceHtml($_product);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top