Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Макроподстановки //

    GenerateForm


    Назначение

    Генератор форм по описанию полей в сущности. Упрощенная реализация, полезная когда форма не сильно сложная, или для отладки. Самостоятельно не используется.

    Ключи

    entityid Идентификатор сущности в файле entities.xml, из которой строится форма.
    includefields Строка, где через запятую перечисляются поля, которые нужно взять из сущности. Данный ключ будет обработан только если ключ excludefields будет пустым или не заданным, использовать два ключа одновременно - противоречие. После запятых в строке могут быть пробелы, их Система проигнорирует.
    excludefields Строка, где через запятую перечисляются поля из сущности, которые нужно пропустить при обработке. После запятых в строке могут быть пробелы, их Система проигнорирует.

    Комментарии

    Очень простой в использовании макрос, который генерирует HTML код формы, который обычно передается в ключ html макроса Form (см. пример).

    Разработчик просто задает идентификатор сущности, а макрос строит по ней форму. Например, если у нас есть сущность вида

    <entity id="feedbackitem" name="Обратная связь">
        <field id="message" type="html" name="Сообщение"/>
        <field id="FIO" type="string" name="ФИО"/>
        <field id="login" type="string" name="Логин"/>
        <field id="password" type="string" name="Пароль"/>
    </entity>

    то при вызове
    $GenerateForm[entityid: feedbackitem; excludefields: login, password]$

    будет сгенерирована такая HTML форма с двумя полями и кнопкой:
    <FORM action="" method="POST" enctype="multipart/form-data" class="twl_form">
    <P><DIV>Сообщение<BR><TEXTAREA name="Сообщение" rows="6" cols="46"></TEXTAREA></DIV></P>
    <P><DIV>ФИО<BR><INPUT TYPE="text" name="ФИО" size="60" /></DIV></P>
    <INPUT TYPE="submit" value="submit">
    </FORM>

    Её останется передать в макрос Form, где нужно настроить куда сохранять введенные пользователем данные, какие email рассылать и так далее - и форма готова к работе.

    Ограничения

    Разработчик не может повлиять на HTML код генерируемой формы кроме как через javascript сценарии в браузере на клиентской стороне, но он имеет возможность выбрать нужные или ненужные поля из сущности и далее "покрасить" форму с помощью CSS. Классы, которые генерирует Система, можно посмотреть в сгенерированном коде, их количество от версии к версии может увеличиваться (с сохранением обратной совместимости). Если разработчику нужно что-то выходящее за рамки возможностей CSS и javascript, тогда этот макрос не подходит для решения задачи и нужно собрать код формы вручную, вынести в отдельный шаблон, имя которого передать в макрос Form напрямую (см. его описание).

    Макрос рисует:

    • <INPUT TYPE="TEXT" ...> для полей типа string, money, date, url
    • <TEXTAREA...></TEXTAREA> для полей типа text, sampletext, html
    • <INPUT TYPE="checkbox" ...> для полей типа checkbox
    • выпадающий список <SELECT ...><OPTION>...</SELECT> для полей типа list
    • радиокнопки для полей типа radio

    Поля остальных типов в форму не попадут.

    Более подробно о типах полей см. документацию по файлу entities.xml.

    Примеры

    Пример использования в сборе с макросом Form

    $Form[html: $GenerateForm[entityid: menuitem; excludefields: booleanstate]$; redirect_after: feedback-result; savetodb: news; email_label: email_feedback]$

     

    « к списку макроподстановок

    версия для печати

     
    © 2003-17 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: