2011-11-29 13 views
6

puedo conseguir países como esto:Magento - ¿Cómo obtengo una lista de todos los países permitidos en el conjunto de opciones?

$countryCollection = Mage::getModel('directory/country')->getResourceCollection()->loadByStore(); 

y se enumeran en algún lugar del objeto, pero, ¿cómo los toOptionsArray a cabo?

que estoy después sólo las opciones por sitio web en lugar de lista completa
es decir, quiero Angola, la Antártida y así sucesivamente fuera de la lista. (. angoleños sentimos y pingüinos)

Respuesta

14

En realidad es la respuesta obvia:

$countryList = Mage::getModel('directory/country')->getResourceCollection() 
                ->loadByStore() 
                ->toOptionArray(true); 

También puedes ver http://fishpig.co.uk/magento-tutorials/list-countries-for-drop-down-in-magento para obtener más información sobre la creación de listas desplegables y tal con la lista de países.

+0

D'uh! Tenía 'opciones' en lugar de 'opción'. Gracias por darme una respuesta tan rápido, y estoy contento de haber intentado al menos caer en un error tipográfico. –

+0

Al establecer el parámetro del método toOptionArray en True, también se agrega un elemento vacío como primer elemento de los países. De alguna manera en mi caso tenía una etiqueta "1", no sé por qué. – Zsolti

+1

Descubrimos por qué apareció el "1". El "toOptionArray" acepta un parámetro, que es False, ya sea una cadena que será la etiqueta del primer elemento - empty -. Entonces cuando ponga True como parámetro, obtendrá "(cadena) True" que es "1". – Zsolti

0
<?php 
$_countries = Mage::getResourceModel('directory/country_collection') 
                    ->loadData() 
                    ->toOptionArray(false); 
        $allowed = Mage::getStoreConfig('general/country/allow'); 
       if (count($_countries) > 0) { ?> 
      <div class="input-box"> 
             <select name="country" id="country" class="validate-select" title="Country" > 
             <option value="">-- Please Select --</option> 
    <?php foreach($_countries as $_country){ 
              if(!in_array($_country['value'],explode(',',$allowed))){ 
               continue; 
              } ?> 
              <option value="<?php echo $_country['value']; ?>" <?php echo $formData['country'] == $_country['value'] ? ' selected="selected"' : '';?>> 
               <?php echo $_country['label'] ?> 
              </option> 
             <?php 
             } ?> 
            </select> 
           <?php } ?> 
Cuestiones relacionadas