/** * Saves evidence text in rafl tables * @author David Drummond <*****@*****.**>, Daniel Dammann <*****@*****.**> */ function store_evidence($share_id, $success_item_id, $unit_item_id, $webcelltext) { global $CFG, $USER; // note: including more than we might need to avoid regression bugs - too much work right now to analyse and cull require_once 'includes/rlsmart/header.php'; require_once "includes/get_sql_value_string.php"; require_once 'includes/common/KT_common.php'; require_once 'includes/tng/tNG.inc.php'; require_once 'userviews_class.php'; require_once "classes/class_comment_evidence_count.php"; // Make unified connection variable // todo is this still necessary? $conn_smart = new KT_connection($smart, $CFG->dbname); $colname_rs_evidence = "-1"; if (isset($success_item_id)) { $colname_rs_evidence = $success_item_id; } $colname_rs_evidence2 = "-1"; if (isset($_SESSION['USER']->id)) { $colname_rs_evidence2 = $_SESSION['USER']->id; } mysql_select_db($CFG->dbname); //mysql_select_db($CFG->dbname, $smart); // Check whether this evidence already exists // INNER JOIN share_cohort_members ON {$_SESSION['RealS_prefix']}share_cohort_members.s_c_m_member = {$_SESSION['RealS_prefix']}webcells.webcell_member // AND {$_SESSION['RealS_prefix']}share_cohort_members.s_c_m_share = " . GetSQLValueString($_POST['share_id'], 'int') . " $query_rs_evidence = sprintf("SELECT {$_SESSION['RealS_prefix']}items.item_id, \n\t\t {$_SESSION['RealS_prefix']}items.*,\n\t\t {$_SESSION['RealS_prefix']}webcells.*,\n\t\t {$_SESSION['RealS_prefix']}rafl_res.*\n\t FROM {$_SESSION['RealS_prefix']}items\n\t\t INNER JOIN {$_SESSION['RealS_prefix']}webcells \n ON {$_SESSION['RealS_prefix']}items.item_webcell = {$_SESSION['RealS_prefix']}webcells.webcell_id\n\t\t INNER JOIN {$_SESSION['RealS_prefix']}rafl_res \n ON {$_SESSION['RealS_prefix']}items.item_id = {$_SESSION['RealS_prefix']}rafl_res.rafl_res_item\n\t WHERE {$_SESSION['RealS_prefix']}items.item_parent_item = %s\n\t \tAND {$_SESSION['RealS_prefix']}items.item_default_type = 6\n\t \tAND rafl_res_share = " . GetSQLValueString($share_id, "int") . "\n\t \tAND {$_SESSION['RealS_prefix']}webcells.webcell_member = %s", GetSQLValueString($colname_rs_evidence, "int"), GetSQLValueString($colname_rs_evidence2, "int")); //$rs_evidence = mysql_query($query_rs_evidence, $smart) or die(mysql_error()); $rs_evidence = mysql_query($query_rs_evidence) or die(mysql_error()); $row_rs_evidence = mysql_fetch_assoc($rs_evidence); $totalRows_rs_evidence = mysql_num_rows($rs_evidence); //debugging($query_rs_evidence); //debugging($totalRows_rs_evidence); // todo decide whether this is needed // HACK: Cos tinyMce goes mad with escaping //$_POST["webcelltext"] = str_replace('\"', '"', $_POST["webcelltext"]); if ($totalRows_rs_evidence == 0) { //debugging('Inserting new RAFL webcell'); $webcell_id = null; $item_id = null; $webcell = new stdclass(); $webcell->webcell_title = 'Evidence'; $webcell->webcell_text = addslashes($webcelltext); $webcell->webcell_member = $USER->id; $webcell->webcell_school = $_SESSION["RealS_schoolid"]; if (!($webcell_id = insert_record('rafl_webcells', $webcell, true, 'webcell_id'))) { // todo replace insert_record with something more appropriate error('rafl_webcells INSERT failed'); } //debugging('webcell: ' . $webcell_id); $items = new stdclass(); $items->item_webcell = $webcell_id; $items->item_parent_item = $success_item_id; $items->item_school = $_SESSION["RealS_schoolid"]; $items->item_default_type = 6; //$items->item_access = if (!($item_id = insert_record('rafl_items', $items, true, 'item_id'))) { // todo replace insert_record with something more appropriate error('rafl_items INSERT failed'); } //debugging('item: ' . $item_id); $rafl_res = new stdclass(); $rafl_res->rafl_res_item = $item_id; //$rafl_res->rafl_res_date = now(); $rafl_res->rafl_res_rate = 1; $rafl_res->rafl_res_share = $share_id; if (!insert_record('rafl_rafl_res', $rafl_res, true, 'rafl_res_id')) { // todo replace insert_record with something more appropriate error('rafl_rafl_res INSERT failed'); } $rating = 1; } else { if (!empty($webcelltext)) { //debugging('Updating RAFL webcell ' . $row_rs_evidence['webcell_id']); $sql = "UPDATE {$CFG->prefix}rafl_webcells SET webcell_text = '" . addslashes($webcelltext) . "' WHERE webcell_id = " . $row_rs_evidence['webcell_id']; if (!execute_sql($sql)) { error('rafl_webcells UPDATE failed'); } // todo rafl_res.rafl_res_date $rating = $row_rs_evidence['rafl_res_rate']; } else { //debugging(4); // todo delete debugging('Deleting RAFL webcell ' . $row_rs_evidence['webcell_id']); $rating = "0"; } } // If evidence exists, else new evidence if ($totalRows_rs_evidence == 0) { $query = "SELECT MAX(item_id) AS evidence_item_id\n\t\t FROM {$_SESSION['RealS_prefix']}items"; //$rows = mysql_query($query, $smart) or die(mysql_error()); $rows = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_assoc($rows); $evidence_item_id = $row['evidence_item_id']; } else { $evidence_item_id = $row_rs_evidence['item_id']; } // todo test what this does // AFTER evidence creation save this member status count for unread evidence $obj_count = new commentEvidenceCount(); $obj_count->increaseEvidenceCounter($unit_item_id, $evidence_item_id, $share_id); return $rating; }
/** * Delete an item. * Accepts the following GET vars: * itemId Integer of item_id * Returns 'item deleted' on success. */ // Start the session, because we'll need the user ID //session_start(); // Gimme libraries require_once "../../config.php"; require_once 'includes/rlsmart/header.php'; require_once "classes/class_comment_evidence_count.php"; require_once 'userviews_class.php'; // Bomb out if we haven't got itemId if (!isset($_GET['itemId'])) { exit(0); } // Quick DB query to find out if we've already reported this item // giving a cursory debounce. $itemQuery = "select webcell_text,mb_firstname,mb_surmame,item_id\r\n\t\t\tfrom {$_SESSION['RealS_prefix']}items, {$_SESSION['RealS_prefix']}webcells, {$_SESSION['RealS_prefix']}members\r\n\t\t\twhere item_webcell=webcell_id\r\n\t\t\t\tand webcell_member=mb_id\r\n\t\t\t\tand item_id=" . mysql_escape_string($_GET['itemId']) . "\r\n\t\t\t\tand mb_id=" . mysql_escape_string($_SESSION['USER']->id); $itemResult = mysql_query($itemQuery); if (mysql_num_rows($itemResult) > 0) { $itemRow = mysql_fetch_assoc($itemResult); $deleteResult = mysql_query("delete from {$_SESSION['RealS_prefix']}items\r\n\t\t\t\t\t\twhere item_id=" . $itemRow['item_id']); // Delete the notification counter $obj_count = new commentEvidenceCount(); $obj_count->resetCommentCounterForAllViewers($_GET['share_id']); echo "Item deleted"; } else { echo ""; }
// Gimme libraries require_once "../../config.php"; require_once 'includes/rlsmart/header.php'; require_once "includes/get_sql_value_string.php"; require_once 'includes/common/KT_common.php'; require_once 'includes/tng/tNG.inc.php'; require_once 'userviews_class.php'; require_once "classes/class_comment_evidence_count.php"; $colname_rs_evidence2 = "-1"; // The current user views their own evidence if (isset($_SESSION['USER']->id)) { $colname_rs_evidence2 = $_SESSION['USER']->id; } // The mentor views some learners evidence if (isset($_GET['mb_id'])) { $colname_rs_evidence2 = $_GET['mb_id']; } mysql_select_db($CFG->dbname, $smart); // AND webcell_member = " . GetSQLValueString($colname_rs_evidence2, "int") . " $sql = "SELECT\r\n\t {$_SESSION['RealS_prefix']}items.item_id,\r\n\t\t {$_SESSION['RealS_prefix']}items.*,\r\n\t {$_SESSION['RealS_prefix']}webcells.*\r\n\t FROM {$_SESSION['RealS_prefix']}items\r\n\t INNER JOIN {$_SESSION['RealS_prefix']}webcells ON {$_SESSION['RealS_prefix']}items.item_webcell = {$_SESSION['RealS_prefix']}webcells.webcell_id\r\n\t INNER JOIN {$_SESSION['RealS_prefix']}rafl_res ON {$_SESSION['RealS_prefix']}items.item_id = {$_SESSION['RealS_prefix']}rafl_res.rafl_res_item\r\n\t WHERE {$_SESSION['RealS_prefix']}items.item_parent_item = " . GetSQLValueString($_GET['success_id'], "int") . "\r\n\t AND {$_SESSION['RealS_prefix']}items.item_default_type = 6\r\n\t AND rafl_res_share = " . GetSQLValueString($_GET['share_id'], "int"); $rs_evidence = mysql_query($sql, $smart) or die(mysql_error()); $row_rs_evidence = mysql_fetch_assoc($rs_evidence); $totalRows_rs_evidence = mysql_num_rows($rs_evidence); $_GET['view'] = 'learner'; // The evidence is getting viewed now on this page, so reset the "unviewed" counter if ($_GET['view'] == 'mentor') { $obj_count = new commentEvidenceCount(); $obj_count->resetEvidenceCounter($row_rs_evidence['item_id']); } echo $row_rs_evidence['webcell_text']; mysql_free_result($rs_evidence);
/** * Process comment update */ public function processCommentUpdate() { global $CFG; // Default if (strlen($_POST['webcell_title'])) { $webcell_title = $_POST['webcell_title']; } else { $webcell_title = 'Comment'; } $mysql = new mysqlquery(); $query = "SELECT webcell_id\r\n\t\t\t FROM {$_SESSION['RealS_prefix']}webcells, {$_SESSION['RealS_prefix']}items\r\n\t\t\t WHERE item_id = " . $mysql->escape_value($_POST['comment_item_id'], 'int') . "\r\n\t\t\t \tAND item_webcell=webcell_id\r\n\t\t\t \tAND webcell_member=" . $_SESSION['USER']->id; // Debugging //echo $query; $comments = $mysql->runsql($query); if (count($comments) > 0) { $query = "UPDATE {$_SESSION['RealS_prefix']}webcells SET\r\n\t\t\t\t \twebcell_text = " . $mysql->escape_value($_POST['webcell_text'], 'text') . ",\r\n\t\t\t\t \twebcell_title = " . $mysql->escape_value($webcell_title, 'text') . "\r\n\t\t\t\t WHERE webcell_id = " . $comments[0]['webcell_id']; // Debugging //echo $query; $mysql->query($query); // Save comment member statuses, i.e. make this comment unread for all share cohort members $obj_count = new commentEvidenceCount(); $obj_count->increaseCommentCounter($this->item_type_id, $this->unit_item_id, $_POST['comment_item_id'], $_POST['share_id']); } }