Fixing queries due the single database see #3910

skala
Julio Montoya 13 years ago
parent 3fb0a6d769
commit 4c1a60d7e9
  1. 13
      main/group/group_space.php
  2. 8
      main/inc/lib/groupmanager.lib.php
  3. 1
      main/mySpace/access_details.php
  4. 127
      main/wiki/index.php
  5. 118
      main/wiki/wiki.inc.php

@ -302,14 +302,14 @@ $table->display();
*/
function get_number_of_group_users() {
global $current_group;
$course_id = api_get_course_int_id();
// Database table definition
$table_group_user = Database :: get_course_table(TABLE_GROUP_USER);
// Query
$sql = "SELECT count(id) AS number_of_users
FROM ".$table_group_user."
WHERE group_id='".Database::escape_string($current_group['id'])."'";
$sql = "SELECT count(id) AS number_of_users FROM ".$table_group_user."
WHERE c_id = $course_id AND group_id='".Database::escape_string($current_group['id'])."'";
$result = Database::query($sql);
$return = Database::fetch_array($result,'ASSOC');
return $return['number_of_users'];
@ -338,8 +338,7 @@ function get_group_user_data($from, $number_of_items, $column, $direction) {
// Query
if (api_get_setting('show_email_addresses') == 'true') {
$sql = "SELECT
user.user_id AS col0,
$sql = "SELECT user.user_id AS col0,
".(api_is_western_name_order() ?
"user.firstname AS col1,
user.lastname AS col2,"
@ -349,7 +348,7 @@ function get_group_user_data($from, $number_of_items, $column, $direction) {
)."
user.email AS col3
FROM ".$table_user." user, ".$table_group_user." group_rel_user
WHERE group_rel_user.c_id = $course_id group_rel_user.user_id = user.user_id
WHERE group_rel_user.c_id = $course_id AND group_rel_user.user_id = user.user_id
AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'";
$sql .= " ORDER BY col$column $direction ";
$sql .= " LIMIT $from,$number_of_items";
@ -366,7 +365,7 @@ function get_group_user_data($from, $number_of_items, $column, $direction) {
)."
user.email AS col3
FROM ".$table_user." user, ".$table_group_user." group_rel_user
WHERE group_rel_user.user_id = user.user_id
WHERE group_rel_user.c_id = $course_id AND group_rel_user.user_id = user.user_id
AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'";
$sql .= " ORDER BY col$column $direction ";
$sql .= " LIMIT $from,$number_of_items";

@ -434,11 +434,12 @@ class GroupManager {
* @return array All properties. Array-keys are name, tutor_id, description, maximum_number_of_students, directory and visibility of tools
*/
public static function get_group_properties ($group_id) {
$course_id = api_get_course_int_id();
if (empty($group_id) or !is_integer(intval($group_id)) ) {
return null;
}
$table_group = Database :: get_course_table(TABLE_GROUP);
$sql = 'SELECT * FROM '.$table_group.' WHERE id = '.Database::escape_string($group_id);
$sql = "SELECT * FROM $table_group WHERE c_id = $course_id AND id = ".Database::escape_string($group_id);
$db_result = Database::query($sql);
$db_object = Database::fetch_object($db_result);
@ -730,10 +731,7 @@ class GroupManager {
$sql = "UPDATE $table_group_cat SET display_order=$cat1->display_order WHERE id = $cat2->id AND c_id = $course_id ";
Database::query($sql);
}
//GROUP USERS FUNCTIONS
/**

@ -160,6 +160,7 @@ $(function() {
</script>';
//Changes END
$interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('AccessDetails'));
Display :: display_header('');
$main_user_info = api_get_user_info($user_id);

@ -22,7 +22,7 @@ $this_section = SECTION_COURSES;
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once 'wiki.inc.php';
$course_id = api_get_course_int_id();
@ -66,6 +66,7 @@ $MonthsLong = array (get_lang("JanuaryLong"), get_lang("FebruaryLong"), get_lang
//condition for the session
$session_id = api_get_session_id();
$condition_session = api_get_session_condition($session_id);
$course_id = api_get_course_int_id();
/*
ACCESS
@ -153,7 +154,7 @@ Display::display_introduction_section(TOOL_WIKI);
//release of blocked pages to prevent concurrent editions
$sql = 'SELECT * FROM '.$tbl_wiki.'WHERE is_editing!="0" '.$condition_session;
$sql = "SELECT * FROM $tbl_wiki WHERE c_id = $course_id AND is_editing != '0' ".$condition_session;
$result=Database::query($sql);
while ($is_editing_block=Database::fetch_array($result)) {
$max_edit_time = 1200; // 20 minutes
@ -168,7 +169,8 @@ while ($is_editing_block=Database::fetch_array($result)) {
}
//second checks if has exceeded the time that a page may be available or if a page was edited and saved by its author
if ($time_editing>$max_edit_time || ($is_editing_block['is_editing']==$_user['user_id'] && $_GET['action']!='edit')) {
$sql='UPDATE '.$tbl_wiki.' SET is_editing="0", time_edit="0000-00-00 00:00:00" WHERE is_editing="'.$is_editing_block['is_editing'].'" '.$condition_session;
$sql='UPDATE '.$tbl_wiki.' SET is_editing="0", time_edit="0000-00-00 00:00:00"
WHERE c_id = '.$course_id.' AND is_editing="'.$is_editing_block['is_editing'].'" '.$condition_session;
Database::query($sql);
}
}
@ -214,11 +216,11 @@ if (isset($_POST['SaveWikiNew'])) {
// check last version
if ($_GET['view']) {
$sql='SELECT * FROM '.$tbl_wiki.'WHERE id="'.Database::escape_string($_GET['view']).'"'; //current view
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND id="'.Database::escape_string($_GET['view']).'"'; //current view
$result=Database::query($sql);
$current_row=Database::fetch_array($result);
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC'; //last version
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC'; //last version
$result=Database::query($sql);
$last_row=Database::fetch_array($result);
@ -525,14 +527,14 @@ if ($_GET['action']=='statistics' && (api_is_allowed_to_edit(false,true) || api_
$total_multimedia = 0;
$total_tables = 0;
$sql="SELECT *, COUNT(*) AS TOTAL_VERS, SUM(hits) AS TOTAL_VISITS FROM ".$tbl_wiki."WHERE ".$groupfilter.$condition_session."";
$sql="SELECT *, COUNT(*) AS TOTAL_VERS, SUM(hits) AS TOTAL_VISITS FROM ".$tbl_wiki." WHERE c_id = '.$course_id.' ".$groupfilter.$condition_session."";
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_versions = $row['TOTAL_VERS'];
$total_visits = intval($row['TOTAL_VISITS']);
}
$sql="SELECT * FROM ".$tbl_wiki."WHERE ".$groupfilter.$condition_session."";
$sql="SELECT * FROM ".$tbl_wiki." WHERE c_id = '.$course_id.' AND ".$groupfilter.$condition_session."";
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
@ -623,7 +625,7 @@ while ($row=Database::fetch_array($allpages)) {
//Total hidden pages
$total_hidden=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE visibility=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';// or group by page_id. As the mark of hidden places it in all versions of the page, I can use group by to see the first
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND visibility=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';// or group by page_id. As the mark of hidden places it in all versions of the page, I can use group by to see the first
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
@ -633,7 +635,7 @@ $allpages=Database::query($sql);
//Total protect pages
$total_protected=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE editlock=1 AND '.$groupfilter.$condition_session.' GROUP BY reflink';// or group by page_id. As the mark of protected page is the first version of the page, I can use group by
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND editlock=1 AND '.$groupfilter.$condition_session.' GROUP BY reflink';// or group by page_id. As the mark of protected page is the first version of the page, I can use group by
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
@ -643,7 +645,7 @@ $allpages=Database::query($sql);
//Total empty versions
$total_empty_content=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE content="" AND '.$groupfilter.$condition_session.'';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND content="" AND '.$groupfilter.$condition_session.'';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_empty_content = $total_empty_content+1;
@ -653,7 +655,8 @@ while ($row=Database::fetch_array($allpages)) {
$total_empty_content_lv=0;
$sql = 'SELECT * FROM '.$tbl_wiki.' s1
WHERE s1.c_id = '.$course_id.' AND content="" AND id=(SELECT MAX(s2.id) FROM '.$tbl_wiki.' s2 WHERE s1.c_id = '.$course_id.' AND s1.reflink = s2.reflink AND '.$groupfilter.' AND session_id='.$session_id.')';
WHERE s1.c_id = '.$course_id.' AND content="" AND id=(
SELECT MAX(s2.id) FROM '.$tbl_wiki.' s2 WHERE s1.c_id = '.$course_id.' AND s1.reflink = s2.reflink AND '.$groupfilter.' AND session_id='.$session_id.')';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_empty_content_lv = $total_empty_content_lv+1;
@ -662,7 +665,7 @@ while ($row=Database::fetch_array($allpages)) {
//Total locked discuss pages
$total_lock_disc=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE addlock_disc=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';//group by because mark lock in all vers, then always is ok
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND addlock_disc=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';//group by because mark lock in all vers, then always is ok
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_lock_disc = $total_lock_disc+1;
@ -671,7 +674,7 @@ while ($row=Database::fetch_array($allpages)) {
//Total hidden discuss pages
$total_hidden_disc=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE visibility_disc=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';//group by because mark lock in all vers, then always is ok
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND visibility_disc=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';//group by because mark lock in all vers, then always is ok
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_hidden_disc = $total_hidden_disc+1;
@ -680,7 +683,7 @@ while ($row=Database::fetch_array($allpages)) {
//Total versions with any short comment by user or system
$total_comment_version=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE comment!="" AND '.$groupfilter.$condition_session.'';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND comment!="" AND '.$groupfilter.$condition_session.'';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_comment_version = $total_comment_version+1;
@ -689,7 +692,7 @@ while ($row=Database::fetch_array($allpages)) {
//Total pages that can only be scored by teachers
$total_only_teachers_rating=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE ratinglock_disc=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';//group by because mark lock in all vers, then always is ok
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND ratinglock_disc=0 AND '.$groupfilter.$condition_session.' GROUP BY reflink';//group by because mark lock in all vers, then always is ok
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_only_teachers_rating = $total_only_teachers_rating+1;
@ -702,7 +705,7 @@ $total_rating_by_peers=$total_pages-$total_only_teachers_rating;//put always thi
//Total pages identified as standard task
$total_task=0;
$sql='SELECT * FROM '.$tbl_wiki.', '.$tbl_wiki_conf.' WHERE '.$tbl_wiki_conf.'.task!="" AND '.$tbl_wiki_conf.'.page_id='.$tbl_wiki.'.page_id AND '.$tbl_wiki.'.'.$groupfilter.$condition_session;
$sql='SELECT * FROM '.$tbl_wiki.', '.$tbl_wiki_conf.' WHERE '.$tbl_wiki_conf.'.c_id = '.$course_id.' AND '.$tbl_wiki_conf.'.task!="" AND '.$tbl_wiki_conf.'.page_id='.$tbl_wiki.'.page_id AND '.$tbl_wiki.'.'.$groupfilter.$condition_session;
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_task=$total_task+1;
@ -731,7 +734,7 @@ $allpages=Database::query($sql);
//Current Wiki status add new pages
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY addlock';//group by because mark 0 in all vers, then always is ok
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY addlock';//group by because mark 0 in all vers, then always is ok
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$wiki_add_lock=$row['addlock'];
@ -747,7 +750,7 @@ else{
//Creation date of the oldest wiki page and version
$first_wiki_date='0000-00-00 00:00:00';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' ORDER BY dtime ASC LIMIT 1';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' ORDER BY dtime ASC LIMIT 1';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$first_wiki_date=$row['dtime'];
@ -756,7 +759,7 @@ $allpages=Database::query($sql);
//Date of publication of the latest wiki version
$last_wiki_date='0000-00-00 00:00:00';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' ORDER BY dtime DESC LIMIT 1';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' ORDER BY dtime DESC LIMIT 1';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$last_wiki_date=$row['dtime'];
@ -765,7 +768,7 @@ $allpages=Database::query($sql);
//Average score of all wiki pages. (If a page has not scored zero rated)
$media_score =0;
$sql="SELECT *, SUM(score) AS TOTAL_SCORE FROM ".$tbl_wiki." WHERE ".$groupfilter.$condition_session." GROUP BY reflink ";//group by because mark in all versions, then always is ok. Do not use "count" because using "group by", would give a wrong value
$sql="SELECT *, SUM(score) AS TOTAL_SCORE FROM ".$tbl_wiki." WHERE c_id = '.$course_id.' ".$groupfilter.$condition_session." GROUP BY reflink ";//group by because mark in all versions, then always is ok. Do not use "count" because using "group by", would give a wrong value
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_score=$total_score+$row['TOTAL_SCORE'];
@ -792,7 +795,7 @@ if (!empty($total_pages)) {
//Total users that have participated in the Wiki
$total_users=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY user_id';//as the mark of user it in all versions of the page, I can use group by to see the first
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY user_id';//as the mark of user it in all versions of the page, I can use group by to see the first
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_users = $total_users+1;
@ -801,7 +804,7 @@ while ($row=Database::fetch_array($allpages)) {
//Total of different IP addresses that have participated in the wiki
$total_ip=0;
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY user_ip';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY user_ip';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$total_ip = $total_ip+1;
@ -994,7 +997,7 @@ echo '<br/>';
if ($_GET['action']=='mactiveusers') {
echo '<div class="actions">'.get_lang('MostActiveUsers').'</div>';
$sql='SELECT *, COUNT(*) AS NUM_EDIT FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY user_id';
$sql='SELECT *, COUNT(*) AS NUM_EDIT FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY user_id';
$allpages=Database::query($sql);
//show table
@ -1027,9 +1030,9 @@ if ($_GET['action']=='usercontrib') {
if (api_is_allowed_to_edit(false,true) || api_is_platform_admin()) { //only by professors if page is hidden
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' AND user_id="'.Database::escape_string($_GET['user_id']).'"';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' AND user_id="'.Database::escape_string($_GET['user_id']).'"';
} else {
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' AND user_id="'.Database::escape_string($_GET['user_id']).'" AND visibility=1';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' AND user_id="'.Database::escape_string($_GET['user_id']).'" AND visibility=1';
}
$allpages=Database::query($sql);
@ -1102,9 +1105,9 @@ if ($_GET['action']=='mostchanged') {
if (api_is_allowed_to_edit(false,true) || api_is_platform_admin()) { //only by professors if page is hidden
$sql='SELECT *, MAX(version) AS MAX FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY reflink';//TODO:check MAX and group by return last version
$sql='SELECT *, MAX(version) AS MAX FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY reflink';//TODO:check MAX and group by return last version
} else {
$sql='SELECT *, MAX(version) AS MAX FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' AND visibility=1 GROUP BY reflink'; //TODO:check MAX and group by return last version
$sql='SELECT *, MAX(version) AS MAX FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' AND visibility=1 GROUP BY reflink'; //TODO:check MAX and group by return last version
}
$allpages=Database::query($sql);
@ -1144,9 +1147,9 @@ if ($_GET['action']=='mvisited') {
echo '<div class="actions">'.get_lang('MostVisitedPages').'</div>';
if (api_is_allowed_to_edit(false,true) || api_is_platform_admin()) { //only by professors if page is hidden
$sql='SELECT *, SUM(hits) AS tsum FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY reflink';
$sql='SELECT *, SUM(hits) AS tsum FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY reflink';
} else {
$sql='SELECT *, SUM(hits) AS tsum FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' AND visibility=1 GROUP BY reflink';
$sql='SELECT *, SUM(hits) AS tsum FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' AND visibility=1 GROUP BY reflink';
}
$allpages=Database::query($sql);
@ -1190,7 +1193,7 @@ if ($_GET['action']=='wanted') {
$wanted = array();
//get name pages
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY reflink ORDER BY reflink ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY reflink ORDER BY reflink ASC';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
@ -1272,7 +1275,7 @@ if ($_GET['action']=='orphaned') {
foreach ($orphaned as $orphaned_show) {
// get visibility status and title
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' AND reflink="'.Database::escape_string($orphaned_show).'" GROUP BY reflink';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' AND reflink="'.Database::escape_string($orphaned_show).'" GROUP BY reflink';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
$orphaned_title=$row['title'];
@ -1313,7 +1316,7 @@ if ($_GET['action']=='mostlinked') {
$linked = array();
//get name pages
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' GROUP BY reflink ORDER BY reflink ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' GROUP BY reflink ORDER BY reflink ASC';
$allpages=Database::query($sql);
while ($row=Database::fetch_array($allpages)) {
@ -1382,13 +1385,15 @@ if ($_GET['action']=='delete') {
}
if ($_GET['delete'] == 'yes') {
$sql='DELETE '.$tbl_wiki_discuss.' FROM '.$tbl_wiki.', '.$tbl_wiki_discuss.' WHERE '.$tbl_wiki.'.reflink="'.Database::escape_string($page).'" AND '.$tbl_wiki.'.'.$groupfilter.' AND '.$tbl_wiki.'.session_id='.$session_id.' AND '.$tbl_wiki_discuss.'.publication_id='.$tbl_wiki.'.id';
$sql='DELETE '.$tbl_wiki_discuss.' FROM '.$tbl_wiki.', '.$tbl_wiki_discuss.'
WHERE '.$tbl_wiki.'.c_id = '.$course_id.' AND '.$tbl_wiki_discuss.'.c_id = '.$course_id.' AND '.$tbl_wiki.'.reflink="'.Database::escape_string($page).'" AND '.$tbl_wiki.'.'.$groupfilter.' AND '.$tbl_wiki.'.session_id='.$session_id.' AND '.$tbl_wiki_discuss.'.publication_id='.$tbl_wiki.'.id';
Database::query($sql);
$sql='DELETE '.$tbl_wiki_mailcue.' FROM '.$tbl_wiki.', '.$tbl_wiki_mailcue.' WHERE '.$tbl_wiki.'.reflink="'.Database::escape_string($page).'" AND '.$tbl_wiki.'.'.$groupfilter.' AND '.$tbl_wiki.'.session_id='.$session_id.' AND '.$tbl_wiki_mailcue.'.id='.$tbl_wiki.'.id';
$sql='DELETE '.$tbl_wiki_mailcue.' FROM '.$tbl_wiki.', '.$tbl_wiki_mailcue.'
WHERE '.$tbl_wiki.'.c_id = '.$course_id.' AND '.$tbl_wiki_mailcue.'.c_id = '.$course_id.' AND '.$tbl_wiki.'.reflink="'.Database::escape_string($page).'" AND '.$tbl_wiki.'.'.$groupfilter.' AND '.$tbl_wiki.'.session_id='.$session_id.' AND '.$tbl_wiki_mailcue.'.id='.$tbl_wiki.'.id';
Database::query($sql);
$sql='DELETE FROM '.$tbl_wiki.' WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.'';
$sql='DELETE FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.'';
Database::query($sql);
check_emailcue(0, 'E');
@ -1475,7 +1480,7 @@ if ($_GET['action']=='links') {
Display::display_error_message(get_lang("MustSelectPage"));
} else {
$sql='SELECT * FROM '.$tbl_wiki.' WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.'';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.'';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1557,7 +1562,7 @@ if ($_GET['action']=='links') {
}
/////////////////////// adding a new page ///////////////////////
// Adding a new page
// Display the form for adding a new wiki page
@ -1589,13 +1594,14 @@ if ($_GET['action']=='addnew') {
/////////////////////// show home page ///////////////////////
// Show home page
if (!$_GET['action'] OR $_GET['action']=='show' AND !isset($_POST['SaveWikiNew'])) {
display_wiki_entry($newtitle);
}
/////////////////////// show current page ///////////////////////
// Show current page
if ($_GET['action']=='showpage' AND !isset($_POST['SaveWikiNew'])) {
if ($_GET['title']) {
@ -1605,8 +1611,7 @@ if ($_GET['action']=='showpage' AND !isset($_POST['SaveWikiNew'])) {
}
}
/////////////////////// edit current page ///////////////////////
// Edit current page
if ($_GET['action']=='edit') {
@ -1782,7 +1787,7 @@ if ($_GET['action']=='edit') {
echo '</div>';
$time_edit = date("Y-m-d H:i:s");
$sql='UPDATE '.$tbl_wiki.' SET is_editing="'.$_user['user_id'].'", time_edit="'.$time_edit.'" WHERE id="'.$row['id'].'"';
$sql='UPDATE '.$tbl_wiki.' SET is_editing="'.$_user['user_id'].'", time_edit="'.$time_edit.'" WHERE c_id = '.$course_id.' AND id="'.$row['id'].'"';
Database::query($sql);
} elseif ($row['is_editing']!=$_user['user_id']) {
$timestamp_edit=strtotime($row['time_edit']);
@ -1982,8 +1987,7 @@ if ($_GET['action']=='edit') {
}
}
/////////////////////// page history ///////////////////////
// Page history
if ($_GET['action']=='history' or $_POST['HistoryDifferences']) {
if (!$_GET['title']) {
@ -1996,7 +2000,7 @@ if ($_GET['action']=='history' or $_POST['HistoryDifferences']) {
//First, see the property visibility that is at the last register and therefore we should select descending order. But to give ownership to each record, this is no longer necessary except for the title. TODO: check this
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$sql='SELECT * FROM '.$tbl_wiki.'WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$result=Database::query($sql);
while ($row=Database::fetch_array($result)) {
@ -2020,7 +2024,7 @@ if ($_GET['action']=='history' or $_POST['HistoryDifferences']) {
// We show the complete history
if (!$_POST['HistoryDifferences'] && !$_POST['HistoryDifferences2']) {
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$sql='SELECT * FROM '.$tbl_wiki.'WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$result=Database::query($sql);
$title = $_GET['title'];
@ -2084,12 +2088,12 @@ if ($_GET['action']=='history' or $_POST['HistoryDifferences']) {
echo '<button class="search" type="submit" name="HistoryDifferences2" value="HistoryDifferences2">'.get_lang('ShowDifferences').' '.get_lang('WordsDiff').'</button>';
echo '</ul></form></div>';
} else { // We show the differences between two versions
$sql_old="SELECT * FROM $tbl_wiki WHERE id='".Database::escape_string($_POST['old'])."'";
$sql_old="SELECT * FROM $tbl_wiki WHERE c_id = '.$course_id.' AND id='".Database::escape_string($_POST['old'])."'";
$result_old=Database::query($sql_old);
$version_old=Database::fetch_array($result_old);
$sql_new="SELECT * FROM $tbl_wiki WHERE id='".Database::escape_string($_POST['new'])."'";
$sql_new="SELECT * FROM $tbl_wiki WHERE c_id = '.$course_id.' AND id='".Database::escape_string($_POST['new'])."'";
$result_new=Database::query($sql_new);
$version_new=Database::fetch_array($result_new);
@ -2152,11 +2156,9 @@ if ($_GET['action']=='history' or $_POST['HistoryDifferences']) {
}
/////////////////////// recent changes ///////////////////////
// Recent changes
//
//rss feed. TODO:
//
// @todo rss feed
if ($_GET['action']=='recentchanges') {
$_clean['group_id']=(int)$_SESSION['_gid'];
@ -2186,7 +2188,7 @@ if ($_GET['action']=='recentchanges') {
'.$tbl_wiki.'.'.$groupfilter.$condition_session.'
ORDER BY dtime DESC'; // new version
} else {
$sql='SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' AND visibility=1 ORDER BY dtime DESC'; // old version TODO: Replace by the bottom line
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' '.$groupfilter.$condition_session.' AND visibility=1 ORDER BY dtime DESC'; // old version TODO: Replace by the bottom line
}
$allpages=Database::query($sql);
@ -2237,7 +2239,8 @@ if ($_GET['action']=='recentchanges') {
}
/////////////////////// all pages ///////////////////////
// All pages
if ($_GET['action']=='allpages') {
echo '<div class="actions">'.get_lang('AllPages').'</div>';
@ -2309,8 +2312,7 @@ if ($_GET['action']=='allpages') {
}
}
/////////////////////// discuss pages ///////////////////////
// Discuss pages
if ($_GET['action']=='discuss') {
if (api_get_session_id()!=0 && api_is_allowed_to_session_edit(false,true)==false) {
@ -2323,14 +2325,14 @@ if ($_GET['action']=='discuss') {
}
//first extract the date of last version
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
$lastversiondate=api_get_local_time($row['dtime'], null, date_default_timezone_get());
$lastuserinfo=Database::get_user_info_from_id($row['user_id']);
//select page to discuss
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
$id=$row['id'];
@ -2481,17 +2483,17 @@ if ($_GET['action']=='discuss') {
echo '<hr noshade size="1">';
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
$sql="SELECT * FROM $tbl_wiki_discuss reviews, $user_table user WHERE reviews.publication_id='".$id."' AND user.user_id='".$firstuserid."' ORDER BY id DESC";
$sql="SELECT * FROM $tbl_wiki_discuss reviews, $user_table user WHERE reviews.c_id = '.$course_id.' AND reviews.publication_id='".$id."' AND user.user_id='".$firstuserid."' ORDER BY id DESC";
$result=Database::query($sql) or die(Database::error());
$countWPost = Database::num_rows($result);
echo get_lang('NumComments').": ".$countWPost; //comment's numbers
$sql="SELECT SUM(p_score) as sumWPost FROM $tbl_wiki_discuss WHERE publication_id='".$id."' AND NOT p_score='-' ORDER BY id DESC";
$sql="SELECT SUM(p_score) as sumWPost FROM $tbl_wiki_discuss WHERE c_id = '.$course_id.' AND publication_id='".$id."' AND NOT p_score='-' ORDER BY id DESC";
$result2=Database::query($sql) or die(Database::error());
$row2=Database::fetch_array($result2);
$sql="SELECT * FROM $tbl_wiki_discuss WHERE publication_id='".$id."' AND NOT p_score='-'";
$sql="SELECT * FROM $tbl_wiki_discuss WHERE c_id = '.$course_id.' AND publication_id='".$id."' AND NOT p_score='-'";
$result3=Database::query($sql) or die(Database::error());
$countWPost_score= Database::num_rows($result3);
@ -2505,7 +2507,8 @@ if ($_GET['action']=='discuss') {
echo ' - '.get_lang('RatingMedia').': '.$avg_WPost_score; // average rating
$sql='UPDATE '.$tbl_wiki.' SET score="'.Database::escape_string($avg_WPost_score).'" WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session; // check if work ok. TODO:
$sql='UPDATE '.$tbl_wiki.' SET score="'.Database::escape_string($avg_WPost_score).'"
WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session; // check if work ok. TODO:
Database::query($sql);
echo '<hr noshade size="1">';

@ -396,7 +396,7 @@ function delete_wiki() {
global $tbl_wiki, $tbl_wiki_conf, $tbl_wiki_discuss, $tbl_wiki_mailcue, $groupfilter, $condition_session;
//identify the first id by group = identify wiki
$sql = 'SELECT * FROM '.$tbl_wiki.' WHERE '.$groupfilter.$condition_session.' ORDER BY id DESC';
$sql = 'SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND '.$groupfilter.$condition_session.' ORDER BY id DESC';
$allpages = Database::query($sql);
$course_id = api_get_course_int_id();
@ -535,7 +535,7 @@ function save_new_wiki() {
api_item_property_update(api_get_course_info(), TOOL_WIKI, $Id, 'WikiAdded', api_get_user_id(), $_clean['group_id']);
}
$sql='UPDATE '.$tbl_wiki.' SET page_id="'.$Id.'" WHERE id="'.$Id.'"';
$sql='UPDATE '.$tbl_wiki.' SET page_id="'.$Id.'" WHERE c_id = '.$course_id.' AND id="'.$Id.'"';
Database::query($sql);
//insert wiki config
@ -748,6 +748,7 @@ return true;
**/
function display_wiki_entry($newtitle) {
global $charset, $tbl_wiki, $tbl_wiki_conf, $groupfilter, $condition_session, $page;
$course_id = api_get_course_int_id();
if($newtitle) {
$pageMIX=$newtitle; //display the page after it is created
@ -765,12 +766,12 @@ function display_wiki_entry($newtitle) {
}
//first, check page visibility in the first page version
$sql='SELECT * FROM '.$tbl_wiki.' WHERE reflink="'.Database::escape_string($pageMIX).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($pageMIX).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
$KeyVisibility=$row['visibility'];
$course_id = api_get_course_int_id();
// second, show the last version
$sql='SELECT * FROM '.$tbl_wiki.', '.$tbl_wiki_conf.'
@ -786,7 +787,7 @@ function display_wiki_entry($newtitle) {
//update visits
if ($row['id']) {
$sql='UPDATE '.$tbl_wiki.' SET hits=(hits+1) WHERE id='.$row['id'].'';
$sql='UPDATE '.$tbl_wiki.' SET hits=(hits+1) WHERE c_id = '.$course_id.' AND id='.$row['id'].'';
Database::query($sql);
}
@ -926,6 +927,7 @@ function display_wiki_entry($newtitle) {
echo '<div id="wikifooter">'.get_lang('Progress').': '.$row['progress'].'%&nbsp;&nbsp;&nbsp;'.get_lang('Rating').': '.$row['score'].'&nbsp;&nbsp;&nbsp;'.get_lang('Words').': '.word_count($content).'</div>';
}//end filter visibility
} // end function display_wiki_entry
@ -978,8 +980,10 @@ function wiki_exist($title) {
global $tbl_wiki;
global $groupfilter;
global $condition_session;
$course_id = api_get_course_int_id();
$sql='SELECT id FROM '.$tbl_wiki.'WHERE title="'.Database::escape_string($title).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT id FROM '.$tbl_wiki.'WHERE c_id = '.$course_id.' AND title="'.Database::escape_string($title).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$cant=Database::num_rows($result);
if ($cant>0) {
@ -1020,8 +1024,10 @@ function check_addnewpagelock() {
global $groupfilter;
global $condition_session;
$_clean['group_id']=(int)$_SESSION['_gid'];
$course_id = api_get_course_int_id();
$sql='SELECT * FROM '.$tbl_wiki.'WHERE '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1041,9 +1047,9 @@ function check_addnewpagelock() {
$status_addlock=1;
}
Database::query('UPDATE '.$tbl_wiki.' SET addlock="'.Database::escape_string($status_addlock).'" WHERE '.$groupfilter.$condition_session.'');
Database::query('UPDATE '.$tbl_wiki.' SET addlock="'.Database::escape_string($status_addlock).'" WHERE c_id = '.$course_id.' AND '.$groupfilter.$condition_session.'');
$sql='SELECT * FROM '.$tbl_wiki.'WHERE '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1065,10 +1071,12 @@ function check_protect_page() {
global $page;
global $groupfilter;
global $condition_session;
$course_id = api_get_course_int_id();
$_clean['group_id']=(int)$_SESSION['_gid'];
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.'WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1084,21 +1092,14 @@ function check_protect_page() {
if ($_GET['actionpage']=='unlock' && $status_editlock==1) {
$status_editlock=0;
}
$sql='UPDATE '.$tbl_wiki.' SET editlock="'.Database::escape_string($status_editlock).'" WHERE id="'.$id.'"';
$sql='UPDATE '.$tbl_wiki.' SET editlock="'.Database::escape_string($status_editlock).'" WHERE c_id = '.$course_id.' AND id="'.$id.'"';
Database::query($sql);
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
}
//show status
return $row['editlock'];
return $row['editlock'];
}
@ -1115,8 +1116,9 @@ function check_visibility_page() {
global $condition_session;
$_clean['group_id']=(int)$_SESSION['_gid'];
$course_id = api_get_course_int_id();
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1134,11 +1136,11 @@ function check_visibility_page() {
$status_visibility=0;
}
$sql='UPDATE '.$tbl_wiki.' SET visibility="'.Database::escape_string($status_visibility).'" WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session;
$sql='UPDATE '.$tbl_wiki.' SET visibility="'.Database::escape_string($status_visibility).'" WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session;
Database::query($sql);
//Although the value now is assigned to all (not only the first), these three lines remain necessary. They do that by changing the page state is made when you press the button and not have to wait to change his page
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1165,8 +1167,9 @@ function check_visibility_discuss() {
global $condition_session;
$_clean['group_id']=(int)$_SESSION['_gid'];
$course_id = api_get_course_int_id();
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1184,11 +1187,11 @@ function check_visibility_discuss() {
$status_visibility_disc=0;
}
$sql='UPDATE '.$tbl_wiki.' SET visibility_disc="'.Database::escape_string($status_visibility_disc).'" WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session;
$sql='UPDATE '.$tbl_wiki.' SET visibility_disc="'.Database::escape_string($status_visibility_disc).'" WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session;
Database::query($sql);
//Although the value now is assigned to all (not only the first), these three lines remain necessary. They do that by changing the page state is made when you press the button and not have to wait to change his page
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1209,9 +1212,10 @@ function check_addlock_discuss() {
global $page;
global $groupfilter;
global $condition_session;
$course_id = api_get_course_int_id();
$_clean['group_id']=(int)$_SESSION['_gid'];
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1230,11 +1234,12 @@ function check_addlock_discuss() {
$status_addlock_disc=0;
}
$sql='UPDATE '.$tbl_wiki.' SET addlock_disc="'.Database::escape_string($status_addlock_disc).'" WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session;
$sql='UPDATE '.$tbl_wiki.' SET addlock_disc="'.Database::escape_string($status_addlock_disc).'"
WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session;
Database::query($sql);
//Although the value now is assigned to all (not only the first), these three lines remain necessary. They do that by changing the page state is made when you press the button and not have to wait to change his page
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.'WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1258,8 +1263,10 @@ function check_ratinglock_discuss() {
global $condition_session;
$_clean['group_id']=(int)$_SESSION['_gid'];
$course_id = api_get_course_int_id();
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.'
WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1278,11 +1285,12 @@ function check_ratinglock_discuss() {
$status_ratinglock_disc=0;
}
$sql='UPDATE '.$tbl_wiki.' SET ratinglock_disc="'.Database::escape_string($status_ratinglock_disc).'" WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session; //Visibility. Value to all,not only for the first
$sql='UPDATE '.$tbl_wiki.' SET ratinglock_disc="'.Database::escape_string($status_ratinglock_disc).'"
WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session; //Visibility. Value to all,not only for the first
Database::query($sql);
//Although the value now is assigned to all (not only the first), these three lines remain necessary. They do that by changing the page state is made when you press the button and not have to wait to change his page
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.Database::escape_string($page).'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1307,14 +1315,15 @@ function check_notify_page($reflink) {
$_clean['group_id']=(int)$_SESSION['_gid'];
$session_id=api_get_session_id();
$course_id = api_get_course_int_id();
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.$reflink.'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.$reflink.'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
$id=$row['id'];
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="P"';
$sql='SELECT * FROM '.$tbl_wiki_mailcue.' WHERE c_id = '.$course_id.' AND id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="P"';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1329,7 +1338,7 @@ function check_notify_page($reflink) {
$status_notify=1;
}
$course_id = api_get_course_int_id();
//change status
if ($_GET['actionpage']=='locknotify' && $status_notify==0) {
@ -1361,17 +1370,18 @@ function check_notify_discuss($reflink) {
global $groupfilter;
global $tbl_wiki_mailcue;
global $condition_session;
$course_id = api_get_course_int_id();
$_clean['group_id']=(int)$_SESSION['_gid'];
$session_id=api_get_session_id();
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.$reflink.'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.'WHERE c_id = '.$course_id.' AND reflink="'.$reflink.'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
$id=$row['id'];
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="D"';
$sql='SELECT * FROM '.$tbl_wiki_mailcue.' WHERE c_id = '.$course_id.' AND id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="D"';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1385,7 +1395,7 @@ function check_notify_discuss($reflink) {
{
$status_notify_disc=1;
}
$course_id = api_get_course_int_id();
//change status
if ($_GET['actionpage']=='locknotifydisc' && $status_notify_disc==0) {
$sql="INSERT INTO ".$tbl_wiki_mailcue." (c_id, id, user_id, type, group_id, session_id) VALUES
@ -1396,7 +1406,7 @@ function check_notify_discuss($reflink) {
}
if ($_GET['actionpage']=='unlocknotifydisc' && $status_notify_disc==1)
{
$sql='DELETE FROM '.$tbl_wiki_mailcue.' WHERE id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="D" AND c_id = '.$course_id; //$_clean['group_id'] not necessary TODO:CHECK FOR SESSIONS
$sql='DELETE FROM '.$tbl_wiki_mailcue.' WHERE c_id = '.$course_id.' AND id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="D" AND c_id = '.$course_id; //$_clean['group_id'] not necessary TODO:CHECK FOR SESSIONS
Database::query($sql);
$status_notify_disc=0;
}
@ -1413,13 +1423,13 @@ function check_notify_discuss($reflink) {
* @author Juan Carlos Raña <herodoto@telefonica.net>
*/
function check_notify_all() {
global $tbl_wiki_mailcue;
$course_id = api_get_course_int_id();
$_clean['group_id']=(int)$_SESSION['_gid'];
$session_id=api_get_session_id();
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE user_id="'.api_get_user_id().'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"';
$sql='SELECT * FROM '.$tbl_wiki_mailcue.' WHERE c_id = '.$course_id.' AND user_id="'.api_get_user_id().'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1434,7 +1444,7 @@ function check_notify_all() {
$status_notify_all=1;
}
$course_id = api_get_course_int_id();
//change status
if ($_GET['actionpage']=='locknotifyall' && $status_notify_all==0)
{
@ -1446,7 +1456,7 @@ function check_notify_all() {
}
if ($_GET['actionpage']=='unlocknotifyall' && $status_notify_all==1) {
$sql ='DELETE FROM '.$tbl_wiki_mailcue.'
WHERE user_id="'.api_get_user_id().'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'" AND c_id = '.$course_id;
WHERE c_id = '.$course_id.' AND user_id="'.api_get_user_id().'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'" AND c_id = '.$course_id;
Database::query($sql);
$status_notify_all=0;
}
@ -1467,8 +1477,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
$_clean['group_id']=(int)$_SESSION['_gid'];
$session_id=api_get_session_id();
$course_id = api_get_course_int_id();
$group_properties = GroupManager :: get_group_properties($_clean['group_id']);
$group_name= $group_properties['name'];
@ -1494,7 +1503,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
$email_date_changes=$day.' '.$month.' '.$year.' '.$hours.":".$minutes.":".$seconds;
//second, extract data from first reg
$sql='SELECT * FROM '.$tbl_wiki.'WHERE reflink="'.$id_or_ref.'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC'; //id_or_ref is reflink from tblwiki
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND reflink="'.$id_or_ref.'" AND '.$groupfilter.$condition_session.' ORDER BY id ASC'; //id_or_ref is reflink from tblwiki
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1507,7 +1516,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
{
$allow_send_mail=true; //if visibility off - notify off
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE id="'.$id.'" AND type="'.$type.'" OR type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=full.
$sql='SELECT * FROM '.$tbl_wiki_mailcue.' WHERE c_id = '.$course_id.' AND id="'.$id.'" AND type="'.$type.'" OR type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=full.
$result=Database::query($sql);
$emailtext=get_lang('EmailWikipageModified').' <strong>'.$email_page_name.'</strong> '.get_lang('Wiki');
@ -1536,7 +1545,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
$id=$id_or_ref; //$id_or_ref is id from tblwiki
$sql='SELECT * FROM '.$tbl_wiki.'WHERE id="'.$id.'" ORDER BY id ASC';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND id="'.$id.'" ORDER BY id ASC';
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1548,7 +1557,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
{
$allow_send_mail=true; //if visibility off - notify off
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE id="'.$id.'" AND type="'.$type.'" OR type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=full
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE c_id = '.$course_id.' AND id="'.$id.'" AND type="'.$type.'" OR type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=full
$result=Database::query($sql);
$emailtext=get_lang('EmailWikiPageDiscAdded').' <strong>'.$email_page_name.'</strong> '.get_lang('Wiki');
@ -1559,7 +1568,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
//for added pages
$id=0; //for tbl_wiki_mailcue
$sql='SELECT * FROM '.$tbl_wiki.' ORDER BY id DESC'; //the added is always the last
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' ORDER BY id DESC'; //the added is always the last
$result=Database::query($sql);
$row=Database::fetch_array($result);
@ -1594,7 +1603,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
$allow_send_mail=false; //Mode tasks: avoids notifications to all users about all users
}
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE id="'.$id.'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=full
$sql='SELECT * FROM '.$tbl_wiki_mailcue.' WHERE c_id = '.$course_id.' AND id="'.$id.'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=full
$result=Database::query($sql);
$emailtext=get_lang('EmailWikiPageAdded').' <strong>'.$email_page_name.'</strong> '.get_lang('In').' '. get_lang('Wiki');
@ -1614,7 +1623,7 @@ function check_emailcue($id_or_ref, $type, $lastime='', $lastuser='') {
$today = date('r'); //current time
$email_date_changes=$today;
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE id="'.$id.'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=wiki
$sql='SELECT * FROM '.$tbl_wiki_mailcue.'WHERE c_id = '.$course_id.' AND id="'.$id.'" AND type="F" AND group_id="'.$_clean['group_id'].'" AND session_id="'.$session_id.'"'; //type: P=page, D=discuss, F=wiki
$result=Database::query($sql);
$emailtext=get_lang('EmailWikipageDedeleted');
@ -2158,10 +2167,11 @@ function two_digits($number) {
* @param int wiki id
* @return array wiki data
*/
function get_wiki_data($id) {
function get_wiki_data($id) {
global $tbl_wiki;
$course_id = api_get_course_int_id();
$id = intval($id);
$sql='SELECT * FROM '.$tbl_wiki.' WHERE id = '.$id.' ';
$sql='SELECT * FROM '.$tbl_wiki.' WHERE c_id = '.$course_id.' AND id = '.$id.' ';
$result=Database::query($sql);
$data = array();
while ($row=Database::fetch_array($result,'ASSOC')) {

Loading…
Cancel
Save