]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-8227 - Made wiki locking only apply to group being edited!
authorsam_marshall <sam_marshall>
Fri, 19 Jan 2007 15:25:35 +0000 (15:25 +0000)
committersam_marshall <sam_marshall>
Fri, 19 Jan 2007 15:25:35 +0000 (15:25 +0000)
mod/wiki/view.php

index 0d284fde967d605ce3991a611d00e1937b8bada9..163836370cca17c411fff9c4ed0837b42fd2b6a5 100644 (file)
@@ -18,7 +18,7 @@
     $groupid      = optional_param('groupid', 0, PARAM_INT);             // Group wiki.
     $canceledit   = optional_param('canceledit','', PARAM_ALPHA);          // Editing has been cancelled
     $cacheme      = optional_param('allowcache', 1, PARAM_INT);   // Set this to 0 to try and disable page caching.
-
+    
     // Only want to add edit log entries if we have made some changes ie submitted a form
     $editsave = optional_param('thankyou', '');
     
 
     require_course_login($course, true, $cm);
     
-    // If true, we are 'really' on an editing page, not just on edit/something
-    $reallyedit=$actions[0]=='edit' && !$canceledit && !$editsave;
-    
-       // Remove lock when we go to another wiki page (such as the cancel page)
-    if(!$reallyedit) {
-        wiki_release_lock($wiki->id,$pagename);
-    }
-    if(array_key_exists('content',$_POST)) {
-        // Do not allow blank content because it causes problems (the wiki decides
-        // the page should automatically go into edit mode, but Moodle doesn't realise
-        // this and filters out the JS)
-        if($_POST['content']=='') {
-            $_POST['content']="\n";
-            $_REQUEST['content']="\n";
-        }
-
-        // We must have the edit lock in order to be permitted to save    
-       list($ok,$lock)=wiki_obtain_lock($wiki->id,$pagename);
-       if(!$ok) {
-           $strsavenolock=get_string('savenolock','wiki');
-           error($strsavenolock,$CFG->wwwroot.'/mod/wiki/view.php?id='.$cm->id.'&page=view/'.urlencode($pagename));
-       }
-    }
-    
     /// Add the course module 'groupmode' to the wiki object, for easy access.
     $wiki->groupmode = $cm->groupmode;
 
     $moodle_disable_camel_case = ($wiki->disablecamelcase == 1);
     
     if (($wiki_entry = wiki_get_default_entry($wiki, $course, $userid, $groupid))) {
+        // OK, now we know the entry ID, we can do lock etc.
+        
+        // If true, we are 'really' on an editing page, not just on edit/something
+        $reallyedit=$actions[0]=='edit' && !$canceledit && !$editsave;
+
+        // Remove lock when we go to another wiki page (such as the cancel page)
+        if(!$reallyedit) {
+            wiki_release_lock($wiki_entry->id,$pagename);
+        } else if(array_key_exists('content',$_POST)) {
+            // Do not allow blank content because it causes problems (the wiki decides
+            // the page should automatically go into edit mode, but Moodle doesn't realise
+            // this and filters out the JS)
+            if($_POST['content']=='') {
+                $_POST['content']="\n";
+                $_REQUEST['content']="\n";
+            }
+    
+            // We must have the edit lock in order to be permitted to save    
+            list($ok,$lock)=wiki_obtain_lock($wiki_entry->id,$pagename);
+            if(!$ok) {
+                $strsavenolock=get_string('savenolock','wiki');
+                error($strsavenolock,$CFG->wwwroot.'/mod/wiki/view.php?id='.$cm->id.'&page=view/'.urlencode($pagename));
+            }
+        }
+        
 ///     ################# EWIKI Part ###########################
 ///     The wiki_entry->pagename is set to the specified value of the wiki,
 ///     or the default value in the 'lang' file if the specified value was empty.
     } else if($actions[0]=='edit' && $reallyedit) {
         // Check the page isn't locked before printing out standard wiki content. (Locking
         // is implemented as a wrapper over the existing wiki.)
-        list($gotlock,$lock)=wiki_obtain_lock($wiki->id,$pagename);
+        list($gotlock,$lock)=wiki_obtain_lock($wiki_entry->id,$pagename);
         if(!$gotlock) {
             $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
             $canoverridelock = has_capability('mod/wiki:overridelock', $modcontext);