تهيئة وتحديث المتغيرات المستخدمة في ملف phtml.ما هي الطريقة الصحيحة؟

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

سؤال

أقوم بتنفيذ نموذج الاقتباس.قمت بعد ذلك بالإعلان عن وحدة قمت فيها بتعريف قالب phtml يحتوي على النموذج وعرض السعر المحسوب والبرنامج النصي javascript/ajax.

لقد قمت أيضًا بتعريف كتلة:

<?php
class Mine_Quotemodule_Block_Quoteformblock extends Mage_Core_Block_Template
{
     public function methodblock()
     {
         return 'informations de mon block !!';
     }
}
?>

وجهاز تحكم

<?php
class Mine_Quotemodule_IndexController extends Mage_Core_Controller_Front_Action
{
   public function indexAction()
   {
        $this->loadLayout();
        $this->renderLayout();
   }

   public function quoteAction()
   {
     echo 'test mamethode';
    }
}
?>

لكي أتمكن من عرض سعر عرض الأسعار الخاص بي وتحديثه، أحتاج إلى استخدام بعض المتغيرات.

فكرت في الإعلان عنها وتهيئتها في IndexAction () (لعرض السعر الافتراضي) وتحديثها في quoteAction () والذي سيتم استدعاؤه بواسطة البرنامج النصي للنموذج الخاص بي.

هل هذه هي الطريقة الجيدة؟

إذا تم الإعلان عنها في IndexAction، فكيف يمكن الرجوع إليها في quoteAction () وفي ملف phtml؟

شكرا لك على مساعدتك،

أليكس

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

المحلول

يتم تعيين المتغيرات العالمية باستخدام Mage::register('variable', $variable).يمكن استدعاء هذا المتغير من أي مكان ثم باستخدام $_variable = Mage::registry('variable).

إذا كنت بحاجة إلى متغير جلسة، يمكنك استخدام:

Mage::getSingleton('core/session')->setMyVariable('value of variable');

يمكن استدعاء هذا المتغير لاحقًا باستخدام:

$variable = Mage::getSingleton('core/session')->getMyVariable();

أود أن أقول أنه من الناحية المثالية يتم تعيين متغيرات الجلسة والعالمية في وحدات التحكم.ويمكنك بعد ذلك الاتصال بهم في أي مكان.

بالنسبة للمتغيرات المستخدمة هو العرض (.phtml)، الأفضل هو وضعها في الكتلة.يمكنك بعد ذلك الاتصال بهم باستخدام $this->getVariable().

private $_variable;
public function getVariable(){
    return $_variable
} 
public function setVariable(){
    ...logic...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top