Supongamos que necesitamos armar un formulario de contacto adicional al que ya provee Magento. Supongamos también que necesitamos utilizar datos de la plataforma.
En éste ejemplo vamos a ver cómo invocar las provincias/regiones en nuestro formulario.
La porción de código referente al dropdown que mostrará las regiones se vería, pensando en el skin default, de la siguiente manera:
<div class="input-box">
<label for="state">< ?php echo Mage::helper('customcontacts')->__('State') ?> <span class="required">*</span></label><br />
< ?php $_regions = Mage::getModel('directory/region')->getCollection();?>
<select name="state" id="state" class="required-entry validate-select">
<option value="">< ?php echo Mage::helper('customcontacts')->__('Select State') ?></option>
< ?php foreach($_regions as $_region): ?>
<option value="<?php echo $_region->getName(); ?>">< ?php echo $_region->getName(); ?></option>
< ?php endforeach; ?>
</select>
</div>
El resultado de éste código seria el siguiente.
Ahora bien, no buscamos todas las provincias, estados o regiones que tenemos disponibles, sino que vamos a filtrar según un país dado.
En el ejemplo, previo instalación de la extensión Dc_Argentineregions, vamos a buscar obtener sólo las provincias de Argentina.
Para esto, tenemos que hacer un pequeño cambio a nuestro código.
<div class="input-box">
<label for="state"><?php echo Mage::helper('customcontacts')->__('State') ?> <span class="required">*</span></label><br />
<?php $_regions = Mage::getModel('directory/region')->getResourceCollection()->addCountryFilter('AR')->load();?>
<select name="state" id="state" class="required-entry validate-select">
<option value=""><?php echo Mage::helper('customcontacts')->__('Select State') ?></option>
<?php foreach($_regions as $_region): ?>
<option value="<?php echo $_region->getName(); ?>"><?php echo $_region->getName(); ?></option>
<?php endforeach; ?>
</select>
</div>
Y el resultado será el siguiente:
Lo que hicimos fue cambiar el método de lectura del modulo y agregarle el método addCountryFilter pasándole el código del país que necesitamos.