PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.14.0
GiveWP – Donation Plugin and Fundraising Platform v2.14.0
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Form / LegacyConsumer / FieldView.php
give / src / Form / LegacyConsumer Last commit date
Actions 4 years ago Commands 4 years ago Traits 4 years ago Validators 4 years ago resources 4 years ago templates 4 years ago AddEnctypeAttributeInDonationForm.php 4 years ago FieldView.php 4 years ago FilterCallbackCollection.php 4 years ago ServiceProvider.php 4 years ago TemplateHooks.php 4 years ago UniqueIdAttributeGenerator.php 4 years ago functions.php 4 years ago
FieldView.php
95 lines
1 <?php
2
3 namespace Give\Form\LegacyConsumer;
4
5 use Give\Framework\FieldsAPI\Types;
6 use Give\Framework\FieldsAPI\Contracts\Node;
7
8 /**
9 * @since 2.10.2
10 * @since 2.14.0 Add field classes hook for setting custom class names on the wrapper.
11 */
12 class FieldView {
13 const INPUT_TYPE_ATTRIBUTES = [
14 Types::PHONE => 'tel',
15 Types::EMAIL => 'email',
16 Types::URL => 'url',
17 ];
18
19 /**
20 * @since 2.10.2
21 * @since 2.14.0 add $formId as a param
22 * @since 2.14.0 Add filter to allow rendering logic for custom fields
23 *
24 * @param Node $field
25 * @param int $formId
26 *
27 * @return void
28 */
29 public static function render( Node $field, $formId ) {
30 $type = $field->getType();
31 $fieldIdAttribute = give( UniqueIdAttributeGenerator::class )->getId( $formId, $field->getName() );
32
33 if ( $type === Types::HIDDEN ) {
34 include static::getTemplatePath( 'hidden' );
35
36 return;
37 }
38
39 $classList = apply_filters( "give_form_{$formId}_field_classes_{$field->getName()}", [ 'form-row', 'form-row-wide' ] );
40 $className = implode( ' ', array_unique( $classList ) );
41
42 echo "<div class=\"{$className}\" data-field-type=\"{$field->getType()}\" data-field-name=\"{$field->getName()}\">";
43 // By default, new fields will use templates/label.html.php and templates/base.html.php
44 switch ( $type ) {
45 case Types::HTML:
46 case Types::CHECKBOX:
47 case Types::RADIO: // Radio provides its own label
48 include static::getTemplatePath( $type );
49 break;
50 // These fields need a label and have their own template.
51 case Types::FILE:
52 case Types::SELECT:
53 case Types::TEXTAREA:
54 include static::getTemplatePath( 'label' );
55 include static::getTemplatePath( $type );
56 break;
57 // By default, include a template and use the base input template.
58 case Types::DATE:
59 case Types::EMAIL:
60 case Types::PHONE:
61 case Types::TEXT:
62 case Types::URL:
63 // Used in the template
64 $typeAttribute = array_key_exists( $type, static::INPUT_TYPE_ATTRIBUTES ) ? static::INPUT_TYPE_ATTRIBUTES[ $type ] : 'text';
65 include static::getTemplatePath( 'label' );
66 include static::getTemplatePath( 'base' );
67 break;
68 default:
69 /**
70 * Provide a custom function to render for a custom node type.
71 *
72 * @since 2.14.0
73 *
74 * @param Node $field The node to render.
75 * @param int $formId The form ID that the node is a part of.
76 *
77 * @void
78 */
79 do_action( "give_fields_api_render_{$field->getType()}", $field, $formId );
80 }
81 echo '</div>';
82 }
83
84 /**
85 * @since 2.12.0
86 *
87 * @param string $templateName
88 *
89 * @return string
90 */
91 protected static function getTemplatePath( $templateName ) {
92 return plugin_dir_path( __FILE__ ) . "/templates/{$templateName}.html.php";
93 }
94 }
95