Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. $element['subform']['field_course']['widget']['#ajax'] = [
  2. 'callback' => 'get_competency',
  3. 'event' => 'change',
  4. 'method' => 'replace',
  5. 'wrapper' => '#edit-competency-'.$uuid_value,
  6. ];
  7.  
  8. }
  9.  
  10.  
  11.  
  12. function get_competency(array &$element, FormStateInterface $form_state, $context) {
  13.  
  14.  
  15. $triggeringElement = $form_state->getTriggeringElement();
  16. $value = $triggeringElement['#value'];
  17.  
  18. $gt = Drupal::service('generic_templates.utility');
  19. $options = $gt->getCompetency($value);
  20. $options = ["_none" => "- Select a value -"] + $options;
  21. $wrapper_id = $triggeringElement["#ajax"]["wrapper"];
  22. unset($triggeringElement["#value"]);
  23. unset($triggeringElement["#ajax"]);
  24. $triggeringElement['#title'] = "Competency";
  25. $triggeringElement['#prefix'] = '<div id="'.$wrapper_id.'">';
  26. $triggeringElement['#suffix'] = '</div>';
  27.  
  28. $triggeringElement['#options'] = $options;
  29. $triggeringElement['#default_value'] = NULL;
  30. $triggeringElement['#field_name'] = " field_competency";
  31. $triggeringElement['#parents'] =
  32. [
  33. "field_configurations",
  34. 0,
  35. "subform",
  36. "field_configuration",
  37. 0,
  38. "subform",
  39. "field_score",
  40. 0,
  41. "subform",
  42. "field_competency",
  43. ];
  44.  
  45. $triggeringElement["#array_parents"] = [
  46. "field_configurations",
  47. "widget",
  48. 0,
  49. "subform",
  50. "field_configuration",
  51. "widget",
  52. 0,
  53. "subform",
  54. "field_score",
  55. "widget",
  56. 0,
  57. "subform",
  58. "field_competency",
  59. "widget",
  60. ];
  61. $triggeringElement["#attributes"]["data-drupal-selector"] = str_replace("course","competency", $triggeringElement["#attributes"]["data-drupal-selector"]);
  62. $triggeringElement["#name"] = str_replace("course","competency", $triggeringElement["#name"]);
  63. $id = explode('--',$triggeringElement["#id"])[0];
  64. $triggeringElement["#id"] = str_replace("course","competency", $id);
  65. return $triggeringElement;
  66.  
  67. }
  68.  
  69. use DrupalCoreAjaxAjaxResponse;
  70. use DrupalCoreAjaxHtmlCommand;
  71.  
  72.  
  73. /**
  74. * Implements hook_field_widget_WIDGET_TYPE_form_alter().
  75. */
  76. function modulename_field_widget_entity_reference_paragraphs_form_alter(&$element, &$form_state, $context) {
  77.  
  78. $element['subform']['field_course']['widget']['#ajax'] = [
  79. 'callback' => 'get_competency',
  80. 'event' => 'change',
  81. 'method' => 'html',
  82. 'wrapper' => 'edit-competency-'.$uuid_value,
  83. ];
  84.  
  85. $element['subform']['field_competency']['widget']['#attributes']['id']= 'edit-competency-'.$uuid_value;
  86.  
  87. }
  88.  
  89.  
  90.  
  91. function get_competency(array &$element, FormStateInterface $form_state, $context) {
  92.  
  93. $triggeringElement = $form_state->getTriggeringElement();
  94. $value = $triggeringElement['#value'];
  95.  
  96. $gt = Drupal::service('generic_templates.utility');
  97. $options = $gt->getCompetency($value);
  98. $options = ["_none" => "- Select a value -"] + $options;
  99. $wrapper_id = $triggeringElement["#ajax"]["wrapper"];
  100.  
  101. $gt = Drupal::service('generic_templates.utility');
  102. $options = $gt->getCompetency($value);
  103. $options = ["_none" => "- Select a value -"] + $options;
  104. $renderedField = '';
  105.  
  106. foreach ($options as $key => $value) {
  107. $renderedField .= "<option value='".$key."'>".$value."</option>";
  108. }
  109.  
  110. $response = new AjaxResponse();
  111. $response->addCommand(new HtmlCommand('#'.$wrapper_id, $renderedField));
  112. return $response;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement