Fix issue with course icons not showing correctly when visibility is updated on course homepage and custom icons are defined in CSS theme - refs BT#9617

1.10.x
Yannick Warnier 11 years ago
parent 09180966a2
commit 3d124db010
  1. 82
      main/inc/ajax/course_home.ajax.php

@ -7,62 +7,68 @@
$action = $_GET['a']; $action = $_GET['a'];
switch ($action) { switch ($action) {
case 'set_visibility': case 'set_visibility':
require_once '../global.inc.php'; require_once '../global.inc.php';
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
if (api_is_allowed_to_edit(null,true)) { if (api_is_allowed_to_edit(null, true)) {
$tool_table = Database::get_course_table(TABLE_TOOL_LIST); $tool_table = Database::get_course_table(TABLE_TOOL_LIST);
$tool_info = api_get_tool_information($_GET["id"]); $tool_info = api_get_tool_information($_GET['id']);
$tool_visibility = $tool_info['visibility']; $tool_visibility = $tool_info['visibility'];
$tool_image = $tool_info['image']; $tool_image = $tool_info['image'];
if (api_get_setting('homepage_view') != 'activity_big') { if (api_get_setting('homepage_view') != 'activity_big') {
$new_image = Display::return_icon(str_replace('.gif','_na.gif',$tool_image), null, null, null, null, true); $tool_image = Display::return_icon($tool_image, null, null, null, null, true);
$tool_image = Display::return_icon($tool_image, null, null, null, null, true); $na_image = str_replace('.gif', '_na.gif', $tool_image);
} else { } else {
$tool_image = $tool_info['image']; // Display::return_icon() also checks in the main/css/{theme}/icons folder
$tool_image = (substr($tool_info['image'], 0, strpos($tool_info['image'], '.'))).'.png'; $tool_image = (substr($tool_info['image'], 0, strpos($tool_info['image'], '.'))).'.png';
$new_image = str_replace('.png','_na.png',$tool_image); $tool_image = Display::return_icon(
$new_image = api_get_path(WEB_IMG_PATH).'icons/64/'.$new_image; $tool_image,
$tool_image = api_get_path(WEB_IMG_PATH).'icons/64/'.$tool_image; get_lang(ucfirst($too_info['name'])),
null,
ICON_SIZE_BIG,
null,
true
);
$na_image = str_replace('.png', '_na.png', $tool_image);
} }
$requested_image = ($tool_visibility == 0 ) ? $tool_image : $new_image; $requested_image = ($tool_visibility == 0 ) ? $tool_image : $na_image;
$requested_clase = ($tool_visibility == 0 ) ? 'visible' : 'invisible'; $requested_class = ($tool_visibility == 0 ) ? 'visible' : 'invisible';
$requested_message = ($tool_visibility == 0 ) ? 'is_active' : 'is_inactive'; $requested_message = ($tool_visibility == 0 ) ? 'is_active' : 'is_inactive';
$requested_view = ($tool_visibility == 0 ) ? 'visible.png' : 'invisible.png'; $requested_view = ($tool_visibility == 0 ) ? 'visible.png' : 'invisible.png';
$requested_visible = ($tool_visibility == 0 ) ? 1 : 0; $requested_visible = ($tool_visibility == 0 ) ? 1 : 0;
$requested_view = ($tool_visibility == 0 ) ? 'visible.png' : 'invisible.png'; $requested_view = ($tool_visibility == 0 ) ? 'visible.png' : 'invisible.png';
$requested_visible = ($tool_visibility == 0 ) ? 1 : 0; $requested_visible = ($tool_visibility == 0 ) ? 1 : 0;
//HIDE AND REACTIVATE TOOL //HIDE AND REACTIVATE TOOL
if ($_GET["id"] == strval(intval($_GET["id"]))) { if ($_GET["id"] == strval(intval($_GET["id"]))) {
/* -- session condition for visibility /* -- session condition for visibility
if (!empty($session_id)) { if (!empty($session_id)) {
$sql = "select session_id FROM $tool_table WHERE id='".$_GET["id"]."' AND session_id = '$session_id'"; $sql = "select session_id FROM $tool_table WHERE id='".$_GET["id"]."' AND session_id = '$session_id'";
$rs = Database::query($sql); $rs = Database::query($sql);
if (Database::num_rows($rs) > 0) { if (Database::num_rows($rs) > 0) {
$sql="UPDATE $tool_table SET visibility=$requested_visible WHERE id='".$_GET["id"]."' AND session_id = '$session_id'"; $sql="UPDATE $tool_table SET visibility=$requested_visible WHERE id='".$_GET["id"]."' AND session_id = '$session_id'";
} else { } else {
$sql_select = "select * FROM $tool_table WHERE id='".$_GET["id"]."'"; $sql_select = "select * FROM $tool_table WHERE id='".$_GET["id"]."'";
$res_select = Database::query($sql_select); $res_select = Database::query($sql_select);
$row_select = Database::fetch_array($res_select); $row_select = Database::fetch_array($res_select);
$sql = "INSERT INTO $tool_table(name,link,image,visibility,admin,address,added_tool,target,category,session_id) $sql = "INSERT INTO $tool_table(name,link,image,visibility,admin,address,added_tool,target,category,session_id)
VALUES('{$row_select['name']}','{$row_select['link']}','{$row_select['image']}','0','{$row_select['admin']}','{$row_select['address']}','{$row_select['added_tool']}','{$row_select['target']}','{$row_select['category']}','$session_id')"; VALUES('{$row_select['name']}','{$row_select['link']}','{$row_select['image']}','0','{$row_select['admin']}','{$row_select['address']}','{$row_select['added_tool']}','{$row_select['target']}','{$row_select['category']}','$session_id')";
} }
} else $sql="UPDATE $tool_table SET visibility=$requested_visible WHERE id='".$_GET["id"]."'"; } else $sql="UPDATE $tool_table SET visibility=$requested_visible WHERE id='".$_GET["id"]."'";
*/ */
$sql="UPDATE $tool_table SET visibility=$requested_visible WHERE c_id = $course_id AND id='".intval($_GET['id'])."'"; $sql = "UPDATE $tool_table SET visibility=$requested_visible WHERE c_id = $course_id AND id='" . intval($_GET['id']) . "'";
Database::query($sql); Database::query($sql);
} }
$response_data = array( $response_data = array(
'image' => $requested_image, 'image' => $requested_image,
'tclass' => $requested_clase, 'tclass' => $requested_class,
'message' => $requested_message, 'message' => $requested_message,
'view' => $requested_view 'view' => $requested_view
); );
echo json_encode($response_data); echo json_encode($response_data);
} }
break; break;
case 'show_course_information' : case 'show_course_information' :

Loading…
Cancel
Save