Procházet zdrojové kódy

Chamilo files changes due ckeditor integration. BT#8968

Julio Montoya před 10 roky
rodič
revize
889cfa4042

+ 38 - 2
main/css/base.css

@@ -3540,7 +3540,6 @@ form .formw .freeze {
   margin-bottom: .5em;
 }
 
-
 /* ****************************************************
                      END SKILL
  **************************************************** */
@@ -3660,7 +3659,6 @@ form .formw .freeze {
 }
 
 /* END SCORM CSS BASE*/
-
 .skill_root {
     box-shadow: 2px 2px 19px #aaa;
     -o-box-shadow: 2px 2px 19px #aaa;
@@ -3715,6 +3713,44 @@ form .formw .freeze {
     position:relative;
 }
 
+/* ****************************************************
+                     END SKILL
+ **************************************************** */
+
+/* list template document */
+#frmModel{
+  height: 700px;
+  min-height: 100%;
+  overflow-y: scroll;
+  overflow-x: hidden
+}
+#frmModel ul{
+  list-style: none;
+  margin: 0;
+  padding: 0 .5em 0 1em;
+}
+#frmModel ul li:hover{
+  background-color: #FAFAFA;
+  border: 1px solid #F2F2F2;
+}
+#frmModel ul li{
+  text-align: center;
+  padding-top: 1em;
+  padding-bottom: 1em;
+}
+#frmModel ul li .title, #frmModel ul li .description{
+  padding-top: .5em;
+  padding-bottom: .5em;
+  width: auto;
+}
+.lp-add-item{
+  display:block;
+  height:890px;
+  width:250px;
+  position:relative;
+}
+/* end list template document */
+
 .done_window {
     background-color: #73982C;
 }

+ 6 - 3
main/document/create_document.php

