original_string: public static function update_inplace_editable($component, $itemtype, $itemid, $value) {
          global $PAGE;
          // Validate and normalize parameters.
          $params = self::validate_parameters(self::update_inplace_editable_parameters(),
                        array('component' => $component, 'itemtype' => $itemtype, 'itemid' => $itemid, 'value' => $value));
          if (!$functionname = component_callback_exists($component, 'inplace_editable')) {
              throw new \moodle_exception('inplaceeditableerror');
          }
          $tmpl = component_callback($params['component'], 'inplace_editable',
              array($params['itemtype'], $params['itemid'], $params['value']));
          if (!$tmpl || !($tmpl instanceof \core\output\inplace_editable)) {
              throw new \moodle_exception('inplaceeditableerror');
          }
          return $tmpl->export_for_template($PAGE->get_renderer('core'));
      }
code: public static function update_inplace_editable($component, $itemtype, $itemid, $value) {
          global $PAGE;
          // Validate and normalize parameters.
          $params = self::validate_parameters(self::update_inplace_editable_parameters(),
                        array('component' => $component, 'itemtype' => $itemtype, 'itemid' => $itemid, 'value' => $value));
          if (!$functionname = component_callback_exists($component, 'inplace_editable')) {
              throw new \moodle_exception('inplaceeditableerror');
          }
          $tmpl = component_callback($params['component'], 'inplace_editable',
              array($params['itemtype'], $params['itemid'], $params['value']));
          if (!$tmpl || !($tmpl instanceof \core\output\inplace_editable)) {
              throw new \moodle_exception('inplaceeditableerror');
          }
          return $tmpl->export_for_template($PAGE->get_renderer('core'));
      }
code_tokens: public static function update_inplace_editable ( $ component , $ itemtype , $ itemid , $ value ) { global $ PAGE ; // Validate and normalize parameters. $ params = self :: validate_parameters ( self :: update_inplace_editable_parameters ( ) , array ( 'component' => $ component , 'itemtype' => $ itemtype , 'itemid' => $ itemid , 'value' => $ value ) ) ; if ( ! $ functionname = component_callback_exists ( $ component , 'inplace_editable' ) ) { throw new \ moodle_exception ( 'inplaceeditableerror' ) ; } $ tmpl = component_callback ( $ params [ 'component' ] , 'inplace_editable' , array ( $ params [ 'itemtype' ] , $ params [ 'itemid' ] , $ params [ 'value' ] ) ) ; if ( ! $ tmpl || ! ( $ tmpl instanceof \ core \ output \ inplace_editable ) ) { throw new \ moodle_exception ( 'inplaceeditableerror' ) ; } return $ tmpl -> export_for_template ( $ PAGE -> get_renderer ( 'core' ) ) ; }
docstring: Update any component's editable value assuming that component implements necessary callback
  
  @since Moodle 3.1
  @param string $component
  @param string $itemtype
  @param string $itemid
  @param string $value
docstring_tokens: Update any component s editable value assuming that component implements necessary callback