'select', '#title' => t('Title of the Project'), '#options' => _list_of_project_titles(), '#default_value' => $selected, '#ajax' => array( 'callback' => 'arduino_project_details_callback' ) ); if (!$url_project_id) { $form['arduino_project_details'] = array( '#type' => 'item', '#markup' => '
' ); $form['intro_selected_project'] = array( '#type' => 'item', '#markup' => '
' ); $form['step'] = array( '#type' => 'select', '#title' => t('Title of the Step'), '#options' => _step_information($selected), //'#default_value' => $chapter_default_value, '#prefix' => '
', '#suffix' => '
', '#validated' => TRUE, '#tree' => TRUE, '#ajax' => array( 'callback' => 'ajax_bulk_step_details_list_callback' ), '#states' => array( 'invisible' => array( ':input[name="arduino_project"]' => array( 'value' => 0 ) ) ) ); $form['step_selected_project'] = array( '#type' => 'item', '#markup' => '
' ); $form['selected_step_images'] = array( '#type' => 'item', '#markup' => '
' ); } //!$url_project_id else { $project_default_value = $url_project_id; $form['arduino_project_details'] = array( '#type' => 'item', '#markup' => '
' . _project_details($project_default_value) . '
' ); $form['intro_selected_project'] = array( '#type' => 'item', '#markup' => '
' . _project_intro_information($project_default_value) . '
' ); $form['step'] = array( '#type' => 'select', '#title' => t('Title of the Step'), '#options' => _step_information($project_default_value), //'#default_value' => $chapter_default_value, '#prefix' => '
', '#suffix' => '
', '#validated' => TRUE, '#tree' => TRUE, '#ajax' => array( 'callback' => 'ajax_bulk_step_details_list_callback' ), '#states' => array( 'invisible' => array( ':input[name="arduino_project"]' => array( 'value' => 0 ) ) ) ); $form['step_selected_project'] = array( '#type' => 'item', '#markup' => '
' ); $form['selected_step_images'] = array( '#type' => 'item', '#markup' => '
' ); } return $form; } function ajax_bulk_step_details_list_callback($form, $form_state) { $commands = array(); $project_default_value = $form_state['values']['arduino_project']; $step_default_value = $form_state['values']['step']; if ($step_default_value != 0) { $commands[] = ajax_command_html('#ajax_step_selected_project', _step_project_details($project_default_value, $step_default_value)); $commands[] = ajax_command_html('#ajax_selected_step_images', _selected_step_image_details($step_default_value)); } //$step_default_value != 0 else { $commands[] = ajax_command_html('#ajax_selected_step', ''); $commands[] = ajax_command_data('#ajax_selected_step', 'form_state_value_select', $form_state['values']['step']); } return array( '#type' => 'ajax', '#commands' => $commands ); } function _step_information($project_default_value) { $proposal_id = $project_default_value; $steps_list = array( '0' => 'Please select...' ); /*$book_chapters_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number ASC", $preference_id);*/ $query = db_select('arduino_projects_blog_step'); $query->fields('arduino_projects_blog_step'); $query->condition('proposal_id', $proposal_id); $query->condition('approval_status', 1); $query->orderBy('number', 'ASC'); $steps_q = $query->execute(); while ($steps_data = $steps_q->fetchObject()) { $steps_list[$steps_data->number] = $steps_data->number . '. ' . $steps_data->name; } return $steps_list; } function arduino_project_details_callback($form, $form_state) { $commands = array(); $project_default_value = $form_state['values']['arduino_project']; if ($project_default_value != 0) { $form['arduino_project_details']['#markup'] = _project_details($project_default_value); $arduino_project_details = _project_information($project_default_value); $provider = user_load($arduino_project_details->uid); if ($arduino_project_details->uid > 0) { $commands[] = ajax_command_html('#ajax_selected_project', _project_intro_information($project_default_value)); $form['step']['#options'] = _step_information($project_default_value); $commands[] = ajax_command_replace('#ajax_select_step_list', drupal_render($form['step'])); } //$arduino_project_details->uid > 0 else { $commands[] = ajax_command_html('#ajax_selected_project', _project_intro_information($project_default_value)); $form['step']['#options'] = _step_information($project_default_value); $commands[] = ajax_command_replace('#ajax_select_step_list', drupal_render($form['step'])); //$commands[] = ajax_command_html('#ajax_selected_project', ''); } $commands[] = ajax_command_html('#ajax_project_details', _project_details($project_default_value)); $form['step']['#options'] = _step_information($project_default_value); $commands[] = ajax_command_replace('#ajax_select_step_list', drupal_render($form['step'])); //$commands[] = ajax_command_html('#ajax_step_selected_project', _step_project_details($project_default_value)); $commands[] = ajax_command_html('#ajax_selected_project', _project_intro_information($project_default_value)); } //$project_default_value != 0 else { // $form['lab_experiment_list']['#options'] = _ajax_get_experiment_list(); // $commands[] = ajax_command_replace('#ajax_selected_experiment', drupal_render($form['lab_experiment_list'])); $commands[] = ajax_command_html('#ajax_project_details', ''); $commands[] = ajax_command_html('#ajax_selected_project', ''); //$commands[] = ajax_command_html('#ajax_selected_project', ''); //$commands[] = ajax_command_html('#ajax_selected_project', ''); //$commands[] = ajax_command_data('#ajax_selected_project', 'form_state_value_select', $form_state['values']['arduino_project']); } return array( '#type' => 'ajax', '#commands' => $commands ); } function bootstrap_table_format($headers, $rows) { $thead = ""; $tbody = ""; foreach ($headers as $header) { $thead .= "{$header}"; } //$headers as $header foreach ($rows as $row) { $tbody .= ""; foreach ($row as $data) { $tbody .= "{$data}"; } //$row as $data $tbody .= ""; } //$rows as $row $table = " {$thead}{$tbody}
"; return $table; } /*****************************************************/ function _list_of_project_titles() { $arduino_project_titles = array( '0' => 'Please select...' ); //$lab_titles_q = db_query("SELECT * FROM {arduino_projects_blog_proposal} WHERE solution_display = 1 ORDER BY lab_title ASC"); $query = db_select('arduino_projects_blog_proposal'); $query->fields('arduino_projects_blog_proposal'); $query->condition('approval_status', 3); $query->orderBy('project_title', 'ASC'); $arduino_project_titles_q = $query->execute(); while ($arduino_project_titles_data = $arduino_project_titles_q->fetchObject()) { $arduino_project_titles[$arduino_project_titles_data->id] = $arduino_project_titles_data->project_title . ' (Proposed by ' . $arduino_project_titles_data->contributor_name . ')'; } //$arduino_project_titles_data = $arduino_project_titles_q->fetchObject() return $arduino_project_titles; } function _project_information($proposal_id) { $query = db_select('arduino_projects_blog_proposal'); $query->fields('arduino_projects_blog_proposal'); $query->condition('id', $proposal_id); $query->condition('approval_status', 3); $arduino_project_q = $query->execute(); $project_data = $arduino_project_q->fetchObject(); if ($project_data) { return $project_data; } //$project_data else { return 'Not found'; } } function _project_details($project_default_value) { $arduino_project_details = _project_information($project_default_value); if ($project_default_value != 0) { if($arduino_project_details->reference != NULL){ $url = '~(?:(https?)://([^\s<]+)|(www\.[^\s<]+?\.[^\s<]+))(?$0', $arduino_project_details->reference); }else{ $reference = 'Not provided'; } $form['arduino_project_details']['#markup'] = 'About the Project
' . ''; $details = $form['arduino_project_details']['#markup']; return $details; } //$project_default_value != 0 } function _project_intro_information($project_default_value){ $proposal_id = $project_default_value; $intro_query = db_select('arduino_projects_blog_introduction_step'); $intro_query->fields('arduino_projects_blog_introduction_step'); $intro_query->condition('proposal_id', $proposal_id); $intro_query_result = $intro_query->execute(); $intro_query_data = $intro_query_result->fetchObject(); $form['intro_selected_project']['#markup'] = convertLinkToEmbed($intro_query_data->demo_video, 750, 350) . '
' . $intro_query_data->description; $details = $form['intro_selected_project']['#markup']; return $details; } function _step_project_details($project_default_value, $step_default_value) { $proposal_id = $project_default_value; $step_id = $step_default_value; //var_dump($proposal_id);die; $query = db_select('arduino_projects_blog_step'); $query->fields('arduino_projects_blog_step'); $query->condition('proposal_id', $proposal_id); $query->condition('number', $step_id); $query->orderBy('number', 'ASC'); $steps_q = $query->execute(); $steps_data = $steps_q->fetchObject(); $step_info_query = db_select('arduino_projects_blog_step_information'); $step_info_query->fields('arduino_projects_blog_step_information'); $step_info_query->condition('step_id', $steps_data->id); $step_info_query->condition('approval_status', 1); $steps_info_data = $step_info_query->execute()->fetchObject(); if($steps_info_data->video) { $form['step_selected_project']['#markup'] = '

Step ' . $steps_data->number . ': ' . $steps_data->name . '

Description: ' . $steps_info_data->description . '

' . convertLinkToEmbed($steps_info_data->video, 750, 350); } else{ $form['step_selected_project']['#markup'] = '

Step ' . $steps_data->number . ': ' . $steps_data->name . '

Description: ' . $steps_info_data->description . '

'; } $details = $form['step_selected_project']['#markup']; return $details; } function _selected_step_image_details($step_default_value){ $id = $step_default_value; $query = db_select('arduino_projects_blog_step'); $query->fields('arduino_projects_blog_step'); $query->condition('proposal_id', $id); $query->orderBy('number', 'ASC'); $steps_q = $query->execute(); $steps_data = $steps_q->fetchObject(); $step_images_query = db_select('arduino_projects_blog_step_files'); $step_images_query->fields('arduino_projects_blog_step_files'); $step_images_query->condition('step_id', $steps_data->id); $step_images_result = $step_images_query->execute(); //var_dump($step_images_result->rowCount());die; while($step_images_data = $step_images_result->fetchObject()){ if($step_images_data){ $form['selected_step_images' . $step_images_data->id]['#markup'] = 'filepath . ' />'; } } $details = $form['selected_step_images']['#markup']; return $details; }