Merge branch '1.9.x' of ssh://github.com/chamilo/chamilo-lms into chamilo19

1.9.x
Julio Montoya 12 years ago
commit b1d2a52633
  1. 8
      main/calendar/agenda.inc.php
  2. 2
      main/document/create_paint.php
  3. 2
      main/document/edit_paint.php
  4. 45
      main/exercice/exercise.class.php
  5. 6
      main/inc/ajax/lp.ajax.php
  6. 18
      main/inc/lib/main_api.lib.php
  7. 0
      main/inc/lib/nanogong/LICENSE
  8. 4
      main/inc/lib/nanogong/NOTICE
  9. 39
      main/inc/lib/nanogong/README
  10. BIN
      main/inc/lib/nanogong/nanogong.jar
  11. 23
      main/newscorm/learnpath.class.php
  12. 23
      main/newscorm/lp_controller.php

@ -2751,7 +2751,13 @@ function show_add_form($id = '', $type = null)
<label class="control-label">
'.get_lang('AddAnAttachment').'&nbsp;</label>
<div class="controls">
<input type="file" name="user_upload"/> '.get_lang('Comment').' <input name="file_comment" type="text" size="20" />
<input type="file" name="user_upload"/>
</div>
<label class="control-label">'.
get_lang('Comment').'
</label>
<div class="controls">
<textarea name="file_comment" type="textarea"></textarea>
</div>
</div>';
}

@ -162,7 +162,7 @@ else {
$credentials="false";
}
$pixlr_url = 'http://pixlr.com/editor/?title='.$title.'&amp;image='.$image.'&amp;loc='.$loc.'&amp;referrer='.$referrer.'&amp;target='.$target.'&amp;exit='.$exit_path.'&amp;locktarget='.$locktarget.'&amp;locktitle='.$locktitle.'&amp;credentials='.$credentials;
$pixlr_url = api_get_protocol().'://pixlr.com/editor/?title='.$title.'&amp;image='.$image.'&amp;loc='.$loc.'&amp;referrer='.$referrer.'&amp;target='.$target.'&amp;exit='.$exit_path.'&amp;locktarget='.$locktarget.'&amp;locktitle='.$locktitle.'&amp;credentials='.$credentials;
?>

@ -214,7 +214,7 @@ $_SESSION['temp_realpath_image']=$to;
//load image to url
$to_url=api_get_path(WEB_ARCHIVE_PATH).'temp/images/'.$file_crip;
$image=urlencode($to_url);
$pixlr_url = 'http://pixlr.com/editor/?title='.$title.'&amp;image='.$image.'&amp;loc='.$loc.'&amp;referrer='.$referrer.'&amp;target='.$target.'&amp;exit='.$exit_path.'&amp;locktarget='.$locktarget.'&amp;locktitle='.$locktitle.'&amp;credentials='.$credentials;
$pixlr_url = api_get_protocol().'://pixlr.com/editor/?title='.$title.'&amp;image='.$image.'&amp;loc='.$loc.'&amp;referrer='.$referrer.'&amp;target='.$target.'&amp;exit='.$exit_path.'&amp;locktarget='.$locktarget.'&amp;locktitle='.$locktitle.'&amp;credentials='.$credentials;
//make frame an send image
?>

