diff --git a/main/wiki/index.php b/main/wiki/index.php
index f6edd65722..163ad800f4 100644
--- a/main/wiki/index.php
+++ b/main/wiki/index.php
@@ -681,6 +681,7 @@ if ($_GET['action']=='edit')
$result=api_sql_query($sql,__LINE__,__FILE__);
$row=Database::fetch_array($result); // we do not need a while loop since we are always displaying the last version
+
//Only teachers and platform admin can edit the index page. Only teachers and platform admin can edit an assignment teacher
if(($row['reflink']=='index' || $row['reflink']=='' || $row['assignment']==1) && (!api_is_allowed_to_edit() || !api_is_platform_admin()))
{
@@ -690,17 +691,7 @@ if ($_GET['action']=='edit')
}
else
{
- $PassEdit=false;
-
- if(stripslashes($row['assignment'])==1)
- {
- Display::display_normal_message(get_lang('EditAssignmentWarning'));
- $icon_assignment='
';
- }
- elseif(stripslashes($row['assignment'])==2)
- {
- $icon_assignment='
';
- }
+ $PassEdit=false;
//check if is a wiki group
if($_clean['group_id']!==0)
@@ -720,6 +711,33 @@ if ($_GET['action']=='edit')
$PassEdit=true;
}
+ // check if is a assignment
+ if(stripslashes($row['assignment'])==1)
+ {
+ Display::display_normal_message(get_lang('EditAssignmentWarning'));
+ $icon_assignment='
';
+ }
+ elseif(stripslashes($row['assignment'])==2)
+ {
+ $icon_assignment='
';
+ if((api_get_user_id()==$row['user_id'])==false)
+ {
+ if(api_is_allowed_to_edit() || api_is_platform_admin())
+ {
+ $PassEdit=true;
+ }
+ else
+ {
+ Display::display_warning_message(get_lang('LockByTeacher'));
+ $PassEdit=false;
+ }
+ }
+ else
+ {
+ $PassEdit=true;
+ }
+ }
+
if($PassEdit) //show editor if edit is allowed
{
if (check_protect_page() && (api_is_allowed_to_edit()==false || api_is_platform_admin()==false))
@@ -750,7 +768,7 @@ if ($_GET['action']=='edit')
echo '
';
//if(api_is_allowed_to_edit() || api_is_platform_admin()) //off for now
//{
- echo get_lang('Comments').': ';
+ echo get_lang('Comments').': ';
//}
echo '';
@@ -1186,8 +1204,8 @@ if ($_GET['action']=='discuss')
//check add rating lock. Show/Hide list to rating for all student
if (check_ratinglock_discuss())
{
- //Mode assignment: check. TODO
- if(($row['assignment']==2 && $row['ratinglock_disc']==0 && (api_get_user_id()==$row['user_id']))==false)
+ //Mode assignment: only the teacher can assign scoring
+ if(($row['assignment']==2 && $row['ratinglock_disc']==0 && (api_get_user_id()==$row['user_id']))==false)
{
$ratinglock_disc= '
'.get_lang('UnlockRatingDiscuss').'';
}
@@ -1598,6 +1616,8 @@ function save_wiki()
global $tbl_wiki;
+ // NOTE: visibility, visibility_disc and ratinglock_disc changes are not made here, but through the interce buttons
+
// cleaning the variables
$_clean['reflink']=Database::escape_string($_POST['reflink']);
@@ -1611,10 +1631,9 @@ function save_wiki()
$_clean['enddate_assig']=Database::escape_string($_POST['enddate_assig']);
$_clean['delayedsubmit']=Database::escape_string($_POST['delayedsubmit']);
$_clean['version']=Database::escape_string($_POST['version'])+1;
- $_clean['linksto'] = links_to($_clean['content']); //and check links content
+ $_clean['linksto'] = links_to($_clean['content']); //and check links content
-
if (isset($_SESSION['_gid']))
{
$_clean['group_id']=Database::escape_string($_SESSION['_gid']);
@@ -1683,16 +1702,26 @@ function save_new_wiki()
$_clean['title']=Database::escape_string($_POST['title']);
$_clean['content']= html_entity_decode(Database::escape_string(stripslashes(urldecode($_POST['content']))));
- if($_clean['assignment']==2) // for automatic assignment. Identifies the user as a creator, not the teacher who created
+ if($_clean['assignment']==2) //config by default for individual assignment (students)
{
- $_clean['user_id']=(int)Database::escape_string($assig_user_id);
+ $_clean['user_id']=(int)Database::escape_string($assig_user_id);//Identifies the user as a creator, not the teacher who created
+
+ $_clean['visibility']=0;
+ $_clean['visibility_disc']=0;
+ $_clean['ratinglock_disc']=0;
+
}
else
{
- $_clean['user_id']=(int)Database::escape_string(api_get_user_id());
+ $_clean['user_id']=(int)Database::escape_string(api_get_user_id());
+
+ $_clean['visibility']=1;
+ $_clean['visibility_disc']=1;
+ $_clean['ratinglock_disc']=1;
+
}
-
+
$_clean['comment']=Database::escape_string($_POST['comment']);
$_clean['progress']=Database::escape_string($_POST['progress']);
$_clean['startdate_assig']=Database::escape_string($_POST['startdate_assig']);
@@ -1731,11 +1760,11 @@ function save_new_wiki()
{
if ($_clean['group_id'])
{
- $sql="INSERT INTO ".$tbl_wiki." (reflink, title, content, user_id, group_id, assignment, comment, progress, startdate_assig, enddate_assig, delayedsubmit, version, linksto, user_ip) VALUES ('".$_clean['reflink']."','".$_clean['title']."','".$_clean['content']."','".$_clean['user_id']."','".$_clean['group_id']."','".$_clean['assignment']."','".$_clean['comment']."','".$_clean['progress']."','".$_clean['startdate_assig']."','".$_clean['enddate_assig']."','".$_clean['delayedsubmit']."','".$_clean['version']."','".$_clean['linksto']."','".$_SERVER['REMOTE_ADDR']."')";
+ $sql="INSERT INTO ".$tbl_wiki." (reflink, title, content, user_id, group_id, visibility, visibility_disc, ratinglock_disc, assignment, comment, progress, startdate_assig, enddate_assig, delayedsubmit, version, linksto, user_ip) VALUES ('".$_clean['reflink']."','".$_clean['title']."','".$_clean['content']."','".$_clean['user_id']."','".$_clean['group_id']."','".$_clean['visibility']."','".$_clean['visibility_disc']."','".$_clean['ratinglock_disc']."','".$_clean['assignment']."','".$_clean['comment']."','".$_clean['progress']."','".$_clean['startdate_assig']."','".$_clean['enddate_assig']."','".$_clean['delayedsubmit']."','".$_clean['version']."','".$_clean['linksto']."','".$_SERVER['REMOTE_ADDR']."')";
}
else
{
- $sql="INSERT INTO ".$tbl_wiki." (reflink, title,content, user_id, assignment, comment, progress, startdate_assig, enddate_assig, delayedsubmit, version, linksto, user_ip) VALUES ('".$_clean['reflink']."','".$_clean['title']."','".$_clean['content']."','".$_clean['user_id']."','".$_clean['assignment']."','".$_clean['comment']."','".$_clean['progress']."','".$_clean['startdate_assig']."','".$_clean['enddate_assig']."','".$_clean['delayedsubmit']."','".$_clean['version']."','".$_clean['linksto']."','".$_SERVER['REMOTE_ADDR']."')";
+ $sql="INSERT INTO ".$tbl_wiki." (reflink, title,content, user_id, visibility, visibility_disc, ratinglock_disc, assignment, comment, progress, startdate_assig, enddate_assig, delayedsubmit, version, linksto, user_ip) VALUES ('".$_clean['reflink']."','".$_clean['title']."','".$_clean['content']."','".$_clean['user_id']."','".$_clean['visibility']."','".$_clean['visibility_disc']."','".$_clean['ratinglock_disc']."','".$_clean['assignment']."','".$_clean['comment']."','".$_clean['progress']."','".$_clean['startdate_assig']."','".$_clean['enddate_assig']."','".$_clean['delayedsubmit']."','".$_clean['version']."','".$_clean['linksto']."','".$_SERVER['REMOTE_ADDR']."')";
}
$result=api_sql_query($sql,__LINE__,__FILE__);
@@ -1790,7 +1819,7 @@ function display_new_wiki_form()
//echo'