diff --git includes/kaltura.notification.inc includes/kaltura.notification.inc index 378ab9b..44b5ccc 100644 --- includes/kaltura.notification.inc +++ includes/kaltura.notification.inc @@ -149,53 +149,52 @@ function kaltura_notify_node_entry_add($type, $notification_data) { $partner_data[$splited[0]] = $splited[1]; } } - $node->title = $notification_data['name']; - $node->body = '';//'test '. time(); // print_r($notification_data,TRUE).PHP_EOL.print_r($_REQUEST,TRUE); + $values['title'] = $notification_data['name']; $node->type = 'kaltura_'. $type; - $node->uid = ($notification_data['puser_id'])? $notification_data['puser_id']: FALSE; + $uid = ($notification_data['puser_id'])? $notification_data['puser_id']: FALSE; if ($node->uid === FALSE) { - $node->uid = ($partner_data['user_id'])? $partner_data['user_id']: 0; - } - $node->status = 1; - $node->created = time(); - $node->comment = FALSE; - $node->changed = time(); - $node->promote = 0; - $node->sticky = 0; - $node->kstatus = $notification_data['status']; + $uid = ($partner_data['user_id'])? $partner_data['user_id']: 0; + } + $values['uid'] = $uid; + $values['name'] = db_result(db_query("SELECT name FROM {users} WHERE uid = %d", $uid)); + $values['kstatus'] = $notification_data['status']; if ($partner_data['entry_as_comment'] == 'yes') { - $node->kaltura_video_comment = 1; + $values['kaltura_video_comment'] = 1; } else { - $node->kaltura_video_comment = 0; + $values['kaltura_video_comment'] = 0; } - kaltura_push_extra_data($node, $notification_data); - $node->kaltura_entry_data = serialize(array($notification_data)); - $node->kaltura_tags = $notification_data['tags']; + kaltura_push_extra_data($values, $notification_data); + $values['kaltura_entry_data'] = serialize(array($notification_data)); + $values['kaltura_tags'] = $notification_data['tags']; if ($type == 'entry') { - $node->kaltura_entryId = $notification_data['entry_id']; + $values['kaltura_entryId'] = $notification_data['entry_id']; } else { if (WORK_WITH_KSHOW) { - $node->kaltura_entryId = $notification_data['kshow_id']; + $values['kaltura_entryId'] = $notification_data['kshow_id']; } else { - $node->kaltura_entryId = $notification_data['show_entry_id']; + $values['kaltura_entryId'] = $notification_data['show_entry_id']; } } - $node->kaltura_admin_tags = ''; + $values['kaltura_admin_tags'] = ''; if (($type == 'mix' && $partner_data['create_kshow'] == 'yes') || $type == 'entry') { - node_save($node); - module_invoke('node_kaltura_'. $type, 'hook_insert', $node); + $form_state = array(); + $form_state['values'] = $values; + $form_state['values']['op'] = t('Save'); + $form_state['values']['author'] = $values['name']; + module_load_include('inc', 'node', 'node.pages'); + drupal_execute($node->type . '_node_form', $form_state, $node); } } /* * helper function to inject the node object with some extra details from the notification */ -function kaltura_push_extra_data(&$node, $data) { +function kaltura_push_extra_data(&$values, $data) { $fields = array( 'kaltura_media_type' => 'media_type', 'kaltura_duration' => 'length_in_msecs', @@ -216,10 +215,10 @@ function kaltura_push_extra_data(&$node, $data) { ); foreach ($fields as $node_key => $field) { if ($data[$field]) { - $node->$node_key = $data[$field]; + $values[$node_key] = $data[$field]; } if ($data[$field] && $field == 'length_in_msecs') { - $node->$node_key = (int)($data[$field]/1000); + $values[$node_key] = (int)($data[$field]/1000); } } } \ No newline at end of file diff --git plugins/node_kaltura_entry/node_kaltura_entry.module plugins/node_kaltura_entry/node_kaltura_entry.module index 4d604f3..891485b 100644 --- plugins/node_kaltura_entry/node_kaltura_entry.module +++ plugins/node_kaltura_entry/node_kaltura_entry.module @@ -251,123 +251,120 @@ function node_kaltura_entry_node_info() { */ function node_kaltura_entry_form(&$node, &$param) { global $user; + + // if this is a new node, HIDE all form elements + if (empty($node->nid)) { + $form['#after_build'][] = 'node_kaltura_entry_hide'; + } // TODO: change this function for new CW (???) $type = node_get_types('type', $node); - if ($node->nid) { - $form['title'] = array( - '#type' => 'textfield', - '#title' => check_plain($type->title_label), - '#required' => TRUE, - '#default_value' => $node->title, - '#weight' => -5 - ); + $form['title'] = array( + '#type' => 'textfield', + '#title' => check_plain($type->title_label), + '#required' => TRUE, + '#default_value' => $node->title, + '#weight' => -5, + ); - $form['body_filter']['body'] = array( - '#type' => 'textarea', - '#title' => check_plain($type->body_label), - '#default_value' => $node->body, - '#rows' => 20, - '#required' => FALSE - ); + $form['kaltura_tags'] = array( + '#type' => 'hidden', + '#title' => 'tags', + '#required' => FALSE, + '#default_value' => $node->tags, + ); - $form['kaltura_tags'] = array( - '#type' => 'hidden', - '#title' => 'tags', - '#required' => FALSE, - '#default_value' => $node->tags - ); - - $form['kaltura_entryId'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_entryId - ); - $form['media_preview'] = array( - '#type' => 'item', - '#title' => t('Media'), - '#value' => kaltura_replace_tags(theme('node_kaltura_entry_entryId', $node, 0)), - ); + $form['kaltura_entryId'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_entryId + ); + $form['media_preview'] = array( + '#type' => 'item', + '#title' => t('Media'), + '#value' => kaltura_replace_tags(theme('node_kaltura_entry_entryId', $node, 0)), + ); - $form['kaltura_admin_tags'] = array( - '#type' => 'hidden', - '#title' => 'admin tags', - '#required' => FALSE, - '#default_value' => $node->kaltura_admin_tags - ); - $form['kstatus'] = array( - '#type' => 'hidden', - '#default_value' => $node->kstatus - ); - $form['kaltura_total_rank'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_total_rank - ); - $form['kaltura_rank'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_rank - ); - $form['kaltura_votes'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_votes - ); - $form['kaltura_plays'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_plays - ); - $form['kaltura_views'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_views - ); - $form['kaltura_media_date'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_media_date - ); - $form['kaltura_download_url'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_download_url - ); - $form['kaltura_height'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_height - ); - $form['kaltura_width'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_width - ); - $form['kaltura_source_link'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_source_link - ); - $form['kaltura_source_id'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_source_id - ); - $form['kaltura_source'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_source - ); - $form['kaltura_partner_data'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_partner_data - ); - $form['kaltura_thumbnail_url'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_thumbnail_url - ); - $form['kaltura_duration'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_duration - ); - $form['kaltura_media_type'] = array( - '#type' => 'hidden', - '#default_value' => $node->kaltura_media_type - ); - } - else { - $partner_data = "user_id@". $user->uid; - $cw_vars = kaltura_format_cw_vars(array( - 'kshow_id' => -2, - 'partner_data' => $partner_data, - )); + $form['kaltura_admin_tags'] = array( + '#type' => 'hidden', + '#title' => 'admin tags', + '#required' => FALSE, + '#default_value' => $node->kaltura_admin_tags + ); + $form['kstatus'] = array( + '#type' => 'hidden', + '#default_value' => $node->kstatus + ); + $form['kaltura_total_rank'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_total_rank + ); + $form['kaltura_rank'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_rank + ); + $form['kaltura_votes'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_votes + ); + $form['kaltura_plays'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_plays + ); + $form['kaltura_views'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_views + ); + $form['kaltura_media_date'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_media_date + ); + $form['kaltura_download_url'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_download_url + ); + $form['kaltura_height'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_height + ); + $form['kaltura_width'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_width + ); + $form['kaltura_source_link'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_source_link + ); + $form['kaltura_source_id'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_source_id + ); + $form['kaltura_source'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_source + ); + $form['kaltura_partner_data'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_partner_data + ); + $form['kaltura_thumbnail_url'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_thumbnail_url + ); + $form['kaltura_duration'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_duration + ); + $form['kaltura_media_type'] = array( + '#type' => 'hidden', + '#default_value' => $node->kaltura_media_type + ); + $partner_data = "user_id@". $user->uid; + $cw_vars = kaltura_format_cw_vars(array( + 'kshow_id' => -2, + 'partner_data' => $partner_data, + )); + + // add the new video behavior only if the node hasn't been created + if (empty($node->nid)) { drupal_add_js("Drupal.behaviors.kalturaEntryModal = function(context){ kalturaInitModalBox('" . url("kaltura/contribution_wizard/". $cw_vars) ."'); };", 'inline'); } return $form; @@ -395,23 +392,21 @@ function node_kaltura_entry_theme() { return $themes; } -/* - * Implementation of hook_form_alter(). - * - * in add mode, we want to hide fields and settings that are not relevant +/** + * After build function that hides all fields for the node create form */ -function node_kaltura_entry_form_alter(&$form, &$form_state, $form_id) { - if ($form_id == 'kaltura_entry_node_form' && !$form['nid']['#value']) { - if (isset($form["type"]) && $form["type"]["#value"] ."_node_form" == $form_id) { - unset($form["author"]); - unset($form["taxonomy"]); - unset($form["revision_information"]); - unset($form["log"]); - unset($form['menu']); +function node_kaltura_entry_hide($form, &$form_state) { + // Iterate over element children; resetting array keys to access last index. + if ($children = array_values(element_children($form))) { + foreach ($children as $index => $item) { + $element = $form[$item]; + $form[$item]['#access'] = FALSE; + // recurse + node_kaltura_entry_hide($element, $form_state); } } + return $form; } - /* * helper function to inject the node with tags and admin tags to the * corresponding taxonomy vocabularies