@ -1169,7 +1169,7 @@ class Exercise {
$defaults['randomAnswers'] = $this->selectRandomAnswers();
$defaults['exerciseType'] = $this->selectType();
$defaults['exerciseTitle'] = api_html_entity_decode($this->selectTitle());
$defaults['exerciseTitle'] = $this->get_formated_title();
$defaults['exerciseDescription'] = $this->selectDescription();
$defaults['exerciseAttempts'] = $this->selectAttempts();
$defaults['exerciseFeedbackType'] = $this->selectFeedbackType();
@ -1250,7 +1250,7 @@ class Exercise {
*/
function processCreation($form, $type = '')
{
$this->updateTitle(api_htmlentities($form->getSubmitValue('exerciseTitle')));
$this->updateTitle(Exercise::format_title_variable($form->getSubmitValue('exerciseTitle')));
$this->updateDescription($form->getSubmitValue('exerciseDescription'));
$this->updateAttempts($form->getSubmitValue('exerciseAttempts'));
$this->updateFeedbackType($form->getSubmitValue('exerciseFeedbackType'));
@ -3723,13 +3723,13 @@ class Exercise {
$isRandomByCategory = $this->selectRandomByCat();
// on tri les categories en fonction du terme entre [] en tete de la description de la categorie
/*
* ex de catégories :
* ex de catégories :
* [biologie] Maitriser les mecanismes de base de la genetique
* [biologie] Relier les moyens de depenses et les agents infectieux
* [biologie] Savoir ou est produite l'enrgie dans les cellules et sous quelle forme
* [chimie] Classer les molles suivant leur pouvoir oxydant ou reacteur
* [chimie] Connaître la denition de la theoie acide/base selon Brönsted
* [chimie] Connaître les charges des particules
* [chimie] Connaître la denition de la theoie acide/base selon Brönsted
* [chimie] Connaître les charges des particules
* On veut dans l'ordre des groupes definis par le terme entre crochet au debut du titre de la categorie
*/
// If test option is Grouped By Categories
@ -3989,4 +3989,39 @@ class Exercise {
}
return $out_max_score;
}
/**
* @return string
*/
public function get_formated_title()
{
return api_html_entity_decode($this->selectTitle());
}
/**
* @param $in_title
* @return string
*/
public static function get_formated_title_variable($in_title) {
return api_html_entity_decode($in_title);
}
/**
* @return string
*/
public function format_title()
{
return api_htmlentities($this->title);
}
/**
* @param $in_title
* @return string
*/
public static function format_title_variable($in_title)
{
return api_htmlentities($in_title);
}
}

@ -17,7 +17,11 @@ switch ($action) {
if ($_SESSION['oLP']) {
//Updating the lp.modified_on
$_SESSION['oLP']->set_modified_on();
echo $_SESSION['oLP']->add_item($_REQUEST['parent_id'], $_REQUEST['previous_id'], $_REQUEST['type'], $_REQUEST['id'], $_REQUEST['title'], null);
$title = $_REQUEST['title'];
if ($_REQUEST['type'] == TOOL_QUIZ) {
$title = Exercise::format_title_variable($title);
}
echo $_SESSION['oLP']->add_item($_REQUEST['parent_id'], $_REQUEST['previous_id'], $_REQUEST['type'], $_REQUEST['id'], $title, null);
}
}
break;

@ -6918,3 +6918,21 @@ function api_get_firstpage_parameter()
{
return $_COOKIE['GotoCourse'];
}
/**
* Return true on https install
* @return boolean
*/
function api_is_https()
{
return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off');
}
/**
* Return protocol (http or https)
* @return string
*/
function api_get_protocol()
{
return api_is_https() ? 'https' : 'http';
}

@ -1,5 +1,5 @@
The NanoGong Applet 4.2
Copyright 2002-2011 The Gong Project
The NanoGong Applet 5.0
Copyright 2002-2014 The Gong Project
This product includes software developed by the Gong Project
(http://gong.ust.hk/) at the Department of Computer Science and Engineering at

@ -0,0 +1,39 @@
Thank you for downloading the NanoGong applet!
Use the NanoGong Applet
-----------------------
NanoGong is a 'simple' Java applet which you can put in any web page. We have
included an example index.html at the root directory so that you can quickly
make a web page with NanoGong by modifying the given page.
Here are the brief steps to create your NanoGong page:
1) Modify the index.html with appropriate content, you may change the filename
as well if you want to
2) Copy both index.html and nanogong.jar to the location where you usually put
your web pages in
3) Open a browser and type in the location of the index.html you have just
uploaded
Done! In just 3 steps you will have a NanoGong page ready on the Web.
If you want to look at more examples on using the NanoGong applet you can visit
the NanoGong project website at
http://nanogong.ust.hk/
Build the NanoGong Applet
-------------------------
This package contains the necessary source code for creating your own version of
NanoGong applet. The JSpeex library is provided in binary form inside the jspeex
directory. The build file, build.xml, at the root directory can be used to
compile the source code as well as pack the resulting class files together with
the JSpeex library in a Jar file.
To sign the Jar file, which is necessary for the proper execution of the
NanoGong applet, you can either provide a keystore file called 'keystore.jks',
or sign the Jar file manually. Please refer to the build file for details.

