Commit beb958a5 authored by John Punzalan's avatar John Punzalan

Add Ability to news

parent 860a9c59
......@@ -52,6 +52,8 @@ class Esi_Management_News_Form {
$industry_id = isset( $_POST['radar_industry'] ) ? $_POST['radar_industry'] : array();
$function_id = isset( $_POST['radar_function'] ) ? $_POST['radar_function'] : array();
$technology_ids = isset( $_POST['technology_sub_id'] ) ? $_POST['technology_sub_id'] : array();
$ability_ids = isset( $_POST['ability_id'] ) ? $_POST['ability_id'] : array();
$post_id = isset( $_POST['post_id'] ) ? intval( $_POST['post_id'] ) : '';
......@@ -120,6 +122,7 @@ class Esi_Management_News_Form {
'industry_id' => $industry_id,
'function_id' => $function_id,
'technology_ids' => $technology_ids,
'ability_ids' => $ability_ids,
'post_id' => $post_id
);
......
......@@ -105,6 +105,7 @@ function esi_insert_new( $args = array() ) {
unset( $args['function_id'] );
$technology_ids = $args['technology_ids'];
unset( $args['technology_ids'] );
$ability_ids = $args['ability_ids'];
$radar_industry_id = esi_get_radar_by_industry($industry_id);
$radar_function_id = esi_get_radar_by_function($function_id);
......@@ -125,6 +126,7 @@ function esi_insert_new( $args = array() ) {
esi_save_news_industry($row_id, $industry_id);
esi_save_news_function($row_id, $function_id);
esi_save_list_technology_news($row_id, $technology_ids);
esi_save_list_news_ability($row_id, $ability_ids);
return $row_id;
}
......@@ -134,6 +136,7 @@ function esi_insert_new( $args = array() ) {
esi_save_news_industry($row_id, $industry_id);
esi_save_news_function($row_id, $function_id);
esi_save_list_technology_news($row_id, $technology_ids);
esi_save_list_news_ability($row_id, $ability_ids);
// do update method here
if ( $wpdb->update( $table_name, $args, array( 'id' => $row_id ) ) ) {
......@@ -373,3 +376,54 @@ function esi_get_list_selected_news_technology( $id = 0, $output = 'object' ) {
return $query;
}
/**
* Fetch technologies array
*
* @param int $news_id
* @param array $ability_ids
*
* @return array
*/
function esi_save_list_news_ability( $news_id = 0, $ability_ids = array() ) {
global $wpdb;
// Delete all current join from liaison table
$wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'esi_ability_news WHERE news_id = %d', $news_id));
// Insert new news_id ability_id relation
foreach ($ability_ids as $ability_id) {
$wpdb->insert(
$wpdb->prefix . "esi_ability_news",
array(
'ability_id' => $ability_id,
'news_id' => intval($news_id)
));
}
}
/**
* Fetch technologies array
*
* @param int $id
*
* @return array
*/
function esi_get_list_selected_news_ability( $id = 0, $output = 'object' ) {
global $wpdb;
// Get Selected technology mapping
$arrSelectedTechnology = $wpdb->get_results("SELECT * FROM " .$wpdb->prefix . "esi_ability_news WHERE news_id = " . $id, OBJECT_K);
if ($output == 'array') {
$array = array();
foreach ($arrSelectedTechnology as $selected) {
$array [] = $selected->ability_id;
}
$arrSelectedTechnology = $array;
}
return $arrSelectedTechnology;
}
......@@ -58,7 +58,8 @@ $function_news = esi_get_function_by_news($id);
$technologies = esi_get_list_technology();
$selectedTechnologies = esi_get_list_technology_news($id);
$technologies_selected = esi_get_list_selected_news_technology($id, 'array');
$abilities = esi_get_all_ability(array('number' => 10000));
$abilities_selected = esi_get_list_selected_news_ability($id, 'array');
add_thickbox();
?>
......@@ -239,6 +240,18 @@ add_thickbox();
<input type="date" name="publish_date" id="publish_date" class="regular-text" placeholder="<?php echo esc_attr( '', 'esi' ); ?>" value="<?php echo ($item)?esc_attr( explode(' ', $item->publish_date)[0] ):''; ?>" required="required" />
</td>
</tr>
<tr class="row-ability-id">
<th scope="row"><dsw
<label for="ability_id"><?php _e( 'Ability', 'esi' ); ?></label>
</th>
<td>
<select id="ability_id" class="chosen-select" name="ability_id[]" multiple="multiple">
<?php foreach ($abilities as $ability) : ?>
<option value="<?= $ability->id ?>" <?= (in_array($ability->id, $abilities_selected)) ? "selected='selected'" : ""?>><?= $ability->name ?></option>
<?php endforeach; ?>
</select><br />
</td>
</tr>
</tbody>
</table>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment