original_string: public final function get_user_config($key, $userid=0) {
          global $DB;
  
          if (empty($userid)) {
              $userid = $this->user->id;
          }
  
          if ($key != 'visible') { // handled by the parent class
              if (!in_array($key, $this->get_allowed_user_config())) {
                  $a = (object)array('property' => $key, 'class' => get_class($this));
                  throw new portfolio_export_exception($this->get('exporter'), 'invaliduserproperty', 'portfolio', null, $a);
              }
          }
          if (!array_key_exists($userid, $this->userconfig)) {
              $this->userconfig[$userid] = (object)array_fill_keys(array_merge(array('visible'), $this->get_allowed_user_config()), null);
              foreach ($DB->get_records('portfolio_instance_user', array('instance' => $this->id, 'userid' => $userid)) as $config) {
                  $this->userconfig[$userid]->{$config->name} = $config->value;
              }
          }
          if ($this->userconfig[$userid]->visible === null) {
              $this->set_user_config(array('visible' => 1), $userid);
          }
          return $this->userconfig[$userid]->{$key};
  
      }
code: public final function get_user_config($key, $userid=0) {
          global $DB;
  
          if (empty($userid)) {
              $userid = $this->user->id;
          }
  
          if ($key != 'visible') { // handled by the parent class
              if (!in_array($key, $this->get_allowed_user_config())) {
                  $a = (object)array('property' => $key, 'class' => get_class($this));
                  throw new portfolio_export_exception($this->get('exporter'), 'invaliduserproperty', 'portfolio', null, $a);
              }
          }
          if (!array_key_exists($userid, $this->userconfig)) {
              $this->userconfig[$userid] = (object)array_fill_keys(array_merge(array('visible'), $this->get_allowed_user_config()), null);
              foreach ($DB->get_records('portfolio_instance_user', array('instance' => $this->id, 'userid' => $userid)) as $config) {
                  $this->userconfig[$userid]->{$config->name} = $config->value;
              }
          }
          if ($this->userconfig[$userid]->visible === null) {
              $this->set_user_config(array('visible' => 1), $userid);
          }
          return $this->userconfig[$userid]->{$key};
  
      }
code_tokens: public final function get_user_config ( $ key , $ userid = 0 ) { global $ DB ; if ( empty ( $ userid ) ) { $ userid = $ this -> user -> id ; } if ( $ key != 'visible' ) { // handled by the parent class if ( ! in_array ( $ key , $ this -> get_allowed_user_config ( ) ) ) { $ a = ( object ) array ( 'property' => $ key , 'class' => get_class ( $ this ) ) ; throw new portfolio_export_exception ( $ this -> get ( 'exporter' ) , 'invaliduserproperty' , 'portfolio' , null , $ a ) ; } } if ( ! array_key_exists ( $ userid , $ this -> userconfig ) ) { $ this -> userconfig [ $ userid ] = ( object ) array_fill_keys ( array_merge ( array ( 'visible' ) , $ this -> get_allowed_user_config ( ) ) , null ) ; foreach ( $ DB -> get_records ( 'portfolio_instance_user' , array ( 'instance' => $ this -> id , 'userid' => $ userid ) ) as $ config ) { $ this -> userconfig [ $ userid ] -> { $ config -> name } = $ config -> value ; } } if ( $ this -> userconfig [ $ userid ] -> visible === null ) { $ this -> set_user_config ( array ( 'visible' => 1 ) , $ userid ) ; } return $ this -> userconfig [ $ userid ] -> { $ key } ; }
docstring: Get the value of a config item for a particular user.
  
  @param string $key key to fetch
  @param int $userid id of user (defaults to current)
  @return string the corresponding value
docstring_tokens: Get the value of a config item for a particular user .