@ -5838,15 +5838,20 @@ class learnpath
$arrLP = $this->arrMenu;
unset ($this->arrMenu);
if ($action == 'add')
if ($action == 'add') {
$legend .= get_lang('CreateTheExercise') . '&nbsp;:';
elseif ($action == 'move') $legend .= get_lang('MoveTheCurrentExercise') . '&nbsp;:';
else
} elseif ($action == 'move') {
$legend .= get_lang('MoveTheCurrentExercise') . '&nbsp;:';
} else {
$legend .= get_lang('EditCurrentExecice') . '&nbsp;:';
}
if (isset ($_GET['edit']) && $_GET['edit'] == 'true') {
$legend .= Display :: return_warning_message(get_lang('Warning') . ' ! ' . get_lang('WarningEditingDocument'));
}
$legend .= '</legend>';
$return = '';
$return .= '<div class="sectioncomment">';
$return .= '<form method="POST">';
@ -5865,6 +5870,7 @@ class learnpath
$return .= '<td class="label"><label for="idParent">' . get_lang('Parent') . '</label></td>';
$return .= '<td class="input">';
// Select for Parent item, root or chapter
$return .= '<select id="idParent" style="width:100%;" name="parent" onChange="javascript: load_cbo(this.value);" size="1">';
$return .= '<option class="top" value="0">' . $this->name . '</option>';
@ -5898,9 +5904,7 @@ class learnpath
$return .= '<td class="input">';
$return .= '<select class="learnpath_item_form" style="width:100%;" id="previous" name="previous" size="1">';
$return .= '<option class="top" value="0">' . get_lang('FirstPosition') . '</option>';
for ($i = 0; $i < count($arrLP); $i++) {
if ($arrLP[$i]['parent_item_id'] == $parent && $arrLP[$i]['id'] != $id) {
if ($extra_info['previous_item_id'] == $arrLP[$i]['id'])
@ -5908,12 +5912,11 @@ class learnpath
elseif ($action == 'add') $selected = 'selected="selected" ';
else
$selected = '';
$return .= '<option ' . $selected . 'value="' . $arrLP[$i]['id'] . '">' . get_lang('After') . ' "' . $arrLP[$i]['title'] . '"</option>';
}
}
$return .= '</select>';
$return .= '</td>';
$return .= '</tr>';
if ($action != 'move') {
@ -7585,7 +7588,10 @@ class learnpath
*
* @return string
*/
public function get_js_dropdown_array() {
$course_id = api_get_course_int_id();
$return = 'var child_name = new Array();' . "\n";
@ -7602,6 +7608,9 @@ class learnpath
$i = 0;
while ($row_zero = Database :: fetch_array($res_zero)) {
if ($row_zero['item_type'] == TOOL_QUIZ) {
$row_zero['title'] = Exercise::get_formated_title_variable($row_zero['title']);
}
$js_var = json_encode(get_lang('After').' '.$row_zero['title']);
$return .= 'child_name[0][' . $i . '] = '.$js_var.' ;' . "\n";
$return .= 'child_value[0][' . $i++ . '] = "' . $row_zero['id'] . '";' . "\n";

@ -382,6 +382,15 @@ if (isset($_GET['isStudentView']) && $_GET['isStudentView'] == 'true') {
$action = (!empty($_REQUEST['action']) ? $_REQUEST['action'] : '');
// format title to be displayed correctly if QUIZ
$post_title = "";
if (isset($_POST['title'])) {
$post_title = $_POST['title'];
if (isset($_POST['type']) && isset($_POST['title']) && $_POST['type'] == TOOL_QUIZ && !empty($_POST['title'])) {
$post_title = Exercise::format_title_variable($_POST['title']);
}
}
switch ($action) {
case 'add_item':
if (!$is_allowed_to_edit) {
@ -396,7 +405,7 @@ switch ($action) {
} else {
$_SESSION['refresh'] = 1;
if (isset($_POST['submit_button']) && !empty($_POST['title'])) {
if (isset($_POST['submit_button']) && !empty($post_title)) {
// If a title was sumbitted:
//Updating the lp.modified_on
@ -406,6 +415,7 @@ switch ($action) {
// Check post_time to ensure ??? (counter-hacking measure?)
require 'lp_add_item.php';
} else {
$_SESSION['post_time'] = $_POST['post_time'];
if ($_POST['type'] == TOOL_DOCUMENT) {
if (isset($_POST['path']) && $_GET['edit'] != 'true') {
@ -413,10 +423,10 @@ switch ($action) {
} else {
$document_id = $_SESSION['oLP']->create_document($_course);
}
$new_item_id = $_SESSION['oLP']->add_item($_POST['parent'], $_POST['previous'], $_POST['type'], $document_id, $_POST['title'], $_POST['description'], $_POST['prerequisites']);
$new_item_id = $_SESSION['oLP']->add_item($_POST['parent'], $_POST['previous'], $_POST['type'], $document_id, $post_title, $_POST['description'], $_POST['prerequisites']);
} else {
// For all other item types than documents, load the item using the item type and path rather than its ID.
$new_item_id = $_SESSION['oLP']->add_item($_POST['parent'], $_POST['previous'], $_POST['type'], $_POST['path'], $_POST['title'], $_POST['description'], $_POST['prerequisites'], $_POST['maxTimeAllowed']);
$new_item_id = $_SESSION['oLP']->add_item($_POST['parent'], $_POST['previous'], $_POST['type'], $_POST['path'], $post_title, $_POST['description'], $_POST['prerequisites'], $_POST['maxTimeAllowed']);
}
$url = api_get_self().'?action=add_item&type=step&lp_id='.intval($_SESSION['oLP']->lp_id);
header('Location: '.$url);
@ -566,7 +576,7 @@ switch ($action) {
if (!$lp_found) { error_log('New LP - No learnpath given for edit item', 0); require 'lp_list.php'; }
else {
$_SESSION['refresh'] = 1;
if (isset($_POST['submit_button']) && !empty($_POST['title'])) {
if (isset($_POST['submit_button']) && !empty($post_title)) {
//Updating the lp.modified_on
$_SESSION['oLP']->set_modified_on();
@ -576,7 +586,7 @@ switch ($action) {
if (isset($_FILES['mp3'])) {
$audio = $_FILES['mp3'];
}
$_SESSION['oLP']->edit_item($_REQUEST['id'], $_POST['parent'], $_POST['previous'], $_POST['title'], $_POST['description'], $_POST['prerequisites'], $audio, $_POST['maxTimeAllowed']);
$_SESSION['oLP']->edit_item($_REQUEST['id'], $_POST['parent'], $_POST['previous'], $post_title, $_POST['description'], $_POST['prerequisites'], $audio, $_POST['maxTimeAllowed']);
if (isset($_POST['content_lp'])) {
$_SESSION['oLP']->edit_document($_course);
@ -631,8 +641,7 @@ switch ($action) {
if (isset($_POST['submit_button'])) {
//Updating the lp.modified_on
$_SESSION['oLP']->set_modified_on();
$_SESSION['oLP']->edit_item($_GET['id'], $_POST['parent'], $_POST['previous'], $_POST['title'], $_POST['description']);
$_SESSION['oLP']->edit_item($_GET['id'], $_POST['parent'], $_POST['previous'], $post_title, $_POST['description']);
$is_success = true;
$url = api_get_self().'?action=add_item&type=step&lp_id='.intval($_SESSION['oLP']->lp_id);
header('Location: '.$url);

Loading…
Cancel
Save