@@ -39,6 +39,10 @@ $(document).ready(function() {
             $(this).css("background-image", \'url("../img/hide0.png")\');
         }
     );
+
+    CKEDITOR.on("instanceReady", function (e) {
+        showTemplates();
+    });
 });
 
 function InnerDialogLoaded() {
@@ -223,7 +227,6 @@ if ($is_certificate_mode) {
 	$dir = '/certificates/';
 }
 
-// Configuration for the FCKEDITOR
 $doc_tree  = explode('/', $dir);
 $count_dir = count($doc_tree) -2; // "2" because at the begin and end there are 2 "/"
 
@@ -673,8 +676,8 @@ if ($form->validate()) {
 	}
     // HTML-editor
     echo '<div class="row-fluid" style="overflow:hidden">
-            <div id="template_col" class="span2" style="width:162px">
-                <div id="frmModel" style="overflow: visible;"></div>
+            <div id="template_col" class="span3" style="width:200px">
+                <div id="frmModel" ></div>
             </div>
             <div id="hide_bar_template"></div>
             <div id="doc_form" class="span9">

+ 6 - 33
main/document/edit_document.php

@@ -57,39 +57,12 @@ $(document).ready(function() {
             $(this).css("background-image", \'url("../img/hide0.png")\');
         }
     );
-});
-
-function InnerDialogLoaded() {
-	/*
-	var B=new window.frames[0].FCKToolbarButton(\'Templates\',window.frames[0].FCKLang.Templates);
-	return B.ClickFrame();
-	*/
-	var isIE  = (navigator.appVersion.indexOf(\'MSIE\') != -1) ? true : false ;
-	var EditorFrame = null ;
 
-	if ( !isIE ) {
-		EditorFrame = window.frames[0] ;
-	} else {
-		// For this dynamic page window.frames[0] enumerates frames in a different order in IE.
-		// We need a sure method to locate the frame that contains the online editor.
-		for ( var i = 0, n = window.frames.length ; i < n ; i++ ) {
-			if ( window.frames[i].location.toString().indexOf(\'InstanceName=content\') != -1 ) {
-				EditorFrame = window.frames[i] ;
-			}
-		}
-	}
-
-	if ( !EditorFrame ) {
-		return null ;
-	}
-
-	var B = new EditorFrame.FCKToolbarButton(\'Templates\', EditorFrame.FCKLang.Templates);
-	return B.ClickFrame();
-};
+    CKEDITOR.on("instanceReady", function (e) {
+        showTemplates();
+    });
+});
 
-function FCKeditor_OnComplete( editorInstance) {
-	document.getElementById(\'frmModel\').innerHTML = "<iframe style=\'height: 525px; width: 180px;\' scrolling=\'no\' frameborder=\'0\' src=\''.api_get_path(WEB_LIBRARY_PATH).'fckeditor/editor/fckdialogframe.html \'>";
-}
 </script>';
 
 $_SESSION['whereami'] = 'document/create';
@@ -479,8 +452,8 @@ if ($owner_id == api_get_user_id() ||
 		Display::display_warning_message(get_lang('BrowserDontSupportsSVG'));
 	}
 	echo '<div class="row-fluid" style="overflow:hidden">
-            <div id="template_col" class="span2" style="width:162px">
-                <div id="frmModel" style="overflow: visible;"></div>
+            <div id="template_col" class="span3" style="width:200px">
+                <div id="frmModel"></div>
             </div>
             <div id="hide_bar_template"></div>
             <div id="doc_form" class="span9">

+ 11 - 8
main/exercice/calculated_answer.class.php

@@ -48,7 +48,6 @@ class CalculatedAnswer extends Question
 
         // javascript //
         echo '<script>
-
             function parseTextNumber(textNumber, floatValue) {
                 if (textNumber.indexOf(".") > -1) {
                     textNumber = parseFloat(textNumber);
@@ -74,24 +73,28 @@ class CalculatedAnswer extends Question
                 document.getElementById("randomValue"+index).innerHTML = "'.get_lang("ExampleValue").': " + result;
            }
 
-            function FCKeditor_OnComplete(editorInstance) {
+            /*function FCKeditor_OnComplete(editorInstance) {
                 if (window.attachEvent) {
                     editorInstance.EditorDocument.attachEvent("onkeyup", updateBlanks) ;
                 } else {
                     editorInstance.EditorDocument.addEventListener("keyup", updateBlanks, true);
                 }
-            }
+            }*/
+
+            CKEDITOR.on("instanceCreated", function(e) {
+                if (e.editor.name === "answer") {
+                    e.editor.on("change", updateBlanks);
+                }
+            });
 
             var firstTime = true;
 
-            function updateBlanks() {
+            function updateBlanks(e) {
                 if (firstTime) {
                     field = document.getElementById("answer");
                     var answer = field.value;
                 } else {
-                    var oEditor = FCKeditorAPI.GetInstance("answer");
-                    //var answer =  oEditor.GetXHTML(true);
-                    var answer = oEditor.EditorDocument.body.innerHTML;
+                    var answer = e.editor.getData();
                 }
                 var blanks = answer.match(/\[[^\]]*\]/g);
                 var fields = "<div class=\"control-group\"><label class=\"control-label\">'.get_lang('VariableRanges').'</label><div class=\"controls\"><table>";
@@ -125,7 +128,7 @@ class CalculatedAnswer extends Question
 
         // answer
         $form->addElement('label', null, '<br /><br />'.get_lang('TypeTextBelow').', '.get_lang('And').' '.get_lang('UseTagForBlank'));
-        $form->addElement('html_editor', 'answer', '<img src="../img/fill_field.png">','id="answer" cols="122" rows="6" onkeyup="javascript: updateBlanks(this);"', array('ToolbarSet' => 'TestQuestionDescription', 'Width' => '100%', 'Height' => '350'));
+        $form->addElement('html_editor', 'answer', '<img src="../img/fill_field.png">','id="answer" cols="122" rows="6" onkeyup="javascript: updateBlanks(this);"', array('ToolbarSet' => 'Test_Question_Description', 'Width' => '100%', 'Height' => '350'));
 
         $form->addRule('answer', get_lang('GiveText'),'required');
         $form->addRule('answer', get_lang('DefineBlanks'),'regex','/\[.*\]/');

+ 5 - 10
main/exercice/exercise.lib.php

@@ -12,9 +12,6 @@
  * Modified by Hubert Borderiou 2011-10-21 Question Category
  */
 
-// The initialization class for the online editor is needed here.
-require_once dirname(__FILE__).'/../inc/lib/fckeditor/fckeditor.php';
-
 /**
  * Shows a question
  *
@@ -147,17 +144,15 @@ function showQuestion(
         } elseif ($answerType == FREE_ANSWER) {
             $fck_content = isset($user_choice[0]) && !empty($user_choice[0]['answer']) ? $user_choice[0]['answer']:null;
 
-            $oFCKeditor = new FCKeditor("choice[".$questionId."]") ;
-
-            $oFCKeditor->ToolbarSet = 'TestFreeAnswer';
+            $oFCKeditor = new CKeditor();
+            $oFCKeditor->ToolbarSet = 'Test_Free_Answer';
             $oFCKeditor->Width = '100%';
             $oFCKeditor->Height = '200';
             $oFCKeditor->Value = $fck_content;
-            $s .= $oFCKeditor->CreateHtml();
+            $s .= $oFCKeditor->editor("choice[".$questionId."]", $oFCKeditor->Value);
         } elseif ($answerType == ORAL_EXPRESSION) {
             //Add nanog
             if (api_get_setting('enable_nanogong') == 'true') {
-                require_once api_get_path(LIBRARY_PATH).'nanogong.lib.php';
                 //@todo pass this as a parameter
                 global $exercise_stat_info, $exerciseId, $exe_id;
 
@@ -178,13 +173,13 @@ function showQuestion(
                 echo $nano->show_button();
             }
 
-            $oFCKeditor = new FCKeditor("choice[".$questionId."]") ;
+            $oFCKeditor = new CKeditor();
             $oFCKeditor->ToolbarSet = 'TestFreeAnswer';
             $oFCKeditor->Width  = '100%';
             $oFCKeditor->Height = '150';
             $oFCKeditor->ToolbarStartExpanded = false;
             $oFCKeditor->Value	= '' ;
-            $s .= $oFCKeditor->CreateHtml();
+            $s .= $oFCKeditor->editor("choice[".$questionId."]", $oFCKeditor->Value);
         }
 
         // Now navigate through the possible answers, using the max number of

+ 7 - 13
main/exercice/fill_blanks.class.php

@@ -70,29 +70,23 @@ class FillBlanks extends Question
                 $setValues .= 'document.getElementById("weighting['.$i.']").value = "'.$weighting.'";';
             }
         }
-
 		// javascript
 		echo '<script>
 
-			function FCKeditor_OnComplete(editorInstance) {
-				if (window.attachEvent) {
-					editorInstance.EditorDocument.attachEvent("onkeyup", updateBlanks) ;
-				} else {
-					editorInstance.EditorDocument.addEventListener("keyup", updateBlanks, true);
-				}
-			}
+            CKEDITOR.on("instanceCreated", function(e) {
+                if (e.editor.name === "answer") {
+                    e.editor.on("change", updateBlanks);
+                }
+            });
 
             var firstTime = true;
 
-            function updateBlanks() {
+            function updateBlanks(e) {
                 if (firstTime) {
                     field = document.getElementById("answer");
                     var answer = field.value;
-
                 } else {
-                    var oEditor = FCKeditorAPI.GetInstance("answer");
-                    //var answer =  oEditor.GetXHTML(true);
-                    var answer = oEditor.EditorDocument.body.innerHTML;
+                    var answer = e.editor.getData();
                 }
 
                 var blanks = answer.match(/\[[^\]]*\]/g);