original_string: protected function validate_scaleconfiguration($value) {
          $scaledefaultselected = false;
          $proficientselected = false;
          $scaleconfigurations = json_decode($value);
  
          if (is_array($scaleconfigurations)) {
  
              // The first element of the array contains the scale ID.
              $scaleinfo = array_shift($scaleconfigurations);
              if (empty($scaleinfo) || !isset($scaleinfo->scaleid) || $scaleinfo->scaleid != $this->get('scaleid')) {
                  // This should never happen.
                  return new lang_string('errorscaleconfiguration', 'core_competency');
              }
  
              // Walk through the array to find proficient and default values.
              foreach ($scaleconfigurations as $scaleconfiguration) {
                  if (isset($scaleconfiguration->scaledefault) && $scaleconfiguration->scaledefault) {
                      $scaledefaultselected = true;
                  }
                  if (isset($scaleconfiguration->proficient) && $scaleconfiguration->proficient) {
                      $proficientselected = true;
                  }
              }
          }
  
          if (!$scaledefaultselected || !$proficientselected) {
              return new lang_string('errorscaleconfiguration', 'core_competency');
          }
  
          return true;
      }
code: protected function validate_scaleconfiguration($value) {
          $scaledefaultselected = false;
          $proficientselected = false;
          $scaleconfigurations = json_decode($value);
  
          if (is_array($scaleconfigurations)) {
  
              // The first element of the array contains the scale ID.
              $scaleinfo = array_shift($scaleconfigurations);
              if (empty($scaleinfo) || !isset($scaleinfo->scaleid) || $scaleinfo->scaleid != $this->get('scaleid')) {
                  // This should never happen.
                  return new lang_string('errorscaleconfiguration', 'core_competency');
              }
  
              // Walk through the array to find proficient and default values.
              foreach ($scaleconfigurations as $scaleconfiguration) {
                  if (isset($scaleconfiguration->scaledefault) && $scaleconfiguration->scaledefault) {
                      $scaledefaultselected = true;
                  }
                  if (isset($scaleconfiguration->proficient) && $scaleconfiguration->proficient) {
                      $proficientselected = true;
                  }
              }
          }
  
          if (!$scaledefaultselected || !$proficientselected) {
              return new lang_string('errorscaleconfiguration', 'core_competency');
          }
  
          return true;
      }
code_tokens: protected function validate_scaleconfiguration ( $ value ) { $ scaledefaultselected = false ; $ proficientselected = false ; $ scaleconfigurations = json_decode ( $ value ) ; if ( is_array ( $ scaleconfigurations ) ) { // The first element of the array contains the scale ID. $ scaleinfo = array_shift ( $ scaleconfigurations ) ; if ( empty ( $ scaleinfo ) || ! isset ( $ scaleinfo -> scaleid ) || $ scaleinfo -> scaleid != $ this -> get ( 'scaleid' ) ) { // This should never happen. return new lang_string ( 'errorscaleconfiguration' , 'core_competency' ) ; } // Walk through the array to find proficient and default values. foreach ( $ scaleconfigurations as $ scaleconfiguration ) { if ( isset ( $ scaleconfiguration -> scaledefault ) && $ scaleconfiguration -> scaledefault ) { $ scaledefaultselected = true ; } if ( isset ( $ scaleconfiguration -> proficient ) && $ scaleconfiguration -> proficient ) { $ proficientselected = true ; } } } if ( ! $ scaledefaultselected || ! $ proficientselected ) { return new lang_string ( 'errorscaleconfiguration' , 'core_competency' ) ; } return true ; }
docstring: Validate the scale configuration.
  
  @param  string $value The scale configuration.
  @return bool|lang_string
docstring_tokens: Validate the scale configuration .