Files
smarty/docs/ru/designers/language-custom-functions/language-function-html-radios.xml
2008-05-25 15:06:11 +00:00

209 lines
6.9 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0 Maintainer: freespace Status: ready -->
<sect1 id="language.function.html.radios">
<title>{html_radios}</title>
<para>{html_radios} является
<link linkend="language.custom.functions">пользовательской функцией</link>,
которая создает группу радиокнопок в HTML по указанной информации.
Также она обеспечивает выбор радиокнопки по умолчанию.
Параметры values и output являются обязательными, если не указан атрибут
options. Весь вывод идет в формате XHTML.
</para>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Имя атрибута</entry>
<entry>Тип</entry>
<entry>Обязателен</entry>
<entry>По умолчанию</entry>
<entry>Описание</entry>
</row>
</thead>
<tbody>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>Нет</entry>
<entry><emphasis>radio</emphasis></entry>
<entry>название элементов выбора</entry>
</row>
<row>
<entry>values</entry>
<entry>массив</entry>
<entry>Да, если не указан атрибут options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>массив значений элементов выбора</entry>
</row>
<row>
<entry>output</entry>
<entry>массив</entry>
<entry>Да, если не указан атрибут options</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>массив названий элементов выбора</entry>
</row>
<row>
<entry>checked</entry>
<entry>string</entry>
<entry>Нет</entry>
<entry><emphasis>пусто</emphasis></entry>
<entry>Значение выбранного элемента</entry>
</row>
<row>
<entry>options</entry>
<entry>ассоциативный массив</entry>
<entry>Да, если не указаны атрибуты values и output</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>ассоциативный массив значений и названий
элементов выбора</entry>
</row>
<row>
<entry>separator</entry>
<entry>string</entry>
<entry>Нет</entry>
<entry><emphasis>пусто</emphasis></entry>
<entry>текст, разделяющий элементы выбора</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Нет</entry>
<entry><emphasis>пусто</emphasis></entry>
<entry>сохраняет тэги radio в массив, вместо вывода в шаблон</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Все параметры, которые не указаны в списке, выводятся в виде
пар name/value в каждом созданном тэге &lt;input&gt;.
</para>
<example>
<title>{html_radios} - пример №1</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array(
'Joe Schmoe',
'Jack Smith',
'Jane Johnson',
'Charlie Brown')
);
$smarty->assign('customer_id', 1001);
?>
]]>
</programlisting>
<para>
Шаблон:
</para>
<programlisting>
<![CDATA[
{html_radios name='id' values=$cust_ids output=$cust_names
selected=$customer_id separator='<br />'}
]]>
</programlisting>
</example>
<example>
<title>{html_radios} - пример №2</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('cust_radios', array(
1000 => 'Joe Schmoe',
1001 => 'Jack Smith',
1002 => 'Jane Johnson',
1003 => 'Charlie Brown'));
$smarty->assign('customer_id', 1001);
?>
]]>
</programlisting>
<para>
Шаблон:
</para>
<programlisting>
<![CDATA[
{html_radios name="id" options=$cust_radios selected=$customer_id separator="<br />"}
]]>
</programlisting>
<para>
Оба примера выведут следующее:
</para>
<screen>
<![CDATA[
<label for="id_1000">
<input type="radio" name="id" value="1000" id="id_1000" />Joe Schmoe</label><br />
<label for="id_1001"><input type="radio" name="id" value="1001" id="id_1001" checked="checked" />Jack Smith</label><br />
<label for="id_1002"><input type="radio" name="id" value="1002" id="id_1002" />Jane Johnson</label><br />
<label for="id_1003"><input type="radio" name="id" value="1003" id="id_1003" />Charlie Brown</label><br />
]]>
</screen>
</example>
<example>
<title>{html_radios} - пример с базой данных (к примеру, PEAR или ADODB):</title>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'select type_id, types from contact_types order by type';
$smarty->assign('contact_types',$db->getAssoc($sql));
$sql = 'select contact_id, name, email, contact_type_id '
.'from contacts where contact_id='.$contact_id;
$smarty->assign('contact',$db->getRow($sql));
?>
]]>
</programlisting>
<para>
Шаблон:
</para>
<programlisting>
<![CDATA[
{html_radios name='contact_type_id' options=$contact_types
selected=$contact.contact_type_id separator='<br />'}
]]>
</programlisting>
</example>
<para>
См. также
<link linkend="language.function.html.checkboxes">{html_checkboxes}</link>
и
<link linkend="language.function.html.options">{html_options}</link>
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->