From ba6ce37aa8695f8635c59840f9e7c5a583126283 Mon Sep 17 00:00:00 2001
From: Camilla Krag Jensen <drupal@naxoc.net>
Date: Mon, 11 Aug 2014 17:32:53 +0200
Subject: [PATCH] Fix an undefined index notice on soft_length_minimum.

Also made some small changes to the code for readability.
---
 soft_length_limit.module | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/soft_length_limit.module b/soft_length_limit.module
index bc30a5c..3b94784 100644
--- a/soft_length_limit.module
+++ b/soft_length_limit.module
@@ -200,21 +200,32 @@ function soft_length_limit_field_attach_form($entity_type, $entity, &$form, &$fo
 function soft_length_limit_set_attr(&$element, $sub_elements) {
   $children = element_get_visible_children($element);
   $types = _soft_length_limit_types('elements');
+
   foreach ($children as $value) {
     if (isset($element[$value]['#type']) && isset($types[$element[$value]['#type']])) {
       if (isset($element[$value]['#field_name']) && isset($sub_elements[$element[$value]['#field_name']])) {
-        $soft_limit = $sub_elements[$element[$value]['#field_name']]['widget']['settings']['soft_length_limit'];
-        $soft_min   = $sub_elements[$element[$value]['#field_name']]['widget']['settings']['soft_length_minimum'];
-        $element[$value]['#soft_length_limit'] = (isset($element[$value]['#maxlength']) && $soft_limit > $element[$value]['#maxlength']) ? $element[$value]['#maxlength'] : $soft_limit;
-        if (isset($sub_elements[$element[$value]['#field_name']]['widget']['settings']['soft_length_style_select'])) {
-          $soft_enhance = $sub_elements[$element[$value]['#field_name']]['widget']['settings']['soft_length_style_select'];
-          $element[$value]['#attributes']['data-soft-length-style-select'] = $soft_enhance;
+
+        $widget_settings = isset($sub_elements[$element[$value]['#field_name']]['widget']['settings']) ? $sub_elements[$element[$value]['#field_name']]['widget']['settings'] : FALSE;
+
+        if ($widget_settings) {
+          // Soft limit length.
+          $soft_limit = $widget_settings['soft_length_limit'];
+          $element[$value]['#soft_length_limit'] = (isset($element[$value]['#maxlength']) && $soft_limit > $element[$value]['#maxlength']) ? $element[$value]['#maxlength'] : $soft_limit;
+          $element[$value]['#attributes']['data-soft-length-limit'] = $soft_limit;
+          $element[$value]['#attributes']['class'][] = 'soft-length-limit';
+
+          // Soft minimum.
+          $soft_min = isset($widget_settings['soft_length_minimum']) ? $widget_settings['soft_length_minimum'] : '';
+          $element[$value]['#attributes']['data-soft-length-minimum'] = $soft_min;
+
+          // Length style select.
+          if (isset($widget_settings['soft_length_style_select'])) {
+            $element[$value]['#attributes']['data-soft-length-style-select'] = $widget_settings['soft_length_style_select'];
+          }
         }
-        $element[$value]['#attributes']['class'][] = 'soft-length-limit';
-        $element[$value]['#attributes']['data-soft-length-limit'] = $soft_limit;
-        $element[$value]['#attributes']['data-soft-length-minimum'] = $soft_min;
       }
     }
+
     soft_length_limit_set_attr($element[$value], $sub_elements);
   }
 }
-- 
GitLab