Inicializando y actualizando vars utilizadas en un phtml.¿Cuál es la forma correcta?
-
12-12-2019 - |
Pregunta
Estoy implementando un formulario de cotización.Luego declaré un módulo en el que definí una plantilla phtml que contenía el formulario, la visualización del precio calculado y el script javascript/ajax.
También he definido un bloque:
<?php
class Mine_Quotemodule_Block_Quoteformblock extends Mage_Core_Block_Template
{
public function methodblock()
{
return 'informations de mon block !!';
}
}
?>
y un controlador
<?php
class Mine_Quotemodule_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
public function quoteAction()
{
echo 'test mamethode';
}
}
?>
Para poder mostrar y actualizar mi precio de cotización, necesito usar algunas variables.
Pensé en declararlos e inicializarlos en indexAction() (para mostrar el precio predeterminado) y actualizarlos en quoteAction(), que será llamado por mi script de formulario.
¿Es este el buen camino?
si se declara en indexAction, ¿cómo hacer referencia a ellos en quoteAction() y en phtml?
Gracias por su ayuda,
Alex
Solución
Las variables globales se establecen usando Mage::register('variable', $variable)
.Esta variable se puede llamar desde cualquier lugar y luego usar $_variable = Mage::registry('variable)
.
Si necesita una variable de sesión, puede usar:
Mage::getSingleton('core/session')->setMyVariable('value of variable');
Esta variable se puede llamar más tarde con:
$variable = Mage::getSingleton('core/session')->getMyVariable();
Yo diría que lo ideal es que la sesión y las variables globales estén configuradas en los controladores.Luego podrás llamarlos a cualquier lugar.
Para las variables utilizadas es la vista (.phtml), lo mejor es configurarlas en el bloque.Luego puedes llamarlos usando $this->getVariable().
private $_variable;
public function getVariable(){
return $_variable
}
public function setVariable(){
...logic...
}