Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'форма'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Invision Community
    • Дизайн и стилизация
    • Приложения и плагины
    • Помощь и поддержка
    • Миграция на Invision Community
    • IP.Board 3.x
    • Разработка
  • invisionbyte.ru
    • Обратная связь
    • Тестовые посты
    • Обо всём

Категории

  • Начало работы
  • Администрирование
    • Интернет-магазин (Commerce)
    • Страницы (Pages)
    • Форумы (Forums)
    • Галерея (Gallery)
    • Загрузки (Files)
    • Блоги (Blogs)
    • Пользователи
  • Модерирование
  • Кастомизация
    • Дизайн и стилизация
    • Локализация
  • Антиспам и безопасность
  • Приложения сторониих разработчиков
  • Разработчику
  • База знаний
  • Общее
    • Хостинг
    • Домены
    • Поисковая оптимизация

Категории

  • Новое сообщество
    • Лицензия
    • Системные требования
    • Установка
    • Обновление
    • Перенос с других платформ
  • Приложения
    • Форумы
    • Страницы
    • Галерея
    • Загрузки
    • Блоги
    • Календарь
    • Коммерция
  • Продвижение
    • Продвижение в социальных сетях
  • Общее использование
    • Знакомство
    • Общие настройки
    • Контент
    • Пользователи
    • Модерация
    • Авторизация через сайты
    • СЕО оптимизация
    • Управление файлами
  • Индивидуализация
    • Темы и дизайн
    • Языки и переводы
    • Редактор сообщений
    • Синтаксис шаблонов
    • CSS фреймворк
    • Javascript
    • Советы и трюки
  • Расширение возможностей
    • Конфигурация
    • Управление сервером
    • IPS Connect
  • Разработка
    • Приложения
    • Плагины
  • Сторонние приложения
    • Automation Rules

Категории

  • Темы и дизайн
  • Дополнительные возможности
  • Обновление Invision Community
  • Безопасность
  • Миграция на Invision Community
  • Ошибки

Категории

  • Русский язык для Invision Community
  • Плагины
  • Темы
  • Модули оплаты

Категории

  • Общее
  • Разработка
    • Приложения
    • Плагины
    • Расширения
  • Фреймворк
    • Ноды
    • Элементы контента
    • Комментарии
    • Отзывы
  • Пользователи и аутентификации
  • Другие возможности
    • Уведомления и E-mail
    • Формы
    • Коммерция
  • Документация разработчика
  • REST API
    • Система
    • Загрузки
    • Страницы
    • Форумы
    • Галерея
    • Календарь
    • Блоги
    • Магазин

Категории

  • Успешные истории и интервью с владельцами сообществ на Invision Community

Категории

  • Локализция Invision Community
  • Коммерция
  • Антиспам и безопасность
  • Темы и дизайн
  • Интерфейс
  • Модерирование
  • Дополнительно
  • Локализация

Блоги

  • Мой тестовый блог
  • IPS 4 и контентные проекты
  • Блог начинающего сисадмина или идеальный сервер для IPS4
  • Подробнее о IPS4
  • Продвижение городского форума на Invision Community

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Адрес сайта

