PageRenderTime 1ms CodeModel.GetById 2ms app.highlight 8ms RepoModel.GetById 2ms app.codeStats 1ms

/documentation/es/designers/language-builtin-functions/language-function-foreach.xml

https://bitbucket.org/hallgrennetworks/smarty
XML | 247 lines | 216 code | 10 blank | 21 comment | 0 complexity | bb4766f5d6bf6c7585c3fef126626df2 MD5 | raw file
  1<?xml version="1.0" encoding="UTF-8"?>
  2<!-- $Revision: 2972 $ -->
  3		<sect1 id="language.function.foreach">
  4   <title>{foreach},{foreachelse}</title>
  5            <informaltable frame="all">
  6                <tgroup cols="5">
  7                <colspec colname="param" align="center" />
  8                <colspec colname="type" align="center" />
  9                <colspec colname="required" align="center" />
 10                <colspec colname="default" align="center" />
 11                <colspec colname="desc" />
 12                <thead>
 13                    <row>
 14                        <entry>Nombre del Atributo</entry>
 15                        <entry>Tipo</entry>
 16                        <entry>Requerido</entry>
 17                        <entry>Default</entry>
 18                        <entry>Descripción</entry>
 19                    </row>
 20                </thead>
 21                <tbody>
 22                    <row>
 23                        <entry>from</entry>
 24                        <entry>array</entry>
 25                        <entry>Si</entry>
 26                        <entry><emphasis>n/a</emphasis></entry>
 27                        <entry>El nombre de la matriz a la que usted estara pegando los elementos</entry>
 28                    </row>
 29                    <row>
 30                        <entry>item</entry>
 31                        <entry>string</entry>
 32                        <entry>Si</entry>
 33                        <entry><emphasis>n/a</emphasis></entry>
 34                        <entry>El nombre de la variable que es el elemento
 35                        actual</entry>
 36                    </row>
 37                    <row>
 38                        <entry>key</entry>
 39                        <entry>string</entry>
 40                        <entry>No</entry>
 41						<entry><emphasis>n/a</emphasis></entry>
 42						<entry>El nombre de la variable que es la llave actual</entry>
 43                    </row>
 44                    <row>
 45                        <entry>name</entry>
 46                        <entry>string</entry>
 47                        <entry>No</entry>
 48                        <entry><emphasis>n/a</emphasis></entry>
 49						<entry>El nombre del ciclo foreach para acessar a las propiedades del foreach</entry>
 50                    </row>
 51                </tbody>
 52                </tgroup>
 53            </informaltable>
 54			<para>
 55    Los ciclos(loop) <emphasis>foreach</emphasis> son una alternativa para loop 
 56    <link linkend="language.function.section"><emphasis>{section}</emphasis></link>. 
 57    <emphasis>foreach</emphasis> es usado para pegar cada elemento de una  
 58    <emphasis role="bold">matriz asociativa simple</emphasis>.
 59    La sintaxis para <emphasis>foreach</emphasis> es mucho mas simple que 
 60    <emphasis>section</emphasis>, pero tiene una desventaja de que solo puede ser 
 61    usada en una única matriz.
 62    La etiqueta  <emphasis>foreach</emphasis> debe tener su par 
 63    <emphasis>/foreach</emphasis>.
 64    Los parámetros requeridos son <emphasis>from</emphasis> e 
 65    <emphasis>item</emphasis>. El nombre del ciclo(loop) foreach puede ser 
 66    cualquier cosa que usted quiera, hecho de letras, números y subrayados. 
 67    Los ciclos(loop) <emphasis>foreach</emphasis> pueden ser anidados, 
 68    y el nombre de los ciclos(loop) anidados debe ser diferente uno de
 69    otro. La variable <emphasis>from</emphasis> (normalmente una matriz de valores) 
 70    determina el número de veces del ciclo(loop) <emphasis>foreach</emphasis>.
 71    <emphasis>foreachelse</emphasis> y ejecutando cuando no hubieren mas valores 
 72    en la variable <emphasis>from</emphasis>.
 73			</para>
 74<example>
 75<title>foreach</title>
 76<programlisting role="php">
 77   <![CDATA[
 78   <?php
 79   $arr = array( 1001,1002,1003);
 80   $smarty->assign('custid', $arr);
 81   ?>
 82   ]]>
 83</programlisting>
 84
 85  <programlisting>
 86<![CDATA[
 87{* este ejemplo muestra todos los valores de la matriz $custid *}
 88{foreach from=$custid item=curr_id}
 89  id: {$curr_id}<br />
 90{/foreach}
 91]]>
 92  </programlisting>
 93  <para>
 94   Esta es la salida del ejemplo de arriba:
 95  </para>
 96  <screen>
 97<![CDATA[
 98id: 1000<br />
 99id: 1001<br />
100id: 1002<br />
101]]>
102  </screen>
103</example>
104
105<example>
106<title>foreach key</title>
107  <programlisting role="php">
108<![CDATA[
109// La llave contiene la llave para cada valor del ciclo(loop)
110//asignacion fisica de esta manera:
111<?php
112 $smarty->assign('contacts', array(
113                             array('phone' => '1',
114                                   'fax' => '2',
115                                   'cell' => '3'),
116                             array('phone' => '555-4444',
117                                   'fax' => '555-3333',
118                                   'cell' => '760-1234')
119                             ));
120?>
121]]>
122  </programlisting>
123  <programlisting>
124<![CDATA[
125{foreach name=outer item=contact from=$contacts}
126  <hr />
127  {foreach key=key item=item from=$contact}
128    {$key}: {$item}<br />
129  {/foreach}
130{/foreach}
131]]>
132  </programlisting>
133  <para>
134   Esta es la salida del ejemplo de arriba:
135  </para>
136  <screen>
137<![CDATA[
138<hr />
139  phone: 1<br />
140  fax: 2<br />
141  cell: 3<br />
142<hr />
143  phone: 555-4444<br />
144  fax: 555-3333<br />
145  cell: 760-1234<br />
146]]>
147  </screen>
148 </example>
149 <example>
150  <title>Ejemplo de {foreach} - con base de datos (eg PEAR o ADODB)</title>
151<programlisting role="php">
152<![CDATA[
153<?php
154  $sql = 'select contact_id, name, nick from contacts order by contact';
155  $smarty->assign("contacts", $db->getAssoc($sql));
156?>
157]]>
158  </programlisting>
159  <programlisting>
160<![CDATA[
161{foreach key=cid item=con from=$contacts}
162  <a href="contact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br />
163{/foreach}
164]]>
165  </programlisting>
166 </example>
167
168		<para>
169   El ciclo(Loop) foreach también tiene sus propias variables para
170   manipular las propiedades del foreach.
171   Estas son indicadas así: 
172   <link linkend="language.variables.smarty.loops">{$smarty.foreach.foreachname.varname}</link> 
173   con foreachname siendo el nombre especificado del atributo
174   <emphasis>name</emphasis> del foreach.
175		</para>
176  <para>Ver <link linkend="section.property.index">{section}</link>
177  para ejemplos ide las propiedades bajo las cuales son identicos.
178  </para>
179
180			<sect2 id="foreach.property.iteration">
181			<title>iteration</title>
182			<para>
183    iteration es usado para mostrar la interación actual del ciclo(loop).
184    iteration siempre comienza en 1 incrementado en uno cada interación.
185			</para>
186			</sect2>
187
188			<sect2 id="foreach.property.first">
189			<title>first</title>
190			<para>
191    <emphasis>first</emphasis> Toma el valor true si la interación actual del 
192     foreach es la primera.
193			</para>
194			</sect2>
195
196			<sect2 id="foreach.property.last">
197			<title>last</title>
198			<para>
199      <emphasis>last</emphasis> Toma el valor de true si la interación actual 
200       del foreach es la ultima.
201			</para>
202			</sect2>
203
204			<sect2 id="foreach.property.show">
205			<title>show</title>
206			<para>
207         <emphasis>show</emphasis> Es usado como parámetro para el foreach.
208         <emphasis>show</emphasis> Es un valor booleano, true o false.
209         Si es false, el foreach no será mostrado.  Si tuviera un
210         foreachelse presente, este será alternativamente mostrado.
211			</para>
212
213			</sect2>
214			<sect2 id="foreach.property.total">
215			<title>total</title>
216			<para>
217      <emphasis>total</emphasis> Es usado para mostrar el número de interaciones 
218      del foreach. Este puede ser usado dentro o después de el.
219			</para>
220  <para>
221   Ver tambien <link linkend="language.function.section">{section}</link> y
222   <link linkend="language.variables.smarty.loops">$smarty.foreach</link>.
223  </para>
224			</sect2>
225
226</sect1>
227
228<!-- Keep this comment at the end of the file
229Local variables:
230mode: sgml
231sgml-omittag:t
232sgml-shorttag:t
233sgml-minimize-attributes:nil
234sgml-always-quote-attributes:t
235sgml-indent-step:1
236sgml-indent-data:t
237indent-tabs-mode:nil
238sgml-parent-document:nil
239sgml-default-dtd-file:"../../../../manual.ced"
240sgml-exposed-tags:nil
241sgml-local-catalogs:nil
242sgml-local-ecat-files:nil
243End:
244vim600: syn=xml fen fdm=syntax fdl=2 si
245vim: et tw=78 syn=sgml
246vi: ts=1 sw=1
247-->