BlackShot Опубликовано 28 февраля, 2022 Поделиться Опубликовано 28 февраля, 2022 Я использую настраиваемые поля как для приложения под названием Application Forms, так и для Commerce. Почти все настраиваемые поля имеют возможность установить их как обязательные поля, за исключением некоторых. В моем случае я хочу, чтобы «флажок» действовал как обязательное поле. Я пошел в system > CustomField и отредактировал CustomField.php. Я смог показать параметр обязательного поля, но он просто не работает. Это просто визуально. Spoiler $toggles = array( //Added the following line: 'Checkbox' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ), 'CheckboxSet' => array( 'pf_content', 'pf_not_null', 'pf_search_type_on_off', "{$form->id}_header_pfield_displayoptions" ), 'Codemirror' => array( 'pf_not_null', 'pf_max_input', "{$form->id}_header_pfield_displayoptions" ), 'Email' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ), 'Member' => array( 'pf_not_null', 'pf_multiple', "{$form->id}_header_pfield_displayoptions" ), 'Password' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', "{$form->id}_header_pfield_displayoptions" ), 'Select' => array( 'pf_not_null', 'pf_content', 'pf_multiple', 'pf_search_type_on_off', "{$form->id}_header_pfield_displayoptions" ), 'Tel' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ), 'Text' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ), 'TextArea' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ), 'Url' => array( 'pf_not_null', 'pf_max_input', 'pf_input_format', 'pf_search_type', "{$form->id}_header_pfield_displayoptions" ), 'Radio' => array( 'pf_content', "{$form->id}_header_pfield_displayoptions", 'pf_search_type_on_off' ), 'Address' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ), 'Color' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ), 'Date' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ), 'Editor' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions", 'pf_search_type', 'pf_allow_attachments' ), 'Number' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions"), 'Poll' => array( 'pf_not_null' ), 'Rating' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ), 'Upload' => array( 'pf_not_null', "{$form->id}_header_pfield_displayoptions" ), ); Я также пошел в system > Helpers > Form > Checkbox.php, но я понятия не имею, что там редактировать. 😅 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 28 февраля, 2022 Поделиться Опубликовано 28 февраля, 2022 Думаю, это очень непросто сделать. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 28 февраля, 2022 Автор Поделиться Опубликовано 28 февраля, 2022 2 minutes ago, Desti said: I think this is very difficult to do. Слишком много работы? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 28 февраля, 2022 Поделиться Опубликовано 28 февраля, 2022 BlackShot какой смысл делать это поле обязательным, если там в итоге будет всегда только один вариант? разве что для принятия псевдоправил. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 28 февраля, 2022 Автор Поделиться Опубликовано 28 февраля, 2022 4 minutes ago, by_ix said: разве что для принятия псевдоправил. Хороший вопрос, и если я правильно понял, то это и есть ответ. Я хочу сделать это обязательным полем, тогда как форма не будет отправлена, если пользователь не установил флажок. Что-то вроде согласия с условиями обслуживания, понимаете? by_ix 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 марта, 2022 Поделиться Опубликовано 1 марта, 2022 11 часов назад, BlackShot сказал: Слишком много работы? Yep. You can insert such a field manually $form->add( new \IPS\Helpers\Form\Checkbox( 'agreed_terms_lang', FALSE, TRUE, array( ), function( $val ) { if ( !$val ) { throw new \InvalidArgumentException('agreed_terms_warn'); } }, NULL ) ); BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 1 марта, 2022 Автор Поделиться Опубликовано 1 марта, 2022 11 hours ago, Desti said: Yep. You can insert such a field manually $form->add( new \IPS\Helpers\Form\Checkbox( 'agreed_terms_lang', FALSE, TRUE, array( ), function( $val ) { if ( !$val ) { throw new \InvalidArgumentException('agreed_terms_warn'); } }, NULL ) ); I've added it to the proper file and unset its value - it works! The only downside to this is it adds a checkbox for every form created, whereas I only wanted it to show for specific ones. But that's still better than changing so much code, right? Thanks, Desti 🏆 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 1 марта, 2022 Поделиться Опубликовано 1 марта, 2022 You can create new settings (array ), for example "showConfirmCheckbox" (in App...Form application), add number of your forms with checkbox ( [2,3,6] ) and use this settings for enable-disable checkbox. if( \in_array( \IPS\Request::i()->id, \IPS\Settings::i()->showConfirmCheckbox ) ) { $form->add( new \IPS\Helpers\Form\Checkbox...... } BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BlackShot Опубликовано 2 марта, 2022 Автор Поделиться Опубликовано 2 марта, 2022 1 hour ago, Desti said: You can create new settings (array ), for example "showConfirmCheckbox" (in App...Form application), add number of your forms with checkbox ( [2,3,6] ) and use this settings for enable-disable checkbox. if( \in_array( \IPS\Request::i()->id, \IPS\Settings::i()->showConfirmCheckbox ) ) { $form->add( new \IPS\Helpers\Form\Checkbox......} Genius! I'll try that soon and let you know if I had success. PS: I completed a basic PHP course and now I'm trying to study object oriented PHP like you recommended, but I still feel like it's going to be a loooong fucking journey. Shit is difficult. I'm trying though. Desti 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 2 марта, 2022 Поделиться Опубликовано 2 марта, 2022 7 часов назад, BlackShot сказал: Shit is difficult. I'm trying though. This is not difficult, just a lot of information. Difficult is quantum mechanics BlackShot 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.