Найдено: 3 результата

  1. Для более сложных форм помощник \IPS\Helpers\Form предоставляет несколько методов, чтобы помочь вам организовать и сгруппировать ваши поля формы: Вкладки (включая определение того, на какой вкладке находится поле с ошибкой). Заголовки (для группировки связанных полей под одним заголовком). Боковые блоки (чтобы добавить контекстный контент в форму). Разделители (разбить форму на логические части). Использование их простое: $form->addTab('Tab1'); $form->addHeader('Header'); $form->add( new \IPS\Helpers\Form\YesNo( 'yes_no_field' ) ); $form->add( new \IPS\Helpers\Form\Text( 'text_field' ) ); $form->addHeader('Header'); $form->add( new \IPS\Helpers\Form\Text( 'another_text_field' ) ); $form->addTab('Tab2'); $form->add( new \IPS\Helpers\Form\Text( 'another_text_field' ) ); Форма строится последовательно, поэтому вы должны вызывать addTab, addHeader и т.д., на которых расположены поля, которые должны появляться на этой вкладке или под этим заголовком, перед добавлением другой вкладки и т.д. Вкладки $form->addTab( string $lang [, string $icon=NULL [, string $blurbLang=NULL [, string $css=NULL ] ] ] ) $lang (строка, обязательный) - Ключ языковой строки для использования на этой вкладке. $icon (строка, необязательный) - Если указано, на вкладке будет отображена иконка. Должна быть именем класса FontAwesome без префикса fa-. Например, cloud-download или envelope-o. $blurbLang (строка, необязательный) - Если указано, добавит описание сверху под вкладкой над полями. Должен быть ключ языковой строки. $css (строка, необязательный) - Строка названий CSS классов, разделённых пробелами, для добавления к обложке контента вкладки (но не к самой вкладке). Заголовки $form->addHeader( string $lang ) $lang (строка, обязательный) - Ключ языковой строки для использования в качестве заголовка. Боковой блок На каждой вкладке может быть свой отдельный боковой блок (конечно же на одну вкладку только один боковой блок). $form->addSidebar( string $html ) $html (строка, обязательный) - HTML для отображения в качестве боковой панели. Обычно здесь вызывается шаблон: $form->addSidebar( \IPS\Theme::i()->getTemplate( 'group', 'app', 'location' )->myTemplate() );
  2. invisionbyte

    Отображение формы

    Приведение объекта $form в строку возвращает HTML код для отображения формы. Обычно вам не нужно приводить форму явно, просто добавьте её в буфер отображения, например \IPS\Output::i()->output. \IPS\Output::i()->output .= $form; Добавление собственного CSS в форму По умолчанию форма горизонтальная. Чтобы сделать её вертикальной, или применить какой-либо класс, вы должны сделать следующее: $form->class = 'ipsForm_vertical'; Свойство class представляет собой простую строку (не массив), поэтому просто используйте список имен классов CSS, разделенных пробелами. Если вы используете свои собственные стили CSS, а не встроенные классы, не забудьте также добавить свой CSS файл! Использование шаблонов пользовательских форм По умолчанию для отображения формы используются стандартные встроенные шаблоны форм. Однако для дальнейшей настройки вы можете вызвать $form->customTemplate() передавая обратный вызов с шаблоном для использования. Это позволяет полностью настроить внешний вид формы. Это необходимо для использования шаблона, который выглядит лучше в модальном окне: \IPS\Output::i()->output = $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' ) ); Создаваемый шаблон должен содержать следующий заголовок шаблона, включая следующие параметры: <ips:template parameters="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" /> Передача пользовательских параметров Если вам нужно передать дополнительные настраиваемые параметры в шаблон формы, вы можете сделать это во втором параметре метода customTemplate, например: $templateToUse = array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' ); $form->customTemplate( $templateToUse, $myCustomParameter, $anotherParameter ); Ваши параметры добавляются в начало списка параметров шаблона, то есть в этом случае заголовок вашего шаблона будет выглядеть следующим образом: <ips:template parameters="$myCustomParameter, $anotherParameter, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" />
  3. Назначение Помощника форм Большая часть пользовательского интерфейса в Invision Community содержит формы, будь то многочисленные страницы настроек в админцентре, публикация контента в фронтэнде, настройка профиля и многое другое. Invision Community имеет мощный класс Помощника формы, который упрощает внедрение форм в ваших приложениях и плагинах. Он предоставляет такие функции, как автоматическая проверка и встроенная безопасность, заботится о создании пользовательского интерфейса (в случае более сложных типов полей, таких как матрицы и селектор нод/деревьев) и динамического поведения для вас. Формы, созданные с помощью Помощника формы, поддерживают широкий диапазон типов полей, имеют встроенную поддержку вкладок, используют возможности HTML5, где это применимо, и многое другое. Если вам нужен ввод какой-либо информации от пользователей в вашем приложении или плагине, вы всегда должны использовать Помощник форм; никогда не реализуйте такую функциональность вручную и не обходите фреймворк. Основной фрагмент, показывающий, как в конечном итоге будет выглядеть код вашей формы: // Создать экземпляр формы $form = new \IPS\Helpers\Form; // Добавить поля формы $form->add( ... ); $form->add( ... ); if ( $values = $form->values() ) { // Форма отправлена; обрабатывайте значения формы здесь } // Отправить форму для вывода \IPS\Output::i()->output = $form; Создание формы Чтобы создать форму, вы просто создаете экземпляр из Помощника формы. К возвращенному объекту вы можете добавлять поля, вкладки и т.д. (описано в следующих разделах). // Создание формы с использованием значений по умолчанию $form = new \IPS\Helpers\Form; Никакие параметры не требуются, но есть несколько необязательных параметров, которые вы можете передать: \IPS\Helpers\Form( [ string $formID='form' [, string $submitLang='save' [, \IPS\Http\Url $actionURL=NULL [, array $attributes=array() ]]]] ); $formID (строка, необязательный) - Идентификатор для использования в HTML атрибуте id для этой формы. $submitLang (строка, необязательный) - Языковой ключ строки для использования в названии кнопки 'отправить'. $actionURL (\IPS\Http\Url, необязательный) - Объект URL-адреса, по которому должна быть отправлена форма (по умолчанию, формы отправляются на ту же страницу, которая их отображает). $attributes (массив, необязательный) - Массив ключ/значение других HTML атрибутов, которые вы хотели бы включить в тег <form>, например для функции javascript. Добавление элементов формы Добавление элемента формы выполняется методом $form->add(). Вы передаете ему объект элемента, который вы хотите - например, чтобы добавить текстовый ввод в свою форму, вы можете сделать следующее: $form->add( new \IPS\Helpers\Form\Text('name') ); Вы можете использовать широкий диапазон встроенных типов полей форм. Некоторые из доступных классов: \IPS\Helpers\Form\Text для обычного ввода текста. \IPS\Helpers\Form\Editor для ввода текста WYSIWYG. \IPS\Helpers\Form\Upload для загрузки файлов. \IPS\Helpers\Form\Date для дат. \IPS\Helpers\Form\Select для окна выбора. \IPS\Helpers\Form\YesNo для переключателей да/нет. Классы всех полей форм имеют похожий набор параметров. Каждый из них настраивается с помощью значений, которые вы передаете. Вот параметры, которые вы можете передать в классы полей форм: $name (строка, обязательный) - имя поля (используется в атрибуте имени в HTML). $defaultValue (mixed, необязательный) - стандартное значение поля, независимо от типа поля. $required (boolean, необязательный) - будет ли поле обязательным. Обратите внимание: передача true устанавливает HTML5 атрибут required, то есть форма не может быть отправлена, если она не заполнена. Передав NULL, вы отключите атрибут required, позволяя вместо этого проверять поле вручную на бэкэнд. $options (массив, необязательный) - Массив параметров. Допустимые значения зависят от типа поля; посмотрите документы по отдельным классам для получения дополнительной информации. $customValidationCode (функция, необязательный) - функция проверки значения поля. $prefix (строка, необязательный) - HTML строка для отображения перед полем HTML. $suffix (строка, необязательный) - HTML строка для отображения после поля HTML. $id (строка, необязательный) - Идентификатор, который будет использован в HTML атрибуте id. Для всех доступных классов, просмотрите файлы в директории system/Helpers/Form/. Значения, приемлемые для $options описаны в исходном коде каждого класса в директории. Имейте в виду, что некоторые классы расширяют другие (например, CheckboxSet расширяет Select и имеет те же $options). Например, чтобы создать окно с множественным выбором, вы должны сделать что-то вроде этого: $form->add( new \IPS\Helpers\Form\Select( 'my_select_box', NULL, TRUE, array( 'options' => array( 0 => 'Foo', 1 => 'Bar', 2=> 'Baz' ), 'multiple' => TRUE ) ) ); Метки и описания Свойство $name, в дополнение к имени, используемом для HTML поля, также используется для отображения метки (label). Помощник формы автоматически найдёт языковую строку с таким ключом, чтобы использовать её в качестве метки. Он также будет искать языковую строку с _desc для описания.Например, если $name для вашего поля - my_field, в качестве описания будет использоваться языковая строка my_field_desc. Если языковая строка с этим ключом не существует, описание не будет использоваться. Система также будет искать языковую строку с _warning для блока предупреждения (опять же, если строки не существует, не будет отображено). Обычно это всегда используется с переключателями (см. ниже), например, для отображения предупреждения, когда пользователь выбирает нежелательный вариант. В дополнение к меткам и описаниям с автоматическим использованием языковой строки, также можно переопределить это поведение и установить свои собственные значения в контроллере. Например: $input = new \IPS\Helpers\Form\Text( 'my_select_box', NULL, TRUE ); $input->description = "My Description"; $input->label = "My Label"; Важно отметить, что при установке описаний как данном случае, они будут добавлены точно такими же, как указаны, без дополнительной разметки. Если необходима разметка, вы должны установить свойство с помощью шаблона. Проверка Большинство классов будут автоматически проверять введённые данные, а параметр $options предоставляет способы настройки. Например, если вы создаёте элемент \IPS\Helpers\Form\Number, он будет автоматически проверен - является ли значение числом, и вы можете использовать $options для управления максимумом и минимумом вводимого числа вместе с количеством разрешенных десятичных знаков после точки. Система автоматически снова отобразит форму со встроенной ошибкой, если любой из элементов не пройдёт проверку, без необходимости предоставления дополнительного кода с вашей стороны. Однако, если вы хотите включить собственную проверку, вы можете сделать это с помощью свойства $customValidationCode - вы просто предоставляете метод обратного вызова, который генерирует исключение DomainException, если возникла ошибка. Например, если вы хотите сделать числовое поле, где число 7 не было разрешено, вы можете сделать это следующим образом: $form->add( new \IPS\Helpers\Form\Number( 'my_field', NULL, TRUE, array(), function( $val ) { if ( $val == 7 ) { throw new \DomainException('form_bad_value'); } } ) ); Обработка данных Когда ваша форма будет отправлена, $form->values() вернет массив со значениями каждого элемента (если форма не была отправлена или проверка не пройдена, она возвращает FALSE). Имейте в виду, что защита CSRF обрабатывается автоматически при использовании централизованного класса \IPS\Helpers\Form и будет показано сообщение об ошибке, если ключ CSRF не будет соответствовать ожидаемому значению. Значение, возвращаемое для каждого элемента, зависит от типа, а иногда и от параметров. Например, элемент \IPS\Helpers\Form\Text всегда возвращает строку в качестве значения. Однако \IPS\Helpers\Form\Number может вернуть целое число (int) или число с плавающей точкой (float). С другой стороны \IPS\Helpers\Form\Upload возвращает объект класса \IPS\File (или даже массив объектов, если это поле для загрузки нескольких файлов). Если вы предпочитаете получать только строковые значения (например, вы хотите сохранить значения как объект JSON), вы можете передать TRUE в метод $form->values(). Рекомендации Формы составляют большую часть пользовательского интерфейса в сообществе Invision Community. Важно представлять UI интерфейс как общую среду, согласующуюся с другими областями сайта. В связи с этим некоторые наши рекомендации: Всегда создавайте описание настроек положительно. Например, пишите "Включить функцию?" вместо "Отключить функцию?". Значение "Да" всегда должно означать, что и "Включить". Делайте метки короткими и понятными и используйте описания, если только оно необходимо. Например, для поля "Включить функцию?" не требуется добавлять описание в стиле "Установите значение в Да, чтобы включить функцию", т.к. это очевидно. Используйте префиксы и суффиксы, а не добавляйте информацию на ярлык или описание, где это возможно. Например, не используйте метку "Количество дней пред удалением" - сделайте метку более лаконичной - "Удалить после" и суффикс, который появится после поля - "дней". Никогда не обращайтесь в настройка в метках или описаниях. Например, не делайте такого описания "Применяется только, если настройка выше включена". Используйте переключатели для обозначения этого. Никогда не делайте указание определённого значения для какого-либо действия. Например, не делайте описание подобного этому "Оставьте поле пустым для неограниченного - используйте чекбокс "Неограниченно" или отдельную настройку, которая переключает другие настройки.
×
×
  • Создать...

Важная информация

Используя наш сайт вы соглашаетесь с нашей Политикой конфиденциальности