Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
/**
 * 	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 "";
}
Esempio n. 3
0
// 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);
Esempio n. 4
0
 /**
  * 	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']);
     }
 }