Guest User

Untitled

a guest
Jan 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. function my_module_node_add_modal_callback($js = FALSE) {
  2. global $user;
  3. if (!$js) {
  4. return "Javascript required";
  5. }
  6. ctools_include('node.pages', 'node', '');
  7. ctools_include('modal');
  8. ctools_include('ajax');
  9. ctools_add_js('auto-submit');
  10.  
  11.  
  12. // Create a blank node object.
  13. $node = (object) array(
  14. 'uid' => $user->uid,
  15. 'name' => (isset($user->name) ? $user->name : ''),
  16. 'type' => 'node_type',
  17. 'language' => LANGUAGE_NONE,
  18. );
  19.  
  20.  
  21. $form_state = array(
  22. 'title' => t('Add node'),
  23. 'ajax' => TRUE,
  24. );
  25.  
  26.  
  27. $form_state['build_info']['args'] = array($node);
  28. $output = ctools_modal_form_wrapper('node_type_node_form', $form_state);
  29.  
  30.  
  31.  
  32. if (!empty($form_state['executed'])) {
  33.  
  34. }
  35.  
  36.  
  37. print ajax_render($output);
  38. exit;
  39. }
  40.  
  41. if (!empty($form_state['executed'])) {
  42. $output = array();
  43. if ($form_state['nid']) {
  44. $node = node_load($form_state['nid']);
  45.  
  46.  
  47. $form_state = array(
  48. 'title' => t('Add node'),
  49. 'ajax' => TRUE,
  50. );
  51.  
  52.  
  53. $form_state['build_info']['args'] = array($node);
  54. $output = ctools_modal_form_wrapper('node_type_node_form', $form_state);
  55. }
  56. }
  57.  
  58. /**
  59. * Page callback to deliver node edit form via CTools AJAX/modal.
  60. *
  61. * @param boolean|null $js
  62. * TRUE if Javascript is enabled, NULL otherwise.
  63. * @param object $node
  64. * The node to edit.
  65. *
  66. * @return array
  67. * Array of Drupal Ajax Commands.
  68. */
  69. function pads_secure_file_edit_ajax($js, $node) {
  70. // Fallback if $js is not set.
  71. if (!$js) {
  72. module_load_include('inc', 'node', 'node.pages');
  73. return node_page_edit($node);
  74. }
  75.  
  76. ctools_include('modal');
  77. ctools_include('ajax');
  78.  
  79. $output = array();
  80. $type_name = node_type_get_name($node);
  81. $title = t('<em>Edit @type</em> @title', array(
  82. '@type' => $type_name,
  83. '@title' => $node->title,
  84. ));
  85. $form_state = array(
  86. 'title' => $title,
  87. 'ajax' => TRUE,
  88. 'build_info' => array(
  89. 'args' => array($node),
  90. ),
  91. );
  92. ctools_form_include_file($form_state, drupal_get_path('module', 'node') . '/node.pages.inc');
  93. $form_state['build_info']['args'] = array($node);
  94.  
  95. $output = ctools_modal_form_wrapper($node->type . '_node_form', $form_state);
  96.  
  97. if (!empty($form_state['executed'])) {
  98. $output = array();
  99. // If node submit, reload page.
  100. $triggering_element_id = array_key_exists('#id', $form_state['triggering_element']) ?
  101. $form_state['triggering_element']['#id'] : '';
  102. if (strpos($triggering_element_id, 'edit-submit') === 0) {
  103. $output[] = ctools_ajax_command_reload();
  104. }
  105. else {
  106. $output = array();
  107. }
  108. }
  109.  
  110. print ajax_render($output);
  111. drupal_exit();
  112. }
Add Comment
Please, Sign In to add comment