From 46ba45d226e60eb95502a409a782740c639e6ae5 Mon Sep 17 00:00:00 2001 From: omarkasem Date: Sat, 14 Sep 2024 14:19:47 +0300 Subject: [PATCH 1/6] Add initials settings --- .../fields/class-gravityview-field-name.php | 36 +++++++++++++++++++ templates/fields/field-name-html.php | 22 ++++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/includes/fields/class-gravityview-field-name.php b/includes/fields/class-gravityview-field-name.php index 90f9f58fb5..fbd1693ad4 100644 --- a/includes/fields/class-gravityview-field-name.php +++ b/includes/fields/class-gravityview-field-name.php @@ -22,8 +22,44 @@ class GravityView_Field_Name extends GravityView_Field { public function __construct() { $this->label = esc_html__( 'Name', 'gk-gravityview' ); + + // add_filter( 'gravityview_field_entry_value_' . $this->name . '_pre_link', array( $this, 'get_content' ), 10, 4 ); + parent::__construct(); } + + + public function get_content( $output = '', $entry = array(), $field_settings = array(), $field = array() ) { + /** Overridden by a template. */ + if ( ! empty( $field['field_path'] ) ) { + return $output; + } + + + return 'test'; + } + + + public function field_options( $field_options, $template_id, $field_id, $context, $input_type, $form_id ) { + + if ( 'edit' === $context ) { + return $field_options; + } + + + $field_options['only_initials'] = array( + 'type' => 'checkbox', + 'label' => __( 'Only show initials', 'gk-gravityview' ), + 'desc' => __( 'Only show the initials of the name.', 'gk-gravityview' ), + 'value' => '', + 'group' => 'display', + ); + + + return $field_options; + } + + } new GravityView_Field_Name(); diff --git a/templates/fields/field-name-html.php b/templates/fields/field-name-html.php index 94b9e0d060..ab88192c5e 100644 --- a/templates/fields/field-name-html.php +++ b/templates/fields/field-name-html.php @@ -16,8 +16,26 @@ $display_value = $gravityview->display_value; $entry = $gravityview->entry->as_entry(); + +$field_settings = $gravityview->field->as_configuration(); + if ( floatval( $field_id ) != intval( $field_id ) ) { - echo esc_html( gravityview_get_field_value( $entry, $field_id, $display_value ) ); + $display_value = esc_html( gravityview_get_field_value( $entry, $field_id, $display_value ) ); } else { - echo gravityview_get_field_value( $entry, $field_id, $display_value ); + $display_value = gravityview_get_field_value( $entry, $field_id, $display_value ); } + + +if ( !empty( $field_settings['only_initials'] ) ) { + $names = explode( ' ', $display_value ); + $initials = ''; + + foreach ( $names as $name ) { + $initials .= strtoupper( $name[0] ) . '.'; + } + + $display_value = trim($initials); +} + + +echo apply_filters('gravityview/field/name/html', $display_value, $gravityview); \ No newline at end of file From 15d12ff4663d07dd5ebc973b138e9336671da204 Mon Sep 17 00:00:00 2001 From: omarkasem Date: Sat, 14 Sep 2024 18:19:50 +0300 Subject: [PATCH 2/6] Fix filter naming --- templates/fields/field-name-html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/fields/field-name-html.php b/templates/fields/field-name-html.php index ab88192c5e..ab1933f25c 100644 --- a/templates/fields/field-name-html.php +++ b/templates/fields/field-name-html.php @@ -38,4 +38,4 @@ } -echo apply_filters('gravityview/field/name/html', $display_value, $gravityview); \ No newline at end of file +echo apply_filters('gk/gravityview/fields/name/initials', $display_value, $gravityview); \ No newline at end of file From e38ce9af296da35fb23d6accad6eeb27c344ac18 Mon Sep 17 00:00:00 2001 From: omarkasem Date: Sat, 14 Sep 2024 18:20:04 +0300 Subject: [PATCH 3/6] spacing issue --- templates/fields/field-name-html.php | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/fields/field-name-html.php b/templates/fields/field-name-html.php index ab1933f25c..9e74612920 100644 --- a/templates/fields/field-name-html.php +++ b/templates/fields/field-name-html.php @@ -37,5 +37,4 @@ $display_value = trim($initials); } - echo apply_filters('gk/gravityview/fields/name/initials', $display_value, $gravityview); \ No newline at end of file From 39951f61865ad9acc0be0a3d69fdcf848eb0114e Mon Sep 17 00:00:00 2001 From: omarkasem Date: Tue, 17 Sep 2024 10:28:43 +0300 Subject: [PATCH 4/6] Removes unused tests function --- includes/fields/class-gravityview-field-name.php | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/includes/fields/class-gravityview-field-name.php b/includes/fields/class-gravityview-field-name.php index fbd1693ad4..e624a7c6b3 100644 --- a/includes/fields/class-gravityview-field-name.php +++ b/includes/fields/class-gravityview-field-name.php @@ -23,23 +23,10 @@ class GravityView_Field_Name extends GravityView_Field { public function __construct() { $this->label = esc_html__( 'Name', 'gk-gravityview' ); - // add_filter( 'gravityview_field_entry_value_' . $this->name . '_pre_link', array( $this, 'get_content' ), 10, 4 ); - parent::__construct(); } - public function get_content( $output = '', $entry = array(), $field_settings = array(), $field = array() ) { - /** Overridden by a template. */ - if ( ! empty( $field['field_path'] ) ) { - return $output; - } - - - return 'test'; - } - - public function field_options( $field_options, $template_id, $field_id, $context, $input_type, $form_id ) { if ( 'edit' === $context ) { From 2f2e72d45d57c93ca525ec1423a32fb5e21beb3f Mon Sep 17 00:00:00 2001 From: omarkasem Date: Tue, 17 Sep 2024 10:32:30 +0300 Subject: [PATCH 5/6] Fixes filter placement and Adds comments for filter and pass more variables --- templates/fields/field-name-html.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/templates/fields/field-name-html.php b/templates/fields/field-name-html.php index 9e74612920..0c8e119a06 100644 --- a/templates/fields/field-name-html.php +++ b/templates/fields/field-name-html.php @@ -31,10 +31,19 @@ $initials = ''; foreach ( $names as $name ) { - $initials .= strtoupper( $name[0] ) . '.'; + $initials .= trim(strtoupper( $name[0] )) . '.'; } - $display_value = trim($initials); + /** + * Filter to override custom initials. + * + * @since TBD + * + * @param string $initials The initials to display. + * @param string $display_value The full name to display. + * @param \GV\Template_Context $gravityview The GravityView template context. + */ + $display_value = apply_filters('gk/gravityview/fields/name/initials', $initials, $display_value, $gravityview); } -echo apply_filters('gk/gravityview/fields/name/initials', $display_value, $gravityview); \ No newline at end of file +echo $display_value; \ No newline at end of file From 53dfa9143de1058d24db07b6b22ec6764ee78195 Mon Sep 17 00:00:00 2001 From: omarkasem Date: Wed, 18 Sep 2024 11:41:17 +0300 Subject: [PATCH 6/6] Fixes issues with Arabic names --- templates/fields/field-name-html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/fields/field-name-html.php b/templates/fields/field-name-html.php index 0c8e119a06..e50459d0e2 100644 --- a/templates/fields/field-name-html.php +++ b/templates/fields/field-name-html.php @@ -31,7 +31,7 @@ $initials = ''; foreach ( $names as $name ) { - $initials .= trim(strtoupper( $name[0] )) . '.'; + $initials .= trim(mb_strtoupper( mb_substr($name, 0, 1) )) . '.'; } /**