Merging with 1.9.x

skala
Julio Montoya 12 years ago
commit f9dc857544
  1. 47
      documentation/changelog.html
  2. 2
      documentation/index.html
  3. 67
      main/admin/add_users_to_session.php
  4. 24
      main/admin/add_users_to_usergroup.php
  5. 34
      main/admin/calendar.lib.php
  6. 1
      main/admin/calendar_view_print.php
  7. 13
      main/admin/index.php
  8. 9
      main/admin/system_management.php
  9. 2
      main/admin/user_add.php
  10. 11
      main/admin/user_edit.php
  11. 3
      main/calendar/agenda.inc.php
  12. 182
      main/calendar/myagenda.inc.php
  13. 1
      main/calendar/print.php
  14. 18
      main/course_description/listing.php
  15. 4
      main/coursecopy/copy_course.php
  16. 6
      main/css/academica/frames.css
  17. 6
      main/css/baby_orange/frames.css
  18. 10
      main/css/base.css
  19. 6
      main/css/blue_lagoon/frames.css
  20. 6
      main/css/chamilo/frames.css
  21. 6
      main/css/chamilo_electric_blue/frames.css
  22. 6
      main/css/chamilo_green/frames.css
  23. 6
      main/css/chamilo_orange/frames.css
  24. 6
      main/css/chamilo_red/frames.css
  25. 6
      main/css/chamilo_sport_red/frames.css
  26. 6
      main/css/cool_blue/frames.css
  27. 6
      main/css/corporate/frames.css
  28. 6
      main/css/delicious_bordeaux/frames.css
  29. 6
      main/css/dokeos_blue/frames.css
  30. 6
      main/css/dokeos_classic/frames.css
  31. 6
      main/css/dokeos_classic_2D/frames.css
  32. 6
      main/css/empire_green/frames.css
  33. 6
      main/css/fruity_orange/frames.css
  34. 6
      main/css/public_admin/frames.css
  35. 6
      main/css/royal_purple/frames.css
  36. 6
      main/css/silver_line/frames.css
  37. 6
      main/css/sober_brown/frames.css
  38. 6
      main/css/steel_grey/frames.css
  39. 6
      main/css/tasty_olive/frames.css
  40. 144
      main/document/document.php
  41. 4
      main/document/upload.php
  42. 6
      main/exercice/admin.php
  43. 2
      main/exercice/answer_admin.inc.php
  44. 116
      main/exercice/exercise.class.php
  45. 20
      main/exercice/exercise.lib.php
  46. 4
      main/exercice/exercise_admin.php
  47. 6
      main/exercice/exercise_report.php
  48. 2
      main/exercice/exercise_result.php
  49. 15
      main/exercice/export/scorm/scorm_classes.php
  50. 3
      main/exercice/question.class.php
  51. 4
      main/exercice/question_list_admin.inc.php
  52. 4
      main/gradebook/gradebook_display_certificate.php
  53. 13
      main/inc/ajax/exercise.ajax.php
  54. 4
      main/inc/ajax/model.ajax.php
  55. 18
      main/inc/lib/attendance.lib.php
  56. 39
      main/inc/lib/course.lib.php
  57. 5
      main/inc/lib/course_home.lib.php
  58. 1
      main/inc/lib/display.lib.php
  59. 37
      main/inc/lib/document.lib.php
  60. 13
      main/inc/lib/events.lib.inc.php
  61. 37
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_file_upload.php
  62. 2
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_get_file_listing.php
  63. 14
      main/inc/lib/main_api.lib.php
  64. 21
      main/inc/lib/message.lib.php
  65. 94
      main/inc/lib/pdf.lib.php
  66. 7
      main/inc/lib/sortable_table.class.php
  67. 26
      main/inc/lib/statistics.lib.php
  68. 23
      main/inc/lib/text.lib.php
  69. 18
      main/inc/lib/thematic.lib.php
  70. 64
      main/inc/lib/tracking.lib.php
  71. 14
      main/inc/lib/usermanager.lib.php
  72. 3
      main/lang/english/tracking.inc.php
  73. 2
      main/lang/french/admin.inc.php
  74. 2
      main/lang/french/document.inc.php
  75. 2
      main/lang/french/index.inc.php
  76. 3
      main/lang/french/learnpath.inc.php
  77. 6
      main/lang/french/tracking.inc.php
  78. 4
      main/lang/french/trad4all.inc.php
  79. 3
      main/lang/galician/admin.inc.php
  80. 1
      main/lang/galician/exercice.inc.php
  81. 3
      main/lang/galician/gradebook.inc.php
  82. 4
      main/lang/galician/learnpath.inc.php
  83. 6
      main/lang/galician/tracking.inc.php
  84. 8
      main/lang/galician/trad4all.inc.php
  85. 21
      main/lang/german/admin.inc.php
  86. 2
      main/lang/german/index.inc.php
  87. 74
      main/lang/persian/agenda.inc.php
  88. 181
      main/lang/persian/course_info.inc.php
  89. 9
      main/lang/persian/coursebackup.inc.php
  90. 107
      main/lang/persian/courses.inc.php
  91. 46
      main/lang/persian/create_course.inc.php
  92. 82
      main/lang/persian/dropbox.inc.php
  93. 123
      main/lang/persian/group.inc.php
  94. 20
      main/lang/persian/hotspot.inc.php
  95. 47
      main/lang/persian/resourcelinker.inc.php
  96. 58
      main/lang/persian/scorm.inc.php
  97. 3
      main/lang/persian/trad4all.inc.php
  98. 2
      main/lang/spanish/admin.inc.php
  99. 3
      main/lang/spanish/learnpath.inc.php
  100. 6
      main/lang/spanish/tracking.inc.php
  101. Some files were not shown because too many files have changed in this diff Show More

@ -41,7 +41,7 @@
</ul>
<h1>Chamilo&nbsp;Changelog</h1>
<p>This is our technical changelog, aimed at providing you a list of the new features, small changes and bug fixes as well as the security issues, style changes and known issues that remain present. This changelog is provided version by version, latest versions first and helps you locate when a specific feature has been made available in Chamilo. If you would like a shorter list of features or a list of overall features, please check our website: <a href="http://www.chamilo.org/">http://www.chamilo.org/</a></p>
<p><i>Note: most #xyz references are issue numbers you can find in <a href="http://support.chamilo.org/projects/chamilo-18/issues" target="_blank">our public bug tracking system</a></i></p>
<p><i>Note: most #wxyz references are issue numbers you can find in <a href="http://support.chamilo.org/projects/chamilo-18/issues" target="_blank">our public bug tracking system</a></i></p>
<p>&nbsp;</p>
@ -61,11 +61,12 @@
<li></li>
</ul>
<h1>Chamilo 1.9.4 - , 15th of November, 2012</h1>
<h1>Chamilo 1.9.4 - Canta, 28th of December, 2012</h1>
<h3>Release notes - summary</h3>
<p>Chamilo 1.9.4 is a minor stable version with a series of improvements on top of 1.9.2.</p>
<h3>Release name</h3>
<p><a href="http://es.wikipedia.org/wiki/Puebla">Puebla</a> is a large city very close to México D.F. and is considered an "extension" of the capital city in many ways. Puebla has very nice blend of precolombine and spaniard architecture. All in all, we felt like Puebla, in tremendous growth, was a close image to Chamilo 1.9 on its way to 1.10.
<h3>New Features</h3>
<ul>
@ -77,7 +78,47 @@
</ul>
<h3>Debugging</h3>
<ul>
<li>Yoxview library was removed see #3307</li>
<li>Fixed some issues for IE9 compatibility (#2233)</li>
<li>Fixed issue with number of questions in random exercises(#2469)</li>
<li>Fixed issue with HTML &amp; text encoding in online editor (#3069)</li>
<li>3343?</li>
<li>3417?</li>
<li>Documents: Fixed problem in documents quota (#3535)</li>
<li>Search: Fixed blank page when search plugin enabled (#3550)</li>
<li>Exercises: Fixed view bug when moving questions (#3775)</li>
<li>Global: User's language was still used after disabling (#3877)</li>
<li>Learning paths: Navigation blocked (#3888)</li>
<li>Exercises: Fixed problem with accentuated characters in image zones (#3919)</li>
<li>Global: Anonymous user appears in closed course's log (#3938)</li>
<li>Work: Assignment's author not always right (#4000)</li>
<li>Global: Error in upper toolbar (#4038)</li>
<li>Work: Tasks without directory lost in upgrade from 1.8 (#4046)</li>
<li>Global: Bug using api_strtotime() (#4263)</li>
<li>4271?</li>
<li>4866?</li>
<li>Documents: MPEG video playing doesn't work (#4877)</li>
<li>Global: IE9 doesn't show Cosmic Campus menu background (#5194)</li>
<li>Global: Error in WMV MIME type (#5294)</li>
<li>Documents: (rejected) Documents uploaded from courses of the same session (#5297)</li>
<li>Social: Height of social messaging's answer subject field is too low (#5326)</li>
<li>Documents: Documents in learning path (sessions) do not appear to tutor (#5328)</li>
<li>Work: Homework pagination count errors (#5332)</li>
<li>5343?</li>
<li>Documents: Simple upload doesn't work with HTTPS (#5344)</li>
<li>Global: Login field does not get focus in IE (#5345)</li>
<li>Sessions: Removing user from one course doesn't update the subscribed users count (#5352)</li>
<li>Global: Option to show code in course title doesn't work (#5355)</li>
<li>Exercises: Cannot open HotPotatoes imported file if user is student and user id &gt; 9 (#5359)<li>
<li>Exercises: HotPotatoes frame too high if Admin bar is on (#5363)</li>
<li>Exercises: Cannot see HotPotatoes tests result (#5376)</li>
</ul>
<h3>Third-Party Libraries additions/updates</h3>
<ul>
<li>Updated BBB API</li>
</ul>
<h3>Removals</h3>
<ul>
<li>Documents: Yoxview library was removed see #3307</li>
</ul>

@ -33,7 +33,7 @@
<div class="container">
<div class="row">
<div class="hero-unit">
<h1>Chamilo 1.10 - Documentation</h1>
<h1>Chamilo 1.9 - Documentation</h1>
<br />
<a class="btn btn-primary btn-large" href="installation_guide.html">English installation guide</a>

@ -498,18 +498,12 @@ if(!empty($errorMsg)) {
}
?>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<!-- Users -->
<tr>
<td align="center"><b><?php echo get_lang('UserListInPlatform') ?> :</b>
</td>
<td></td>
<td align="center"><b><?php echo get_lang('UserListInSession') ?> :</b></td>
</tr>
<div class="row">
<div class="span5">
<div class="multiple_select_header">
<b><?php echo get_lang('UserListInPlatform') ?> :</b>
<?php if ($add_type=='multiple') { ?>
<tr>
<td align="center">
<?php echo get_lang('FirstLetterUser'); ?> :
<select id="first_letter_user" name="firstLetterUser" onchange = "change_select(this.value);" >
@ -518,12 +512,8 @@ if(!empty($errorMsg)) {
echo Display :: get_alphabet_options();
?>
</select>
</td>
<td align="center">&nbsp;</td>
</tr>
<?php } ?>
<tr>
<td align="center">
</div>
<div id="content_source">
<?php
if (!($add_type=='multiple')) {
@ -534,7 +524,7 @@ if(!empty($errorMsg)) {
} else {
?>
<div id="ajax_list_users_multiple">
<select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" style="width:380px;">
<select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" class="span5">
<?php
foreach ($nosessionUsersList as $uid => $enreg) {
?>
@ -552,8 +542,10 @@ if(!empty($errorMsg)) {
?>
</div>
</td>
<td width="10%" valign="middle" align="center">
</div>
<div class="span2">
<div style="padding-top:54px;width:auto;text-align: center;">
<?php
if ($ajax_search) {
?>
@ -564,27 +556,13 @@ if(!empty($errorMsg)) {
<button class="arrowr" type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))"></button>
<br /><br />
<button class="arrowl" type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))"></button>
<?php
}
?>
<br /><br /><br /><br /><br /><br />
</td>
<td align="center">
<select id="destination_users" name="sessionUsersList[]" multiple="multiple" size="15" style="width:380px;">
<?php
foreach($sessionUsersList as $enreg) {
?>
<option value="<?php echo $enreg['user_id']; ?>"><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']).' ('.$enreg['username'].')'; ?></option>
<?php
}
unset($sessionUsersList);
?>
</select></td>
</tr>
<tr>
<td colspan="3" align="center">
</div>
<br />
<br />
<?php
if(isset($_GET['add'])) {
@ -594,9 +572,24 @@ unset($sessionUsersList);
echo '<button class="save" type="button" value="" onclick="valide()" >'.get_lang('SubscribeUsersToSession').'</button>';
}
?>
</td>
</tr>
</table>
</div>
<div class="span5">
<div class="multiple_select_header">
<b><?php echo get_lang('UserListInSession') ?> :</b>
</div>
<select id="destination_users" name="sessionUsersList[]" multiple="multiple" size="15" class="span5">
<?php
foreach($sessionUsersList as $enreg) {
?>
<option value="<?php echo $enreg['user_id']; ?>"><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']).' ('.$enreg['username'].')'; ?></option>
<?php
}
unset($sessionUsersList);
?>
</select>
</div>
</div>
</form>
<script>

@ -265,15 +265,16 @@ if(!empty($errorMsg)) {
<div class="row">
<div class="span5">
<b><?php echo get_lang('UsersInPlatform') ?> :</b><br />
<?php echo get_lang('FirstLetterUser'); ?> :
<select id="first_letter_user" name="firstLetterUser" onchange="change_select();">
<option value = "%">--</option>
<?php
echo Display :: get_alphabet_options($first_letter_user);
?>
</select>
<div class="multiple_select_header">
<b><?php echo get_lang('UsersInPlatform') ?> :</b>
<?php echo get_lang('FirstLetterUser'); ?> :
<select id="first_letter_user" name="firstLetterUser" onchange="change_select();">
<option value = "%">--</option>
<?php
echo Display :: get_alphabet_options($first_letter_user);
?>
</select>
</div>
<?php echo Display::select('elements_not_in_name', $elements_not_in, '',array('class'=>'span5', 'multiple'=>'multiple','id'=>'elements_not_in','size'=>'15px'),false); ?>
<br />
@ -290,9 +291,10 @@ if(!empty($errorMsg)) {
</div>
</div>
<div class="span5">
<br /><br />
<b><?php echo get_lang('UsersInGroup') ?> :</b><br />
<div class="multiple_select_header">
<b><?php echo get_lang('UsersInGroup') ?> :</b>
</div>
<?php
echo Display::select('elements_in_name[]', $elements_in, '', array('class'=>'span5', 'multiple'=>'multiple','id'=>'elements_in','size'=>'15px'),false );
unset($sessionUsersList);

@ -354,7 +354,7 @@ function display_monthcalendar($month, $year) {
foreach ($data[$curday] as $key=>$agenda_item) {
foreach ($agenda_item as $key=>$value) {
$start_time = api_convert_and_format_date($value['start_date'], TIME_NO_SEC_FORMAT);
$end_time = api_convert_and_format_date($value['end_date'], TIME_NO_SEC_FORMAT);
$end_time = api_convert_and_format_date($value['end_date'], TIME_NO_SEC_FORMAT);
$dayheader .= '<br /><b>'.$start_time.' - '.$end_time.'</b>';
$dayheader .= ' - ';
$dayheader .= $value['title'];
@ -469,7 +469,7 @@ function display_student_links() {
} else {
//echo '<a href="'.api_get_self().'?sort=desc&amp;origin='.Security::remove_XSS($_GET['origin']).'"> '.Display::return_icon('calendar_inverse.png',get_lang('AgendaSortChronologicallyDown'),'',ICON_SIZE_MEDIUM).'</a>';
}
} else {
} else {
echo '<a href="'.api_get_self().'?action=view&amp;view=list">'.Display::return_icon('week.png', get_lang('ListView'),'',ICON_SIZE_MEDIUM).'</a>';
}
@ -545,10 +545,10 @@ function save_edit_agenda_item($id, $title, $content, $start_date, $end_date) {
$start_date = api_get_utc_datetime($start_date);
$start_date = Database::escape_string($start_date);
$end_date = api_get_utc_datetime($end_date);
$end_date = Database::escape_string($end_date);
// store the modifications in the table calendar_event
$sql = "UPDATE ".$TABLEAGENDA."
@ -706,7 +706,7 @@ function display_agenda_items() {
echo '<table class="data_table">';
$myrow["start_date"] = api_get_local_time($myrow["start_date"]);
if ($month_bar != api_format_date($myrow["start_date"], "%m%Y")) {
$month_bar = api_format_date($myrow["start_date"], "%m%Y");
echo "<tr><td class=\"agenda_month_divider\" colspan=\"3\" valign=\"top\">".
@ -768,7 +768,7 @@ function display_agenda_items() {
// display: the title
echo "<tr class='row_odd'>";
echo "<td>".get_lang("StartTimeWindow").": ";
echo "<td>".get_lang("StartTimeWindow").": ";
echo api_format_date($myrow["start_date"], DATE_TIME_FORMAT_LONG);
echo "</td>";
echo "<td>";
@ -778,7 +778,7 @@ function display_agenda_items() {
echo api_format_date($myrow["end_date"], DATE_TIME_FORMAT_LONG);
}
echo "</td>";
if (!$is_repeated && (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous()))) {
if( ! (api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id'] ) ) )
{ // a coach can only delete an element belonging to his session
@ -816,7 +816,6 @@ function display_agenda_items() {
--------------------------------------------------*/
$content = $myrow['content'];
$content = make_clickable($content);
$content = text_filter($content);
echo "<tr class='row_even'>";
echo "<td colspan='3'>";
@ -1017,7 +1016,6 @@ function display_one_agenda_item($agenda_id)
$content = $myrow['content'];
$content = make_clickable($content);
$content = text_filter($content);
//echo "<tr><td class=\"".$text_style."\" colspan='2'>";
//echo $content;
//echo "</td></tr>";
@ -1219,22 +1217,22 @@ function show_add_form($id = '') {
// if the id is set then we are editing an agenda item
if (is_int($id)) {
//echo "before get_agenda_item".$_SESSION['allow_individual_calendar'];
$item_2_edit=get_agenda_item($id);
$title = $item_2_edit['title'];
$content= $item_2_edit['content'];
// start date
$item_2_edit['start_date'] = api_get_local_time($item_2_edit['start_date']);
// start date
list($datepart, $timepart) = split(" ", $item_2_edit['start_date']);
list($year, $month, $day) = explode("-", $datepart);
list($hours, $minutes, $seconds) = explode(":", $timepart);
// end date
$item_2_edit['end_date'] = api_get_local_time($item_2_edit['end_date']);
list($datepart, $timepart) = split(" ", $item_2_edit['end_date']);
@ -1249,7 +1247,7 @@ function show_add_form($id = '') {
$title=stripslashes($title);
// we start a completely new item, we do not come from the resource linker
if ($_GET['originalresource']!=="no" and $_GET['action']=="add") {
$_SESSION["formelements"]=null;
$_SESSION["formelements"]=null;
}
?>
@ -2800,12 +2798,12 @@ function agenda_add_item($title, $content, $db_start_date, $db_end_date) {
// some filtering of the input data
$title = Database::escape_string($title); // no html allowed in the title
$content = Database::escape_string($content);
$db_start_date = api_get_utc_datetime($db_start_date);
$start_date = Database::escape_string($db_start_date);
$db_end_date = api_get_utc_datetime($db_end_date);
$end_date = Database::escape_string($db_end_date);
$end_date = Database::escape_string($db_end_date);
// check if exists in calendar_event table
$sql = "SELECT * FROM $t_agenda WHERE title='$title' AND content = '$content' AND start_date = '$start_date' AND end_date = '$end_date' ";

@ -52,7 +52,6 @@ while($row=Database::fetch_array($result))
{
$row['content'] = $row['content'];
$row['content'] = make_clickable($row['content']);
$row['content'] = text_filter($row['content']);
$row['content'] = str_replace('<a ','<a target="_blank" ',$row['content']);
if(!empty($row['title']))

@ -232,7 +232,20 @@ if (api_is_platform_admin()) {
$blocks['settings']['search_form'] = null;
/* Extensions */
/*
$blocks['extensions']['icon'] = Display::return_icon('visio_meeting.gif', get_lang('ConfigureExtensions'), array(), ICON_SIZE_SMALL, false);
$blocks['extensions']['label'] = api_ucfirst(get_lang('ConfigureExtensions'));
$items = array();
$items[] = array('url'=>'configure_extensions.php?display=visio', 'label' => get_lang('Visioconf'));
$items[] = array('url'=>'configure_extensions.php?display=ppt2lp', 'label' => get_lang('Ppt2lp'));
//$items[] = array('url'=>'configure_extensions.php?display=ephorus', 'label' => get_lang('EphorusPlagiarismPrevention'));
$items[] = array('url'=>'configure_extensions.php?display=search', 'label' => get_lang('SearchEngine'));
$items[] = array('url'=>'configure_extensions.php?display=serverstats', 'label' => get_lang('ServerStatistics'));
$items[] = array('url'=>'configure_extensions.php?display=bandwidthstats', 'label' => get_lang('BandWidthStatistics'));
$blocks['extensions']['items'] = $items;
*/
//Skills
if (api_get_setting('allow_skills_tool') == 'true') {

@ -33,8 +33,6 @@ class SystemManagementPage extends AdminPage
function url($params)
{
$token = Security::get_token();
$params[self::PARAM_SECURITY_TOKEN] = $token;
return Uri::here($params);
}
@ -43,9 +41,10 @@ class SystemManagementPage extends AdminPage
$message = get_lang('RemoveOldDatabaseMessage');
$message_table = get_lang('RemoveOldTables');
$message_table .= "<br />".implode(' , ', self::get_tables_to_delete());
$url = $this->url(array(self::PARAM_ACTION => 'drop_old_databases'));
$url_table = $this->url(array(self::PARAM_ACTION => 'drop_old_tables'));
$message_table .= "<br />".implode(' , ', self::get_tables_to_delete());
$token = Security::get_token();
$url = $this->url(array(self::PARAM_ACTION => 'drop_old_databases', self::PARAM_SECURITY_TOKEN => $token));
$url_table = $this->url(array(self::PARAM_ACTION => 'drop_old_tables', self::PARAM_SECURITY_TOKEN => $token));
$go = get_lang('Go');
$access_url_id = api_get_current_access_url_id();

@ -268,7 +268,7 @@ if( $form->validate()) {
}
if ($user['radio_expiration_date'] == '1') {
$expiration_date = $user['expiration_date'];
$expiration_date = $user['expiration_date'];
} else {
$expiration_date = '0000-00-00 00:00:00';
}

@ -292,16 +292,20 @@ if ($expiration_date == '0000-00-00 00:00:00') {
$user_data['expiration_date']['Y'] = date('Y');
} else {
$user_data['radio_expiration_date'] = 1;
$user_data['expiration_date'] = array();
$user_data['expiration_date']['d'] = substr($expiration_date, 8, 2);
$user_data['expiration_date']['F'] = substr($expiration_date, 5, 2);
$user_data['expiration_date']['Y'] = substr($expiration_date, 0, 4);
$user_data['expiration_date']['H'] = substr($expiration_date, 11, 2);
$user_data['expiration_date']['i'] = substr($expiration_date, 14, 2);
}
$form->setDefaults($user_data);
$error_drh = false;
// Validate form
if ( $form->validate()) {
if ($form->validate()) {
$user = $form->getSubmitValues();
$is_user_subscribed_in_course = CourseManager::is_user_subscribed_in_course($user['user_id']);
@ -335,10 +339,11 @@ if ( $form->validate()) {
$hr_dept_id = intval($user['hr_dept_id']);
$language = $user['language'];
if ($user['radio_expiration_date'] == '1' && !$user_data['platform_admin']) {
$expiration_date=$user['expiration_date'];
$expiration_date = return_datetime_from_array($user['expiration_date']);
} else {
$expiration_date='0000-00-00 00:00:00';
$expiration_date = '0000-00-00 00:00:00';
}
$active = $user_data['platform_admin'] ? 1 : intval($user['active']);
//If the user is set to admin the status will be overwrite by COURSEMANAGER = 1

@ -2135,8 +2135,7 @@ function display_one_agenda_item($agenda_id) {
// Content
$content = $myrow['content'];
$content = make_clickable($content);
$content = text_filter($content);
echo '<tr class="row_even">';
echo '<td '.(api_is_allowed_to_edit()?'colspan="3"':'colspan="2"'). '>';
echo $content;

@ -2,12 +2,12 @@
/* For licensing terms, see /license.txt */
/**
@author: Julio Montoya <gugli100@gmail.com> BeezNest 2011 Bugfixes
//Original code found in Dok€os
@author: Patrick Cool <patrick.cool@UGent.be>, Ghent University
@author: Toon Van Hoecke <toon.vanhoecke@ugent.be>, Ghent University
@author: Eric Remy (initial version)
@todo create a class and merge with the agenda.inc.php
*/
@ -22,13 +22,13 @@ require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
/**
* This function retrieves all the agenda items of all the courses the user is subscribed to
*/
function get_myagendaitems($user_id, $courses_dbs, $month, $year) {
function get_myagendaitems($user_id, $courses_dbs, $month, $year) {
global $setting_agenda_link;
$user_id = intval($user_id);
$items = array();
$my_list = array();
// get agenda-items for every course
foreach ($courses_dbs as $key => $array_course_info) {
//databases of the courses
@ -77,29 +77,29 @@ function get_myagendaitems($user_id, $courses_dbs, $month, $year) {
}
}
$result = Database::query($sqlquery);
while ($item = Database::fetch_array($result, 'ASSOC')) {
$agendaday = -1;
if ($item['start_date'] != '0000-00-00 00:00:00') {
$item['start_date'] = api_get_local_time($item['start_date']);
$item['start_date_tms'] = api_strtotime($item['start_date']);
$agendaday = date("j", $item['start_date_tms']);
$agendaday = date("j", $item['start_date_tms']);
}
if ($item['end_date'] != '0000-00-00 00:00:00') {
$item['end_date'] = api_get_local_time($item['end_date']);
}
}
$url = api_get_path(WEB_CODE_PATH)."calendar/agenda.php?cidReq=".urlencode($array_course_info["code"])."&day=$agendaday&month=$month&year=$year#$agendaday";
$item['url'] = $url;
$item['course_name'] = $array_course_info['title'];
$item['course_name'] = $array_course_info['title'];
$item['calendar_type'] = 'course';
$item['course_id'] = $array_course_info['course_id'];
$my_list[$agendaday][] = $item;
$my_list[$agendaday][] = $item;
}
}
// sorting by hour for every day
$agendaitems = array ();
while (list ($agendaday, $tmpitems) = each($items)) {
@ -110,7 +110,7 @@ function get_myagendaitems($user_id, $courses_dbs, $month, $year) {
while (list ($key, $val) = each($tmpitems)) {
$agendaitems[$agendaday] .= $val;
}
}
}
return $my_list;
}
@ -123,8 +123,8 @@ function get_myagendaitems($user_id, $courses_dbs, $month, $year) {
* @param string The month name
* @return void Direct output
*/
function display_mymonthcalendar($user_id, $agendaitems, $month, $year, $weekdaynames = array(), $monthName, $show_content = true) {
global $DaysShort, $course_path;
function display_mymonthcalendar($user_id, $agendaitems, $month, $year, $weekdaynames = array(), $monthName, $show_content = true) {
global $DaysShort, $course_path;
//Handle leap year
$numberofdays = array (0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if (($year % 400 == 0) or ($year % 4 == 0 and $year % 100 <> 0))
@ -134,29 +134,29 @@ function display_mymonthcalendar($user_id, $agendaitems, $month, $year, $weekday
//Start the week on monday
$startdayofweek = $dayone['wday'] <> 0 ? ($dayone['wday'] - 1) : 6;
$g_cc = (isset($_GET['courseCode'])?$_GET['courseCode']:'');
$prev_icon = Display::return_icon('action_prev.png',get_lang('Previous'));
$next_icon = Display::return_icon('action_next.png',get_lang('Next'));
$next_month = ($month == 1 ? 12 : $month -1);
$prev_month = ($month == 12 ? 1 : $month +1);
$next_year = ($month == 1 ? $year -1 : $year);
$prev_year = ($month == 12 ? $year +1 : $year);
if ($show_content) {
$back_url = Display::url($prev_icon, api_get_self()."?coursePath=".urlencode($course_path)."&amp;courseCode=".Security::remove_XSS($g_cc)."&amp;action=view&amp;view=month&amp;month=".$next_month."&amp;year=".$next_year);
$back_url = Display::url($prev_icon, api_get_self()."?coursePath=".urlencode($course_path)."&amp;courseCode=".Security::remove_XSS($g_cc)."&amp;action=view&amp;view=month&amp;month=".$next_month."&amp;year=".$next_year);
$next_url = Display::url($next_icon, api_get_self()."?coursePath=".urlencode($course_path)."&amp;courseCode=".Security::remove_XSS($g_cc)."&amp;action=view&amp;view=month&amp;month=".$prev_month."&amp;year=".$prev_year);
} else {
$back_url = Display::url($prev_icon, '', array('onclick'=>"load_calendar('".$user_id."','".$next_month."', '".$next_year."'); "));
$next_url = Display::url($next_icon, '', array('onclick'=>"load_calendar('".$user_id."','".$prev_month."', '".$prev_year."'); "));
$back_url = Display::url($prev_icon, '', array('onclick'=>"load_calendar('".$user_id."','".$next_month."', '".$next_year."'); "));
$next_url = Display::url($next_icon, '', array('onclick'=>"load_calendar('".$user_id."','".$prev_month."', '".$prev_year."'); "));
}
echo '<table id="agenda_list"><tr>';
echo '<th width="10%">'.$back_url.'</th>';
echo '<th width="80%" colspan="5"><br /><h3>'.$monthName." ".$year.'</h3></th>';
echo '<th width="10%">'.$next_url.'</th>';
echo '</tr>';
echo '<tr>';
@ -164,7 +164,7 @@ function display_mymonthcalendar($user_id, $agendaitems, $month, $year, $weekday
echo '<td class="weekdays">'.$DaysShort[$ii % 7].'</td>';
}
echo '</tr>';
$curday = -1;
$today = getdate();
while ($curday <= $numberofdays[$month]) {
@ -176,31 +176,31 @@ function display_mymonthcalendar($user_id, $agendaitems, $month, $year, $weekday
if (($curday > 0) && ($curday <= $numberofdays[$month])) {
$bgcolor = $class = 'class="days_week"';
$dayheader = Display::div($curday, array('class'=>'agenda_day'));
if (($curday == $today['mday']) && ($year == $today['year']) && ($month == $today['mon'])) {
if (($curday == $today['mday']) && ($year == $today['year']) && ($month == $today['mon'])) {
$class = "class=\"days_today\" style=\"width:10%;\"";
}
echo "<td ".$class.">".$dayheader;
if (!empty($agendaitems[$curday])) {
if (!empty($agendaitems[$curday])) {
$items = $agendaitems[$curday];
$items = msort($items, 'start_date_tms');
foreach($items as $value) {
$value['title'] = Security::remove_XSS($value['title']);
$start_time = api_format_date($value['start_date'], TIME_NO_SEC_FORMAT);
$end_time = '';
if (!empty($value['end_date']) && $value['end_date'] != '0000-00-00 00:00:00') {
$end_time = '-&nbsp;<i>'.api_format_date($value['end_date'], DATE_TIME_FORMAT_LONG).'</i>';
}
$complete_time = '<i>'.api_format_date($value['start_date'], DATE_TIME_FORMAT_LONG).'</i>&nbsp;'.$end_time;
}
$complete_time = '<i>'.api_format_date($value['start_date'], DATE_TIME_FORMAT_LONG).'</i>&nbsp;'.$end_time;
$time = '<i>'.$start_time.'</i>';
switch($value['calendar_type']) {
case 'personal':
$bg_color = '#D0E7F4';
$icon = Display::return_icon('user.png', get_lang('MyAgenda'), array(), ICON_SIZE_SMALL);
$bg_color = '#D0E7F4';
$icon = Display::return_icon('user.png', get_lang('MyAgenda'), array(), ICON_SIZE_SMALL);
break;
case 'global':
$bg_color = '#FFBC89';
@ -216,34 +216,34 @@ function display_mymonthcalendar($user_id, $agendaitems, $month, $year, $weekday
$icon = Display::url(Display::return_icon($icon_name, $value['course_name'].' '.get_lang('Course'), array(), ICON_SIZE_SMALL), $value['url']);
} else {
$icon = Display::return_icon($icon_name, $value['course_name'].' '.get_lang('Course'), array(), ICON_SIZE_SMALL);
}
break;
}
break;
default:
break;
}
}
$result = '<div class="rounded_div_agenda" style="background-color:'.$bg_color.';">';
if ($show_content) {
if ($show_content) {
//Setting a personal event to green
$icon = Display::div($icon, array('style'=>'float:right'));
$icon = Display::div($icon, array('style'=>'float:right'));
$link = $value['calendar_type'].'_'.$value['id'].'_'.$value['course_id'].'_'.$value['session_id'];
//Link to bubble
$url = Display::url(cut($value['title'], 40), '#', array('id'=>$link, 'class'=>'opener'));
//Link to bubble
$url = Display::url(cut($value['title'], 40), '#', array('id'=>$link, 'class'=>'opener'));
$result .= $time.' '.$icon.' '.Display::div($url);
//Hidden content
$content = Display::div($icon.Display::tag('h2', $value['course_name']).'<hr />'.Display::tag('h3', $value['title']).$complete_time.'<hr />'.Security::remove_XSS($value['content']));
//Main div
$result .= Display::div($content, array('id'=>'main_'.$link, 'class' => 'dialog', 'style' => 'display:none'));
$result .= '</div>';
echo $result;
$result .= '</div>';
echo $result;
//echo Display::div($content, array('id'=>'main_'.$value['calendar_type'].'_'.$value['id'], 'class' => 'dialog'));
} else {
} else {
echo $result .= $icon.'</div>';
}
}
@ -334,15 +334,15 @@ function show_new_personal_item_form($id = "") {
// we construct the default time and date data (used if we are not editing a personal agenda item)
//$today = getdate();
$current_date = api_strtotime(api_get_local_time());
$year = date('Y', $current_date);
$month = date('m', $current_date);
$day = date('d', $current_date);
$hours = date('H', $current_date);
$day = date('d', $current_date);
$hours = date('H', $current_date);
$minutes = date('i', $current_date);
//echo date('Y', $current_date);
/*
$day = $today['mday'];
@ -366,14 +366,14 @@ function show_new_personal_item_form($id = "") {
$result = Database::query($sql);
$aantal = Database::num_rows($result);
if ($aantal != 0) {
$row = Database::fetch_array($result);
$row = Database::fetch_array($result);
$row['date'] = api_get_local_time($row['date']);
$year = substr($row['date'], 0, 4);
$month = substr($row['date'], 5, 2);
$day = substr($row['date'], 8, 2);
$hours = substr($row['date'], 11, 2);
$minutes= substr($row['date'], 14, 2);
$title = $row['title'];
$content= $row['text'];
} else {
@ -483,7 +483,7 @@ function show_new_personal_item_form($id = "") {
echo '</div>';
// ********** The text field ********** \\
echo '<br /><div class="formw">';
require_once api_get_path(LIBRARY_PATH) . "/fckeditor/fckeditor.php";
$oFCKeditor = new FCKeditor('frm_content') ;
@ -499,7 +499,7 @@ function show_new_personal_item_form($id = "") {
$oFCKeditor->Value = $content;
$return = $oFCKeditor->CreateHtml();
echo $return;
echo '</div>';
// ********** The Submit button********** \\
echo '<div>';
@ -526,22 +526,22 @@ function store_personal_item($day, $month, $year, $hour, $minute, $title, $conte
//constructing the date
$date = $year."-".$month."-".$day." ".$hour.":".$minute.":00";
if (!empty($date)) {
$date = api_get_utc_datetime($date);
}
$date = Database::escape_string($date);
$title = Database::escape_string($title);
$content = Database::escape_string($content);
$id = intval($id);
if (!empty($id)) {
if (!empty($id)) {
// we are updating
$sql = "UPDATE ".$tbl_personal_agenda." SET user='".api_get_user_id()."', title='".$title."', text='".$content."', date='".$date."' WHERE id= ".$id;
} else {
} else {
// we are adding a new item
$sql = "INSERT INTO $tbl_personal_agenda (user, title, text, date) VALUES ('".api_get_user_id()."','$title', '$content', '$date')";
$sql = "INSERT INTO $tbl_personal_agenda (user, title, text, date) VALUES ('".api_get_user_id()."','$title', '$content', '$date')";
}
$result = Database::query($sql);
}
@ -608,13 +608,13 @@ function get_courses_of_user() {
function get_personal_agenda_items($user_id, $agendaitems, $day = "", $month = "", $year = "", $week = "", $type) {
$tbl_personal_agenda = Database :: get_user_personal_table(TABLE_PERSONAL_AGENDA);
$user_id = intval($user_id);
// 1. creating the SQL statement for getting the personal agenda items in MONTH view
if ($type == "month_view" or $type == "") {
// we are in month view
$sql = "SELECT * FROM ".$tbl_personal_agenda." WHERE user='".$user_id."' and MONTH(date)='".$month."' AND YEAR(date) = '".$year."' ORDER BY date ASC";
}
// 2. creating the SQL statement for getting the personal agenda items in WEEK view
// we are in week view
if ($type == "week_view") {
@ -639,19 +639,19 @@ function get_personal_agenda_items($user_id, $agendaitems, $day = "", $month = "
$start_filter = $year."-".$month."-".$day." 00:00:00";
$start_filter = api_get_utc_datetime($start_filter);
$end_filter = $year."-".$month."-".$day." 23:59:59";
$end_filter = api_get_utc_datetime($end_filter);
$end_filter = api_get_utc_datetime($end_filter);
$sql = " SELECT * FROM ".$tbl_personal_agenda." WHERE user='".$user_id."' AND date>='".$start_filter."' AND date<='".$end_filter."'";
}
}
$result = Database::query($sql);
while ($item = Database::fetch_array($result, 'ASSOC')) {
while ($item = Database::fetch_array($result, 'ASSOC')) {
$time_minute = api_convert_and_format_date($item['date'], TIME_NO_SEC_FORMAT);
$item['date'] = api_get_local_time($item['date']);
$item['start_date_tms'] = api_strtotime($item['date']);
$item['content'] = $item['text'];
// we break the date field in the database into a date and a time part
// we break the date field in the database into a date and a time part
$agenda_db_date = explode(" ", $item['date']);
$date = $agenda_db_date[0];
$time = $agenda_db_date[1];
@ -662,18 +662,18 @@ function get_personal_agenda_items($user_id, $agendaitems, $day = "", $month = "
$day = intval($agendadate[2]);
// we divide the time part into hour, minutes, seconds
$agendatime = explode(":", $time);
$hour = $agendatime[0];
$minute = $agendatime[1];
$second = $agendatime[2];
$second = $agendatime[2];
if ($type == 'month_view') {
$item['calendar_type'] = 'personal';
$item['start_date'] = $item['date'];
$agendaitems[$day][] = $item;
continue;
}
}
// if the student has specified a course we a add a link to that course
if ($item['course'] <> "") {
$url = api_get_path(WEB_CODE_PATH)."calendar/agenda.php?cidReq=".urlencode($item['course'])."&amp;day=$day&amp;month=$month&amp;year=$year#$day"; // RH //Patrick Cool: to highlight the relevant agenda item
@ -695,7 +695,7 @@ function get_personal_agenda_items($user_id, $agendaitems, $day = "", $month = "
if ($agendatime['1'] >= '30') {
$halfhour = $halfhour +1;
}
//Display events by list
$agendaitems[$halfhour] .= "<div><i>$time_minute</i> $course_link <a href=\"myagenda.php?action=view&amp;view=personal&amp;day=$day&amp;month=$month&amp;year=$year&amp;id=".$item['id']."#".$item['id']."\" class=\"personal_agenda\">".$item['title']."</a></div>";
}
@ -748,16 +748,16 @@ function show_personal_agenda() {
// starting the table output
echo '<table class="data_table">';
$th = Display::tag('th', get_lang('Title'));
$th .= Display::tag('th', get_lang('Content'));
$th .= Display::tag('th', get_lang('StartTimeWindow'));
$th .= Display::tag('th', get_lang('Modify'));
echo Display::tag('tr', $th);
if (Database::num_rows($result) > 0) {
$counter = 0;
$counter = 0;
while ($myrow = Database::fetch_array($result)) {
/* display: the month bar */
if ($month_bar != date("m", strtotime($myrow["date"])).date("Y", strtotime($myrow["date"]))) {
@ -777,28 +777,28 @@ function show_personal_agenda() {
$class = 'row_even';
if ($counter % 2) {
$class = 'row_odd';
$class = 'row_odd';
}
echo '<tr class="'.$class.'">';
echo '<tr class="'.$class.'">';
echo '<td>';
/* display: the title */
echo $myrow['title'];
echo "</td>";
echo "</td>";
// display: the content
$content = $myrow['text'];
echo "<td>";
echo $content;
echo "</td>";
//display: date and time
//display: date and time
echo '<td>';
// adding an internal anchor
/*echo "<a name=\"".$myrow["id"]."\"></a>";
echo date("d", strtotime($myrow["date"]))." ".$MonthsLong[date("n", strtotime($myrow["date"])) - 1]." ".date("Y", strtotime($myrow["date"]))."&nbsp;";*/
$myrow["date"] = api_get_local_time($myrow["date"]);
echo api_format_date($myrow["date"], DATE_TIME_FORMAT_LONG);
echo "</td>";
@ -889,7 +889,7 @@ function show_simple_personal_agenda($user_id) {
/*
$content = $myrow['title'];
$content = make_clickable($content);
$content = text_filter($content);*/
*/
return $content;
}
} else {

@ -48,7 +48,6 @@ $result = Database::query($sql);
while($row=Database::fetch_array($result)) {
$row['content'] = $row['content'];
$row['content'] = make_clickable($row['content']);
$row['content'] = text_filter($row['content']);
$row['content'] = str_replace('<a ','<a target="_blank" ',$row['content']);
if(!empty($row['title'])) {

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */
/**
* Template (view in MVC pattern) used for listing course descriptions
* Template (view in MVC pattern) used for listing course descriptions
* @author Christian Fasanando <christian1827@gmail.com>
* @package chamilo.course_description
*/
@ -49,30 +49,30 @@ $user_info = api_get_user_info();
if (isset($descriptions) && count($descriptions) > 0) {
foreach ($descriptions as $id => $description) {
echo '<div class="sectiontitle">';
if (api_is_allowed_to_edit(null,true) && !$history) {
if (api_get_session_id() == $description['session_id']) {
$description['title'] = $description['title'].' '.api_get_session_image(api_get_session_id(), $user_info['status']);
//delete
echo '<a href="'.api_get_self().'?id='.$description['id'].'&cidReq='.api_get_course_id().'&id_session='.$description['session_id'].'&action=delete&description_type='.$description['description_type'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES,$charset)).'\')) return false;">';
echo Display::return_icon('delete.png', get_lang('Delete'), array('style' => 'vertical-align:middle;float:right;'),ICON_SIZE_SMALL);
echo '</a> ';
//edit
echo '<a href="'.api_get_self().'?id='.$description['id'].'&cidReq='.api_get_course_id().'&id_session='.$description['session_id'].'&action=edit&description_type='.$description['description_type'].'">';
echo Display::return_icon('edit.png', get_lang('Edit'), array('style' => 'vertical-align:middle;float:right; padding-right:4px;'),ICON_SIZE_SMALL);
echo Display::return_icon('edit.png', get_lang('Edit'), array('style' => 'vertical-align:middle;float:right; padding-right:4px;'),ICON_SIZE_SMALL);
echo '</a> ';
} else {
} else {
echo Display::return_icon('edit_na.png', get_lang('EditionNotAvailableFromSession'), array('style' => 'vertical-align:middle;float:right;'),ICON_SIZE_SMALL);
}
}
echo $description['title'];
echo '</div>';
echo '<div class="sectioncomment">';
echo text_filter($description['content']);
echo $description['content'];
echo '</div>';
}
} else {

@ -59,7 +59,7 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
} elseif (isset ($_POST['copy_option']) && $_POST['copy_option'] == 'select_items') {
$cb = new CourseBuilder();
$course = $cb->build();
$hidden_fields = array();
$hidden_fields['same_file_name_option'] = $_POST['same_file_name_option'];
$hidden_fields['destination_course'] = $_POST['destination_course'];
@ -83,7 +83,7 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
$options[$obj->code] = $obj->title;
}
$form = new FormValidator('copy_course', 'post', 'copy_course.php');
$form = new FormValidator('copy_course', 'post', 'copy_course.php?'.api_get_cidreq());
$form->addElement('header','' );
$form->addElement('select','destination_course', get_lang('SelectDestinationCourse'), $options);

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -2363,7 +2363,7 @@ div.admin_section h4 {
}
#question_list .header_operations {
height: 60px;
height:40px;
margin-bottom:5px;
}
.question-list-description-block {
@ -2634,6 +2634,8 @@ div.admin_section h4 {
color: white;
font-size: 16px;
float:left;
line-height: 16px;
padding-top: 5px;
}
.ribbon .rib-total {
@ -4734,4 +4736,8 @@ i.size-32.icon-new-work{
.xdebug-error {
margin-top: 20px;
}
}
.multiple_select_header {
height: 35px;
margin-bottom: 15px;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -981,3 +981,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1030,3 +1030,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -1061,3 +1061,9 @@ div.system_announcement_content {
border-left: 1px solid gray;
padding-left: 5px;
}
/* tips Abbr-plugin for FCKeditor */
abbr {
border-bottom: 1px dotted rgb(102, 102, 102);
background-color:#F00;
cursor: help;
}

@ -878,9 +878,9 @@ if (isset($_GET['keyword']) && !empty($_GET['keyword'])) {
} else {
$docs_and_folders = DocumentManager::get_all_document_data($_course, $curdirpath, $to_group_id, null, $is_allowed_to_edit || $group_member_with_upload_rights, false);
}
$folders = DocumentManager::get_all_document_folders($_course, $to_group_id, $is_allowed_to_edit || $group_member_with_upload_rights);
if (GroupManager::is_subscribed(api_get_user_id(), api_get_group_id()) || GroupManager :: is_tutor_of_group(api_get_user_id(), api_get_group_id()) || UserManager::is_admin(api_get_user_id())) {
$folders = DocumentManager::get_all_document_folders($_course, $to_group_id, $is_allowed_to_edit || $group_member_with_upload_rights);
}
if ($folders === false) {
$folders = array();
}
@ -1010,96 +1010,98 @@ $table_footer = '';
$total_size = 0;
if (isset($docs_and_folders) && is_array($docs_and_folders)) {
// Create a sortable table with our data
$sortable_data = array();
if (GroupManager::is_subscribed(api_get_user_id(), api_get_group_id()) || GroupManager :: is_tutor_of_group(api_get_user_id(), api_get_group_id()) || UserManager::is_admin(api_get_user_id())) {
// Create a sortable table with our data
$sortable_data = array();
$count = 1;
foreach ($docs_and_folders as $key => $document_data) {
$row = array();
$row['id'] = $document_data['id'];
$row['type'] = $document_data['filetype'];
$count = 1;
foreach ($docs_and_folders as $key => $document_data) {
$row = array();
$row['id'] = $document_data['id'];
$row['type'] = $document_data['filetype'];
// If the item is invisible, wrap it in a span with class invisible
// If the item is invisible, wrap it in a span with class invisible
$is_visible = DocumentManager::is_visible_by_id($document_data['id'], $course_info, api_get_session_id(), api_get_user_id(), false);
$is_visible = DocumentManager::is_visible_by_id($document_data['id'], $course_info, api_get_session_id(), api_get_user_id(), false);
$invisibility_span_open = ($is_visible == 0) ? '<span class="muted">' : '';
$invisibility_span_close = ($is_visible == 0) ? '</span>' : '';
$invisibility_span_open = ($is_visible == 0) ? '<span class="muted">' : '';
$invisibility_span_close = ($is_visible == 0) ? '</span>' : '';
// Size (or total size of a directory)
$size = $document_data['filetype'] == 'folder' ? get_total_folder_size($document_data['path'], $is_allowed_to_edit) : $document_data['size'];
// Size (or total size of a directory)
$size = $document_data['filetype'] == 'folder' ? get_total_folder_size($document_data['path'], $is_allowed_to_edit) : $document_data['size'];
// Get the title or the basename depending on what we're using
if ($document_data['title'] != '') {
$document_name = $document_data['title'];
} else {
$document_name = basename($document_data['path']);
}
$row['name'] = $document_name;
// Data for checkbox
if (($is_allowed_to_edit || $group_member_with_upload_rights) && count($docs_and_folders) > 1) {
$row[] = $document_data['path'];
}
// Get the title or the basename depending on what we're using
if ($document_data['title'] != '') {
$document_name = $document_data['title'];
} else {
$document_name = basename($document_data['path']);
}
$row['name'] = $document_name;
// Data for checkbox
if (($is_allowed_to_edit || $group_member_with_upload_rights) && count($docs_and_folders) > 1) {
$row[] = $document_data['path'];
}
if (DocumentManager::is_folder_to_avoid($document_data['path'], $is_certificate_mode)) {
continue;
}
if (DocumentManager::is_folder_to_avoid($document_data['path'], $is_certificate_mode)) {
continue;
}
// Show the owner of the file only in groups
$user_link = '';
// Show the owner of the file only in groups
$user_link = '';
if (isset($_SESSION['_gid']) && $_SESSION['_gid'] != '') {
if (!empty($document_data['insert_user_id'])) {
$user_info = UserManager::get_user_info_by_id($document_data['insert_user_id']);
$user_name = api_get_person_name($user_info['firstname'], $user_info['lastname']);
$user_link = '<div class="document_owner">' . get_lang('Owner') . ': ' . display_user_link_document($document_data['insert_user_id'], $user_name) . '</div>';
if (isset($_SESSION['_gid']) && $_SESSION['_gid'] != '') {
if (!empty($document_data['insert_user_id'])) {
$user_info = UserManager::get_user_info_by_id($document_data['insert_user_id']);
$user_name = api_get_person_name($user_info['firstname'], $user_info['lastname']);
$user_link = '<div class="document_owner">' . get_lang('Owner') . ': ' . display_user_link_document($document_data['insert_user_id'], $user_name) . '</div>';
}
}
}
// Icons (clickable)
$row[] = create_document_link($document_data, true, $count, $is_visible);
// Icons (clickable)
$row[] = create_document_link($document_data, true, $count, $is_visible);
$path_info = pathinfo($document_data['path']);
$path_info = pathinfo($document_data['path']);
if (isset($path_info['extension']) && in_array($path_info['extension'], array('ogg', 'mp3', 'wav'))) {
$count++;
}
if (isset($path_info['extension']) && in_array($path_info['extension'], array('ogg', 'mp3', 'wav'))) {
$count++;
}
// Validacion when belongs to a session
$session_img = api_get_session_image($document_data['session_id'], $_user['status']);
// Validacion when belongs to a session
$session_img = api_get_session_image($document_data['session_id'], $_user['status']);
// Document title with link
$row[] = create_document_link($document_data, false, null, $is_visible) . $session_img . '<br />' . $invisibility_span_open . '<i>' . nl2br(htmlspecialchars($document_data['comment'], ENT_QUOTES, $charset)) . '</i>' . $invisibility_span_close . $user_link;
// Document title with link
$row[] = create_document_link($document_data, false, null, $is_visible) . $session_img . '<br />' . $invisibility_span_open . '<i>' . nl2br(htmlspecialchars($document_data['comment'], ENT_QUOTES, $charset)) . '</i>' . $invisibility_span_close . $user_link;
// Comments => display comment under the document name
$display_size = format_file_size($size);
$row[] = '<span style="display:none;">'.$size.'</span>'.$invisibility_span_open.$display_size.$invisibility_span_close;
// Comments => display comment under the document name
$display_size = format_file_size($size);
$row[] = '<span style="display:none;">'.$size.'</span>'.$invisibility_span_open.$display_size.$invisibility_span_close;
// Last edit date
// Last edit date
$last_edit_date = api_get_local_time($document_data['lastedit_date']);
$display_date = date_to_str_ago($last_edit_date).' <div class="muted"><small>'.$last_edit_date."</small></div>";
$row[] = $invisibility_span_open.$display_date.$invisibility_span_close;
// Admins get an edit column
$last_edit_date = api_get_local_time($document_data['lastedit_date']);
$display_date = date_to_str_ago($last_edit_date).' <div class="muted"><small>'.$last_edit_date."</small></div>";
$row[] = $invisibility_span_open.$display_date.$invisibility_span_close;
// Admins get an edit column
if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_folder(api_get_user_id(), $curdirpath, $session_id)) {
$is_template = isset($document_data['is_template']) ? $document_data['is_template'] : false;
// If readonly, check if it the owner of the file or if the user is an admin
if ($document_data['insert_user_id'] == api_get_user_id() || api_is_platform_admin()) {
$edit_icons = build_edit_icons($document_data, $key, $is_template, 0, $is_visible);
} else {
$edit_icons = build_edit_icons($document_data, $key, $is_template, $document_data['readonly'], $is_visible);
if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_folder(api_get_user_id(), $curdirpath, $session_id)) {
$is_template = isset($document_data['is_template']) ? $document_data['is_template'] : false;
// If readonly, check if it the owner of the file or if the user is an admin
if ($document_data['insert_user_id'] == api_get_user_id() || api_is_platform_admin()) {
$edit_icons = build_edit_icons($document_data, $key, $is_template, 0, $is_visible);
} else {
$edit_icons = build_edit_icons($document_data, $key, $is_template, $document_data['readonly'], $is_visible);
}
$row[] = $edit_icons;
}
$row[] = $edit_icons;
}
$row[] = $last_edit_date;
$row[] = $size;
$row[] = $document_name;
$row[] = $last_edit_date;
$row[] = $size;
$row[] = $document_name;
$total_size = $total_size + $size;
$total_size = $total_size + $size;
if ((isset($_GET['keyword']) && search_keyword($document_name, $_GET['keyword'])) || !isset($_GET['keyword']) || empty($_GET['keyword'])) {
$sortable_data[] = $row;
if ((isset($_GET['keyword']) && search_keyword($document_name, $_GET['keyword'])) || !isset($_GET['keyword']) || empty($_GET['keyword'])) {
$sortable_data[] = $row;
}
}
}
} else {

@ -247,9 +247,9 @@ if (api_get_setting('search_enabled') == 'true') {
//TODO: include language file
$supported_formats = get_lang('SupportedFormatsForIndex').': HTML, PDF, TXT, PDF, Postscript, MS Word, RTF, MS Power Point';
$form->addElement('checkbox', 'index_document', '', get_lang('SearchFeatureDoIndexDocument').'<div style="font-size: 80%" >'.$supported_formats.'</div>');
$form->addElement('html', '<br /><div class="row">');
$form->addElement('html', '<br /><div class="sub-form">');
$form->addElement('html', '<div class="label">'.get_lang('SearchFeatureDocumentLanguage').'</div>');
$form->addElement('html', '<div class="formw">'.api_get_languages_combo().'</div>');
$form->addElement('html', '<div>'.api_get_languages_combo(null,false).'</div>');
$form->addElement('html', '</div><div class="sub-form">');
$specific_fields = get_specific_field_list();
foreach ($specific_fields as $specific_field) {

@ -430,8 +430,12 @@ function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
Display::display_header($nameTools, 'Exercise');
if ($objExercise->edit_exercise_in_lp == false) {
if ($objExercise->exercise_was_added_in_lp) {
if ($objExercise->force_edit_exercise_in_lp == true) {
Display::display_warning_message(get_lang('ForceEditingExerciseInLPWarning'));
} else {
Display::display_warning_message(get_lang('EditingExerciseCauseProblemsInLP'));
}
}
// If we are in a test

@ -254,7 +254,7 @@ if ($submitAnswers || $buttonBack) {
// we save the answer because it will be modified
//$temp=$reponse;
$temp = text_filter($reponse);
$temp = $reponse;
/* // Deprecated code.
// 1. find everything between the [tex] and [/tex] tags

@ -1620,10 +1620,10 @@ class Exercise {
if ($this->type == ALL_ON_ONE_PAGE || $nbrQuestions == $questionNum) {
if ($this->review_answers) {
$label = get_lang('ReviewQuestions');
$class = 'btn btn-primary';
$class = 'btn btn-success';
} else {
$label = get_lang('EndTest');
$class = 'btn btn-success';
$class = 'btn btn-warning';
}
} else {
$label = get_lang('NextQuestion');
@ -1648,10 +1648,10 @@ class Exercise {
} else {
if ($this->review_answers) {
$all_label = get_lang('ReviewQuestions');
$class = 'btn btn-primary';
$class = 'btn btn-success';
} else {
$all_label = get_lang('EndTest');
$class = 'btn btn-success';
$class = 'btn btn-warning';
}
$all_button = '&nbsp;<a href="javascript://" class="'.$class.'" onclick="validate_all(); ">'.$all_label.'</a>';
$all_button .= '&nbsp;<span id="save_all_reponse"></span>';
@ -2730,7 +2730,7 @@ class Exercise {
} elseif($answerType==MATCHING) {
if ($origin != 'learnpath') {
echo '<tr>';
echo '<td>'.text_filter($answer_matching[$answerId]).'</td><td>'.text_filter($user_answer).' / <b><span style="color: #008000;">'.text_filter($answer_matching[$answerCorrect]).'</span></b></td>';
echo '<td>'.$answer_matching[$answerId].'</td><td>'.$user_answer.' / <b><span style="color: #008000;">'.text_filter($answer_matching[$answerCorrect]).'</span></b></td>';
echo '</tr>';
}
}
@ -3204,9 +3204,11 @@ class Exercise {
exercise_attempt($questionScore, 0, $quesId, $exeId, 0, $this->id);
}
} elseif ($answerType == MATCHING) {
foreach ($matching as $j => $val) {
exercise_attempt($questionScore, $val, $quesId, $exeId, $j, $this->id);
}
if (isset($matching)) {
foreach ($matching as $j => $val) {
exercise_attempt($questionScore, $val, $quesId, $exeId, $j, $this->id);
}
}
} elseif ($answerType == FREE_ANSWER) {
$answer = $choice;
exercise_attempt($questionScore, $answer, $quesId, $exeId, 0, $this->id);
@ -3233,6 +3235,7 @@ class Exercise {
if ($propagate_neg == 0 && $questionScore < 0) {
$questionScore = 0;
}
if ($saved_results) {
$stat_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$sql_update = 'UPDATE ' . $stat_table . ' SET exe_result = exe_result + ' . floatval($questionScore) . ' WHERE exe_id = ' . $exeId;
@ -3244,8 +3247,11 @@ class Exercise {
'weight' => $questionWeighting,
'extra' => $extra_data,
'open_question' => $arrques,
'open_answer' => $arrans
'open_answer' => $arrans,
'answer_type' => $answerType
);
return $return_array;
} //End function
@ -3286,10 +3292,11 @@ class Exercise {
</table>';
$open_question_list = null;
foreach ($question_list_answers as $item) {
$question = $item['question'];
$answer = $item['answer'];
$question = $item['question'];
$answer = $item['answer'];
$answer_type = $item['answer_type'];
if (!empty($question) && !empty($answer)) {
if (!empty($question) && !empty($answer) && $answer_type == FREE_ANSWER ) {
$open_question_list.='<tr>
<td width="220" valign="top" bgcolor="#E5EDF8">&nbsp;&nbsp;'.get_lang('Question').'</td>
<td width="473" valign="top" bgcolor="#F3F3F3">'.$question.'</td>
@ -3337,6 +3344,91 @@ class Exercise {
}
}
function send_notification_for_oral_questions($question_list_answers, $origin, $exe_id) {
if (api_get_course_setting('email_alert_manager_on_new_quiz') != 1 ) {
return null;
}
// Email configuration settings
$coursecode = api_get_course_id();
$course_info = api_get_course_info(api_get_course_id());
$url_email = api_get_path(WEB_CODE_PATH).'exercice/exercise_show.php?'.api_get_cidreq().'&id_session='.api_get_session_id().'&id='.$exe_id.'&action=qualify';
$user_info = UserManager::get_user_info_by_id(api_get_user_id());
$msg = '<p>'.get_lang('OralQuestionsAttempted').' :</p>
<p>'.get_lang('AttemptDetails').' : </p>
<table class="data_table">
<tr>
<td><h3>'.get_lang('CourseName').'</h3></td>
<td><h3>#course#</h3></td>
</tr>
<tr>
<td>'.get_lang('TestAttempted').'</span></td>
<td>#exercise#</td>
</tr>
<tr>
<td>'.get_lang('StudentName').'</td>
<td>#firstName# #lastName#</td>
</tr>
<tr>
<td>'.get_lang('StudentEmail').'</td>
<td>#mail#</td>
</tr>
</table>';
$oral_question_list = null;
foreach ($question_list_answers as $item) {
$question = $item['question'];
$answer = $item['answer'];
$answer_type = $item['answer_type'];
if (!empty($question) && !empty($answer) && $answer_type == ORAL_EXPRESSION) {
$oral_question_list.='<tr>
<td width="220" valign="top" bgcolor="#E5EDF8">&nbsp;&nbsp;'.get_lang('Question').'</td>
<td width="473" valign="top" bgcolor="#F3F3F3">'.$question.'</td>
</tr>
<tr>
<td width="220" valign="top" bgcolor="#E5EDF8">&nbsp;&nbsp;'.get_lang('Answer').'</td>
<td valign="top" bgcolor="#F3F3F3">'.$answer.'</td>
</tr>';
}
}
if (!empty($oral_question_list)) {
$msg .= '<p><br />'.get_lang('OralQuestionsAttemptedAre').' :</p>
<table width="730" height="136" border="0" cellpadding="3" cellspacing="3">';
$msg .= $oral_question_list;
$msg.='</table><br />';
$msg1 = str_replace("#exercise#", $this->exercise, $msg);
$msg = str_replace("#firstName#", $user_info['firstname'],$msg1);
$msg1 = str_replace("#lastName#", $user_info['lastname'],$msg);
$msg = str_replace("#mail#", $user_info['email'],$msg1);
$msg = str_replace("#course#", $course_info['name'],$msg1);
if ($origin != 'learnpath') {
$msg.= get_lang('ClickToCommentAndGiveFeedback').', <br />
<a href="#url#">#url#</a>';
}
$msg1 = str_replace("#url#", $url_email, $msg);
$mail_content = $msg1;
$subject = get_lang('OralQuestionsAttempted');
$teachers = array();
if (api_get_session_id()) {
$teachers = CourseManager::get_coach_list_from_course_code($coursecode, api_get_session_id());
} else {
$teachers = CourseManager::get_teacher_list_from_course_code($coursecode);
}
if (!empty($teachers)) {
foreach ($teachers as $user_id => $teacher_data) {
MessageManager::send_message_simple($user_id, $subject, $mail_content);
}
}
}
}
function show_exercise_result_header($user_data, $start_date = null, $duration = null) {
$array = array();

@ -1187,6 +1187,8 @@ function get_exam_results_data($from, $number_of_items, $column, $direction, $ex
//Admin can always delete the attempt
if ($locked == false || api_is_platform_admin()) {
$ip = TrackingUserLog::get_ip_from_user_event($results[$i]['exe_user_id'], $results[$i]['exe_date'], false);
$actions .= '<a href="http://www.whatsmyip.org/ip-geo-location/?ip='.$ip.'" target="_blank"><img src="'.api_get_path(WEB_CODE_PATH).'img/icons/22/info.png" title="'.$ip.'" /></a>';
$actions .=' <a href="exercise_report.php?'.api_get_cidreq().'&filter_by_user='.intval($_GET['filter_by_user']).'&filter=' . $filter . '&exerciseId='.$exercise_id.'&delete=delete&did=' . $id . '" onclick="javascript:if(!confirm(\'' . sprintf(get_lang('DeleteAttempt'), $user, $dt) . '\')) return false;">'.Display :: return_icon('delete.png', get_lang('Delete')).'</a>';
$actions .='&nbsp;';
}
@ -2109,15 +2111,11 @@ function display_question_list_by_attempt($objExercise, $exe_id, $save_user_resu
echo $objExercise->show_exercise_result_header($user_info['complete_name'], api_convert_and_format_date($exercise_stat_info['start_date'], DATE_TIME_FORMAT_LONG), $exercise_stat_info['duration']);
}
if ($save_user_result) {
// Display text when test is finished #4074
// Don't display the text when finished message if we are from a LP #4227
// but display it from page exercice_show.php
$end_of_message = $objExercise->selectTextWhenFinished();
if (!empty($end_of_message) && ($origin != 'learnpath')) {
Display::display_normal_message($end_of_message, false);
echo "<div class='clear'>&nbsp;</div>";
}
// Display text when test is finished #4074 and for LP #4227
$end_of_message = $objExercise->selectTextWhenFinished();
if (!empty($end_of_message)) {
Display::display_normal_message($end_of_message, false);
echo "<div class='clear'>&nbsp;</div>";
}
$question_list_answers = array();
@ -2144,7 +2142,8 @@ function display_question_list_by_attempt($objExercise, $exe_id, $save_user_resu
$question_list_answers[] = array(
'question' => $result['open_question'],
'answer' => $result['open_answer']
'answer' => $result['open_answer'],
'answer_type' => $result['answer_type']
);
$my_total_score = $result['score'];
@ -2263,6 +2262,7 @@ function display_question_list_by_attempt($objExercise, $exe_id, $save_user_resu
// Send notification ..
if (!api_is_allowed_to_edit(null,true)) {
$objExercise->send_notification_for_open_questions($question_list_answers, $origin, $exe_id);
$objExercise->send_notification_for_oral_questions($question_list_answers, $origin, $exe_id);
}
}
}

@ -5,7 +5,7 @@
* This script allows to manage an exercise. It is included from
* the script admin.php
* @package chamilo.exercise
* @author Olivier Brouckaert
* @author Olivier Brouckaert, Julio Montoya
*/
/**
* Code
@ -215,7 +215,7 @@ if ($form->validate()) {
// to hide the exercise description
echo '<style> .media { display:none;}</style>';
if ($objExercise->id != 0 && $objExercise->edit_exercise_in_lp == false) {
$form->freeze();
}

@ -349,8 +349,8 @@ if ($is_allowedToEdit || $is_tutor) {
'editoptions' => array('value' => $group_parameters)),
array('name'=>'duration', 'index'=>'exe_duration', 'width'=>'30', 'align'=>'left', 'search' => 'true'),
array('name'=>'start_date', 'index'=>'start_date', 'width'=>'60', 'align'=>'left', 'search' => 'true'),
array('name'=>'exe_date', 'index'=>'exe_date', 'width'=>'60', 'align'=>'left', 'search' => 'true'),
array('name'=>'score', 'index'=>'exe_result', 'width'=>'50', 'align'=>'left', 'search' => 'true'),
array('name'=>'exe_date', 'index'=>'exe_date', 'width'=>'60', 'align'=>'left', 'search' => 'true'),
array('name'=>'score', 'index'=>'exe_result', 'width'=>'50', 'align'=>'left', 'search' => 'true'),
array('name'=>'status', 'index'=>'revised', 'width'=>'40', 'align'=>'left', 'search' => 'true', 'stype'=>'select',
//for the bottom bar
'searchoptions' => array(
@ -480,4 +480,4 @@ $(function() {
<?php
echo Display::grid_html('results');
Display :: display_footer();
Display :: display_footer();

@ -162,7 +162,7 @@ if ($origin != 'learnpath') {
$lp_mode = $_SESSION['lp_mode'];
$url = '../newscorm/lp_controller.php?cidReq='.api_get_course_id().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exercise_stat_info['exe_id'].'&fb_type='.$objExercise->feedback_type;
$href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'"';
if (api_is_allowed_to_session_edit()) {
Session::erase('objExercise');
Session::erase('exe_id');

@ -76,11 +76,11 @@ class ScormQuestion extends Question
$this->answer->questionJSId = $this->js_id;
break;
case HOT_SPOT_ORDER:
$this->answer = new ScormAnswerHotspot($this->id);
$this->answer = new ScormAnswerHotspot($this->id);
$this->answer->questionJSId = $this->js_id;
break;
case HOT_SPOT_DELINEATION:
$this->answer = new ScormAnswerHotspot($this->id);
$this->answer = new ScormAnswerHotspot($this->id);
$this->answer->questionJSId = $this->js_id;
break;
default :
@ -124,12 +124,12 @@ class ScormQuestion extends Question
$cols = 2;
$s='<tr>' .
'<td colspan="'.$cols.'" id="question_'.$this->id.'_title" valign="middle" style="background-color:#d6d6d6;">' . "\n" .
text_filter($title).
$title.
'</td>' . "\n" .
'</tr>' . "\n" .
'<tr>' . "\n" .
'<td valign="top" colspan="'.$cols.'">' . "\n" .
'<i>'.text_filter($description).'</i>' . "\n" .
'<i>'.$description.'</i>' . "\n" .
'</td>' . "\n" .
'</tr>' . "\n";
return $s;
@ -442,12 +442,9 @@ class ScormAnswerMatching extends Answer
// options (A, B, C, ...) that will be put into the list-box
$Select[$answerId]['Lettre']=$cpt1;
// answers that will be shown at the right side
$answer = text_filter($answer);
$Select[$answerId]['Reponse']=$answer;
$Select[$answerId]['Reponse'] = $answer;
$cpt1++;
}
else
{
} else {
$s.='<tr>'."\n";
$s.='<td width="40%" valign="top">'."\n".'<b>'.$cpt2.'</b>.&nbsp;'.$answer."\n</td>\n";
$s.='<td width="20%" align="center">&nbsp;&nbsp;<select name="'.$identifier.$cpt2.'" id="'.$identifier.$cpt2.'">';

@ -189,7 +189,6 @@ abstract class Question
* @return - string - question title
*/
function selectTitle() {
$this->question=text_filter($this->question);
return $this->question;
}
@ -1445,7 +1444,7 @@ abstract class Question
$class = 'success';
}
if ($this->type == FREE_ANSWER) {
if ($this->type == FREE_ANSWER || $this->type == ORAL_EXPRESSION) {
if ($score['revised'] == true) {
$score_label = get_lang('Revised');
$class = '';

@ -30,6 +30,7 @@ if ($deleteQuestion) {
// destruction of the Question object
unset($objQuestionTmp);
}
$ajax_url = api_get_path(WEB_AJAX_PATH)."exercise.ajax.php?".api_get_cidreq()."&exercise_id=".intval($exerciseId);
?>
<style>
.ui-state-highlight { height: 30px; line-height: 1.2em; }
@ -154,7 +155,8 @@ if (!$inATest) {
echo '<div id="question_list">';
if ($nbrQuestions) {
$questionList = $objExercise->selectQuestionList();
//Always getting list from DB
$questionList = $objExercise->selectQuestionList(true);
// Style for columns

@ -60,7 +60,9 @@ switch ($action) {
}
}
if (!empty($certificate_path_list)) {
$pdf->html_to_pdf($certificate_path_list, get_lang('Certificates'));
// Print certificates (without the common header/footer/watermark
// stuff) and return as one multiple-pages PDF
$pdf->html_to_pdf($certificate_path_list, get_lang('Certificates'), null, false, false);
}
break;
case 'generate_all_certificates':

@ -158,12 +158,23 @@ switch ($action) {
}
break;
case 'update_question_order':
$session_id = isset($_REQUEST['session_id']) ? intval($_REQUEST['session_id']) : api_get_session_id();
$course_code = isset($_REQUEST['cidReq']) ? $_REQUEST['cidReq'] : api_get_course_id();
$course_info = api_get_course_info($course_code);
$course_id = $course_info['real_id'];
$exercise_id = isset($_REQUEST['exercise_id']) ? $_REQUEST['exercise_id'] : null;
if (empty($exercise_id)) {
return Display::display_error_message(get_lang('Error'));
}
if (api_is_allowed_to_edit(null, true)) {
$new_question_list = $_POST['question_id_list'];
$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_TEST_QUESTION);
$counter = 1;
foreach ($new_question_list as $new_order_id) {
Database::update($TBL_QUESTIONS, array('question_order'=>$counter), array('question_id = ? AND c_id = ? '=>array(intval($new_order_id), $course_id)));
Database::update($TBL_QUESTIONS, array('question_order' => $counter), array('question_id = ? AND c_id = ? AND exercice_id = ? '=>array(intval($new_order_id), $course_id, $exercise_id)), true);
$counter++;
}
Display::display_confirmation_message(get_lang('Saved'));

@ -176,10 +176,10 @@ if (!$sidx) $sidx = 1;
switch ($action) {
case 'get_user_course_report_resumed':
$count = CourseManager::get_count_user_list_from_course_code(null, 0, null, null, null, true, true, 'ruc');
$count = CourseManager::get_count_user_list_from_course_code(true, 'ruc');
break;
case 'get_user_course_report':
$count = CourseManager::get_count_user_list_from_course_code(null, 0, null, null, null, true, false);
$count = CourseManager::get_count_user_list_from_course_code(false);
break;
case 'get_course_exercise_medias':
$course_id = api_get_course_int_id();

@ -1331,23 +1331,7 @@ class Attendance
* @return string date and time e.g: '2010-02-10 12:30:00'
*/
public function build_datetime_from_array($array) {
$year = '0000';
$month = $day = $hours = $minutes = $seconds = '00';
if (isset($array['Y']) && (isset($array['F']) || isset($array['M'])) && isset($array['d']) && isset($array['H']) && isset($array['i'])) {
$year = $array['Y'];
$month = isset($array['F'])?$array['F']:$array['M'];
if (intval($month) < 10 ) $month = '0'.$month;
$day = $array['d'];
if (intval($day) < 10 ) $day = '0'.$day;
$hours = $array['H'];
if (intval($hours) < 10 ) $hours = '0'.$hours;
$minutes = $array['i'];
if (intval($minutes) < 10 ) $minutes = '0'.$minutes;
}
if (checkdate($month,$day,$year)) {
$datetime = $year.'-'.$month.'-'.$day.' '.$hours.':'.$minutes.':'.$seconds;
}
return $datetime;
return return_datetime_from_array($array);
}
/** Setters for fields of attendances tables **/

@ -2,11 +2,12 @@
/* For licensing terms, see /license.txt*/
/**
* This is the course library for Chamilo.
*
* All main course functions should be placed here.
*
* Many functions of this library deal with providing support for
* virtual/linked/combined courses (this was already used in several
* universities but not available in standard Chamilo).
* virtual/linked/combined courses (this was already used in several universities
* but not available in standard Chamilo).
*
* The implementation changed, initially a course was a real course
* if target_course_code was 0 , this was changed to NULL.
@ -1101,8 +1102,10 @@ class CourseManager {
$condition_course = ' AND course_code = "'.$course_code.'" ';
}
$result = Database::fetch_array(Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
WHERE user_id = $user_id AND relation_type<>".COURSE_RELATION_TYPE_RRHH." $condition_course "));
$sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
WHERE user_id = $user_id AND relation_type<>".COURSE_RELATION_TYPE_RRHH." $condition_course ";
$result = Database::fetch_array(Database::query($sql));
if (!empty($result)) {
return true; // The user has been registered in this course.
@ -1255,6 +1258,9 @@ class CourseManager {
} else {
if ($return_count) {
$sql = " SELECT COUNT(*) as count";
if ($resumed_report) {
$sql = " SELECT count(field_id) ";
}
} else {
if (empty($course_code)) {
$sql = 'SELECT DISTINCT course.title, course.code, course_rel_user.status as status_rel, user.user_id, course_rel_user.role, course_rel_user.tutor_id, user.* ';
@ -1285,10 +1291,9 @@ class CourseManager {
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER).' au ON (au.user_id = user.user_id) ';
}
if ($add_reports && $resumed_report) {
/*$extra_field_info = UserManager::get_extra_field_information_by_name($extra_field);
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES).' as ufv ON (user.user_id = ufv.user_id AND (field_id = '.$extra_field_info['id'].' OR field_id IS NULL ) )';*/
$limit = null;
if ($return_count && $resumed_report) {
$extra_field_info = UserManager::get_extra_field_information_by_name($extra_field);
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES).' as ufv ON (user.user_id = ufv.user_id AND (field_id = '.$extra_field_info['id'].' OR field_id IS NULL ) )';
}
$sql .= ' WHERE '.$filter_by_status_condition.' '.implode(' OR ', $where);
@ -1296,8 +1301,11 @@ class CourseManager {
$current_access_url_id = api_get_current_access_url_id();
$sql .= " AND (access_url_id = $current_access_url_id ) ";
}
$sql .= ' '.$order_by.' '.$limit;
if ($return_count && $resumed_report) {
$sql .= ' GROUP BY field_id ';
}
$sql .= ' '.$order_by.' '.$limit;
$rs = Database::query($sql);
$users = array();
@ -1306,6 +1314,13 @@ class CourseManager {
}
$counter = 1;
$count_rows = Database::num_rows($rs);
if ($return_count && $resumed_report) {
$result = 0;
while ($user = Database::fetch_array($rs)) {
$result += $user['count'];
}
return $result;
}
if ($count_rows) {
while ($user = Database::fetch_array($rs)) {
$report_info = array();
@ -1391,8 +1406,8 @@ class CourseManager {
return $users;
}
static function get_count_user_list_from_course_code($resumed_report = false) {
return self::get_user_list_from_course_code(null, 0, null, null, null, true, $resumed_report);
static function get_count_user_list_from_course_code($resumed_report = false, $extra_field = null) {
return self::get_user_list_from_course_code(null, 0, null, null, null, true, false, $resumed_report, $extra_field);
}
/**
* Gets subscribed users in a course or in a course/session
@ -2659,7 +2674,7 @@ class CourseManager {
$data .= $description->title;
$data .= '</div>';
$data .= '<div class="sectioncomment">';
$data .= text_filter($description->content);
$data .= $description->content;
$data .= '</div>';
}
} else {

@ -743,7 +743,7 @@ class CourseHome {
$icon = Display::return_icon($tool['image'], $tool_name, array('class' => 'tool-icon', 'id' => 'toolimage_'.$tool['id']), ICON_SIZE_BIG, false);
// Validacion when belongs to a session
// Validation when belongs to a session
$session_img = api_get_session_image($tool['session_id'], $_user['status']);
$item['url_params'] = $tool_link_params;
$item['icon'] = Display::url($icon, $tool_link_params['href'], $tool_link_params);
@ -775,6 +775,9 @@ class CourseHome {
switch ($image) {
case 'scormbuilder.png':
if (api_is_allowed_to_edit(null, true)) {
$item['url_params']['href'] .= '&isStudentView=true';
}
$image = $original_image;
$lp_id = self::get_published_lp_id_from_link($item['link']);
if ($lp_id) {

@ -37,7 +37,6 @@ class Display {
self::$global_template->preview_theme = self::$preview_style;
self::$global_template->set_css_files();
self::$global_template->set_js_files();
}
if (!empty($page_header)) {
self::$global_template->assign('header', $page_header);

@ -627,13 +627,24 @@ class DocumentManager {
//condition for the session
$session_id = api_get_session_id();
$condition_session = api_get_session_condition($session_id);
if ($to_group_id <> 0) {
$sql = "SELECT DISTINCT docs.id, path
FROM $TABLE_ITEMPROPERTY AS last INNER JOIN $TABLE_DOCUMENT AS docs
ON (docs.id = last.ref AND last.tool = '" . TOOL_DOCUMENT . "' AND last.c_id = {$_course['real_id']} AND docs.c_id = {$_course['real_id']} )
WHERE
docs.filetype = 'folder' AND
last.to_group_id = ".$to_group_id." AND
docs.path NOT LIKE '%shared_folder%' AND
last.visibility <> 2 $condition_session ";
} else {
$sql = "SELECT DISTINCT docs.id, path
FROM $TABLE_ITEMPROPERTY AS last INNER JOIN $TABLE_DOCUMENT AS docs
ON (docs.id = last.ref AND last.tool = '" . TOOL_DOCUMENT . "' AND last.c_id = {$_course['real_id']} AND docs.c_id = {$_course['real_id']} )
WHERE
docs.filetype = 'folder' AND
last.to_group_id = " . $to_group_id . " AND
last.visibility <> 2 $condition_session ";
}
$result = Database::query($sql);
@ -1564,6 +1575,7 @@ class DocumentManager {
$max = 5;
$attributes = array();
$wanted_attributes = array('src', 'url', '@import', 'href', 'value', 'flashvars');
$explode_attributes = array('flashvars' => 'file');
$abs_path = '';
if ($recursivity > $max) {
@ -1575,7 +1587,7 @@ class DocumentManager {
}
if (!$is_file) {
$attributes = self::parse_HTML_attributes($source_html, $wanted_attributes);
$attributes = self::parse_HTML_attributes($source_html, $wanted_attributes, $explode_attributes);
} else {
if (is_file($source_html)) {
@ -1590,7 +1602,7 @@ class DocumentManager {
case 'css' :
$file_content = file_get_contents($abs_path);
//get an array of attributes from the HTML source
$attributes = self::parse_HTML_attributes($file_content, $wanted_attributes);
$attributes = self::parse_HTML_attributes($file_content, $wanted_attributes, $explode_attributes);
break;
default :
break;
@ -1840,7 +1852,7 @@ class DocumentManager {
* @return array An associative array of attributes
* @author Based on a function from the HTML_Common2 PEAR module
*/
static function parse_HTML_attributes($attrString, $wanted = array()) {
static function parse_HTML_attributes($attrString, $wanted = array(), $explode_variables = array()) {
$attributes = array();
$regs = array();
$reduced = false;
@ -1898,6 +1910,17 @@ class DocumentManager {
if ($value == 'API.LMSGetValue(name') {
$value = 'API.LMSGetValue(name)';
}
//Gets the xx.flv value from the string flashvars="width=320&height=240&autostart=false&file=xxx.flv&repeat=false"
if (isset($explode_variables[$name])) {
$value_modified = str_replace('&amp;', '&', $value);
$value_array = explode('&', $value_modified);
foreach ($value_array as $item) {
list($key, $item_value) = explode('=', $item);
if ($key == $explode_variables[$name]) {
$attributes[strtolower($name)][] = $item_value;
}
}
}
$attributes[strtolower($name)][] = $value;
}
}
@ -1918,7 +1941,7 @@ class DocumentManager {
*/
static function replace_urls_inside_content_html_from_copy_course($content_html, $origin_course_code, $destination_course_directory) {
require_once api_get_path(LIBRARY_PATH).'fileUpload.lib.php';
if (!is_string($content_html)) {
if (empty($content_html)) {
return false;
}
@ -2120,11 +2143,9 @@ class DocumentManager {
$pre_remove .='..\/';
}
//var_dump(' link to add '.$link_to_add.' -- remove '.$pre_remove);
$orig_source_html = DocumentManager::get_resources_from_source_html($content_html);
//var_dump($orig_source_html);
foreach ($orig_source_html as $source) {
@ -2167,10 +2188,9 @@ class DocumentManager {
$destination_url = preg_replace("/".$pre_remove."/", '', $real_orig_url, 1);
}
if ($real_orig_url == $destination_url) {
echo 'continue2';
//echo 'continue2';
continue;
}
var_dump($real_orig_url_temp.' - '.$destination_url);
$content_html = str_replace($real_orig_url, $destination_url, $content_html);
}
} else {
@ -3082,7 +3102,6 @@ class DocumentManager {
$di->addChunk($ic_slide);
// Index and return a new search engine document id
$did = $di->index();
//var_dump($did);
if ($did) {
// update the search_did on db
$tbl_se_ref = Database::get_main_table(TABLE_MAIN_SEARCH_ENGINE_REF);

@ -484,17 +484,22 @@ function exercise_attempt($score, $answer, $question_id, $exe_id, $position, $ex
$file = Database::escape_string(basename($nano->load_filename_if_exists(false)));
}
$course_code = api_get_course_id();
$session_id = api_get_session_id();
if (!empty($question_id) && !empty($exe_id) && !empty($user_id)) {
//Check if attempt exists
$sql = "SELECT exe_id FROM $TBL_TRACK_ATTEMPT WHERE exe_id = $exe_id AND user_id = $user_id AND question_id = $question_id";
$sql = "SELECT exe_id FROM $TBL_TRACK_ATTEMPT
WHERE course_code = '$course_code' AND session_id = $session_id AND exe_id = $exe_id AND user_id = $user_id AND question_id = $question_id AND position = $position";
$result = Database::query($sql);
if (Database::num_rows($result)) {
if ($debug) error_log("Attempt already exist: exe_id: $exe_id - user_id:$user_id - question_id:$question_id");
if ($debug) error_log("Attempt already exist: exe_id: $exe_id - user_id:$user_id - question_id:$question_id");
//The attempt already exist do not update use update_event_exercice() instead
return false;
}
$sql = "INSERT INTO $TBL_TRACK_ATTEMPT (exe_id, user_id, question_id, answer, marks, course_code, session_id, position, tms, filename)
VALUES (
".$exe_id.",
@ -502,8 +507,8 @@ function exercise_attempt($score, $answer, $question_id, $exe_id, $position, $ex
'".$question_id."',
'".$answer."',
'".$score."',
'".api_get_course_id()."',
'".api_get_session_id()."',
'".$course_code."',
'".$session_id."',
'".$position."',
'".$now."',
'".$file."'

@ -5,7 +5,7 @@
* @link www.phpletter.com
* @since 22/May/2007
*
*/
*/
sleep(3);
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php";
echo "{";
@ -17,7 +17,6 @@ $upload = new Upload();
$folder = base64_decode($_GET['folder']);
//$folder = ($_GET['folder']);
$upload->setInvalidFileExt(explode(",", CONFIG_UPLOAD_INVALID_EXTS));
if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD) {
$error = SYS_DISABLED;
@ -27,39 +26,39 @@ if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD) {
$error = ERR_FILE_NOT_UPLOADED;
}else if(!$upload->moveUploadedFile($folder)) {
$error = ERR_FILE_MOVE_FAILED;
} elseif(!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS))) {
} elseif(!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS))) {
$error = ERR_FILE_TYPE_NOT_ALLOWED;
} elseif(defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE)) {
} elseif(defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE)) {
$error = sprintf(ERROR_FILE_TOO_BID, transformFileSize(CONFIG_UPLOAD_MAXSIZE));
} else {
include_once(CLASS_FILE);
$path = $upload->getFilePath();
$obj = new file($path);
$tem = $obj->getFileInfo();
if (sizeof($tem)) {
include_once(CLASS_MANAGER);
if (sizeof($tem)) {
include_once(CLASS_MANAGER);
$manager = new manager($upload->getFilePath(), false);
$fileType = $manager->getFileType($upload->getFileName());
$fileType = $manager->getFileType($upload->getFileName());
foreach($fileType as $k=>$v) {
$tem[$k] = $v;
}
$tem['path'] = backslashToSlash($path);
$tem['path'] = backslashToSlash($path);
$tem['type'] = "file";
$tem['size'] = transformFileSize($tem['size']);
$tem['ctime'] = date(DATE_TIME_FORMAT, $tem['ctime']);
$tem['mtime'] = date(DATE_TIME_FORMAT, $tem['mtime']);
$tem['short_name'] = shortenFileName($tem['name']);
$tem['short_name'] = shortenFileName($tem['name']);
$tem['flag'] = 'noFlag';
/**
* Bridge to Chamilo documents tool
* @author Juan Carlos Raña Trabado
*/
if(!empty($_course['path'])) {
//only inside courses
//only inside courses
$fullPath= $upload->getFilePath(); //get ajaxmanager. Sample ../../../../../../../courses/TEST/document/Grupo_1_groupdocs/image.jpg
$folderInfo = $manager->getFolderInfo(); //get ajaxmanager
$mainPath= getParentFolderPath($folderInfo['path']);//get ajaxmanager. Sample ../../../../../../../courses/TEST/document/Grupo_1_groupdocs/
@ -72,7 +71,7 @@ if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD) {
} else {
if(!api_is_allowed_to_edit()) {
$current_session_id = api_get_session_id();
if($current_session_id==0) {
if($current_session_id==0) {
$chamiloFolder='/shared_folder/sf_user_'.api_get_user_id().$chamiloFolder;
} else {
$chamiloFolder='/shared_folder_session_'.$current_session_id.'/sf_user_'.api_get_user_id().$chamiloFolder;
@ -83,15 +82,15 @@ if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD) {
$doc_id = add_document($_course, $chamiloFolder,'file', $chamiloFileSize , $chamiloFile); //get Chamilo
$current_session_id = api_get_session_id();
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'DocumentAdded', api_get_user_id(),$to_group_id,null,null,null,$current_session_id);//get Chamilo
}
// end bridge
// end bridge
$obj->close();
foreach($tem as $k=>$v) {
$info .= sprintf(", %s:'%s'", $k, $v);
}
$info .= sprintf(", %s:'%s'", $k, $v);
}
$info .= sprintf(", url:'%s'", getFileUrl($path));
$info .= sprintf(", tipedit:'%s'", TIP_DOC_RENAME);
$info .= sprintf(", tipedit:'%s'", TIP_DOC_RENAME);
} else {
$error = ERR_FILE_NOT_AVAILABLE;
}

@ -106,7 +106,7 @@ foreach ($fileList as $file) {
if ((!preg_match("/$deleted_by_Chamilo_file/", $file['name']) ||
!preg_match("/$deleted_by_Chamilo_folder/", $file['path'])) ||
preg_match("/$css_folder_Chamilo/", $file['path']) ||
preg_match("/$hotpotatoes_folder_Chamilo", $file['path']) ||
preg_match("/$hotpotatoes_folder_Chamilo/", $file['path']) ||
preg_match("/$chat_files_Chamilo/", $file['path']) ||
preg_match("/$certificates_Chamilo/", $file['path']) ||
$hide_doc_group ||

@ -1334,10 +1334,14 @@ function api_get_anonymous_id() {
function api_get_cidreq($add_session_id = true, $add_group_id = true) {
$url = empty($GLOBALS['_cid']) ? '' : 'cidReq='.htmlspecialchars($GLOBALS['_cid']);
if ($add_session_id) {
$url .= api_get_session_id() == 0 ? '&id_session=0' : '&id_session='.api_get_session_id();
}
if (!empty($url)) {
$url .= api_get_session_id() == 0 ? '&id_session=0' : '&id_session='.api_get_session_id();
}
}
if ($add_group_id) {
$url .= api_get_group_id() == 0 ? '&gidReq=0' : '&gidReq='.api_get_group_id();
if (!empty($url)) {
$url .= api_get_group_id() == 0 ? '&gidReq=0' : '&gidReq='.api_get_group_id();
}
}
return $url;
}
@ -3459,7 +3463,7 @@ function api_get_item_property_info($course_id, $tool, $ref, $session_id = 0) {
* @return string
*/
function api_get_languages_combo($name = 'language') {
function api_get_languages_combo($name = 'language', $chozen=true) {
$ret = '';
$platformLanguage = api_get_setting('platformLanguage');
@ -3480,7 +3484,7 @@ function api_get_languages_combo($name = 'language') {
$languages = $language_list['name'];
$folder = $language_list['folder'];
$ret .= '<select name="'.$name.'" id="language_chosen" class="chzn-select" >';
$ret .= '<select name="'.$name.'" id="language_chosen" '.($chozen?'class="chzn-select"':'').' >';
foreach ($languages as $key => $value) {
if ($folder[$key] == $default) {
$selected = ' selected="selected"';

@ -1272,29 +1272,14 @@ class MessageManager
$parameters['f'] = Security::remove_XSS($_GET['f']);
$table->set_additional_parameters($parameters);
$table->set_header(0, '', false,array ('style' => 'width:15px;'));
$title = api_xml_http_response_encode(get_lang('Title'));
$action= api_xml_http_response_encode(get_lang('Modify'));
$table->set_header(1, api_xml_http_response_encode(get_lang('Messages')),false);
//$table->set_header(2, $title,true);
$table->set_header(2, api_xml_http_response_encode(get_lang('Date')),true,array ('style' => 'width:160px;'));
$table->set_header(3,$action, false,array ('style' => 'width:70px;'));
$table->set_header(1, get_lang('Messages'),false);
$table->set_header(2, get_lang('Date'),true,array ('style' => 'width:160px;'));
$table->set_header(3, get_lang('Modify'), false,array ('style' => 'width:70px;'));
if ($request===true) {
$html .= '<form name="form_send_out" id="form_send_out" action="" method="post">';
$html .= '<input type="hidden" name="action" value="delete" />';
$html .= $table->return_table();
$html .= '</form>';
if (get_number_of_messages_send_mask() > 0) {
$html .= '<a href="javascript:void(0)" onclick="selectall_cheks()">'.api_xml_http_response_encode(get_lang('SelectAll')).'</a>&nbsp;&nbsp;&nbsp;';
$html .= '<a href="javascript:void(0)" onclick="unselectall_cheks()">'.api_xml_http_response_encode(get_lang('UnSelectAll')).'</a>&nbsp;&nbsp;&nbsp;';
$html .= '<button class="save" name="delete" type="button" value="'.api_xml_http_response_encode(get_lang('DeleteSelectedMessages')).'" onclick="submit_form(\'outbox\')">'.api_xml_http_response_encode(get_lang('DeleteSelectedMessages')).'</button>';
}
} else {
$table->set_form_actions(array ('delete' => get_lang('DeleteSelectedMessages')));
$html .= $table->return_table();
}
return $html;
}
}

@ -41,8 +41,12 @@ class PDF {
$this->pdf = new mPDF('UTF-8', $page_format, '', '', $params['left'], $params['right'], $params['top'], $params['bottom'], 8, 8, $orientation);
}
function html_to_pdf_with_template($content) {
/**
* Export the given HTML to PDF, using a global template
* @param string the HTML content
* @uses export/table_pdf.tpl
*/
function html_to_pdf_with_template($content) {
Display :: display_no_header();
//Assignments
@ -93,10 +97,12 @@ class PDF {
* @param mixed could be an html file path or an array with paths example: /var/www/myfile.html or array('/myfile.html','myotherfile.html') or even an indexed array with both 'title' and 'path' indexes for each element like array(0=>array('title'=>'Hello','path'=>'file.html'),1=>array('title'=>'Bye','path'=>'file2.html'));
* @param string pdf name
* @param string course code (if you are using html that are located in the document tool you must provide this)
* @param bool Whether to print the header, footer and watermark (true) or just the content (false)
* @return void
*/
public function html_to_pdf($html_file_array, $pdf_name = '', $course_code = null, $print_title = false) {
public function html_to_pdf($html_file_array, $pdf_name = '', $course_code = null, $print_title = false, $complete_style = true) {
if($complete_style === false) { error_log(__FUNCTION__.' with no style'); }
if (empty($html_file_array)) {
return false;
}
@ -126,7 +132,7 @@ class PDF {
);
//Formatting the pdf
self::format_pdf($course_data);
self::format_pdf($course_data, $complete_style);
$counter = 1;
@ -532,7 +538,14 @@ class PDF {
$this->custom_footer = $footer;
}
public function format_pdf($course_data) {
/**
* Pre-formats a PDF to the right size and, if not stated otherwise, with
* header, footer and watermark (if any)
* @param array General course information (to fill headers)
* @param bool Whether we want headers, footers and watermark or not
*/
public function format_pdf($course_data, $complete = true) {
if($complete === false) {error_log('Asked with no decoration');}
$course_code = null;
if (!empty( $course_data)) {
$course_code = $course_data['code'];
@ -547,46 +560,49 @@ class PDF {
$this->pdf->useOnlyCoreFonts = true;
$this->pdf->mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins
//Adding watermark
if (api_get_setting('pdf_export_watermark_enable') == 'true') {
$watermark_file = self::get_watermark($course_code);
if ($watermark_file) {
//http://mpdf1.com/manual/index.php?tid=269&searchstring=watermark
$this->pdf->SetWatermarkImage($watermark_file);
$this->pdf->showWatermarkImage = true;
} else {
$watermark_file = self::get_watermark(null);
if ($watermark_file) {
// Add decoration only if not stated otherwise
if ($complete) {
//Adding watermark
if (api_get_setting('pdf_export_watermark_enable') == 'true') {
$watermark_file = self::get_watermark($course_code);
if ($watermark_file) {
//http://mpdf1.com/manual/index.php?tid=269&searchstring=watermark
$this->pdf->SetWatermarkImage($watermark_file);
$this->pdf->showWatermarkImage = true;
} else {
$watermark_file = self::get_watermark(null);
if ($watermark_file) {
$this->pdf->SetWatermarkImage($watermark_file);
$this->pdf->showWatermarkImage = true;
}
}
}
if ($course_code) {
$watermark_text = api_get_course_setting('pdf_export_watermark_text');
if (empty($watermark_text)) {
$watermark_text = api_get_setting('pdf_export_watermark_text');
if ($course_code) {
$watermark_text = api_get_course_setting('pdf_export_watermark_text');
if (empty($watermark_text)) {
$watermark_text = api_get_setting('pdf_export_watermark_text');
}
} else {
$watermark_text = api_get_setting('pdf_export_watermark_text');
}
if (!empty($watermark_text)) {
$this->pdf->SetWatermarkText(strcode2utf($watermark_text),0.1);
$this->pdf->showWatermarkText = true;
}
}
if (empty($this->custom_header)) {
self::set_header($course_data);
} else {
$watermark_text = api_get_setting('pdf_export_watermark_text');
}
if (!empty($watermark_text)) {
$this->pdf->SetWatermarkText(strcode2utf($watermark_text),0.1);
$this->pdf->showWatermarkText = true;
$this->pdf->SetHTMLHeader($this->custom_header,'E');
$this->pdf->SetHTMLHeader($this->custom_header,'O');
}
}
if (empty($this->custom_header)) {
self::set_header($course_data);
} else {
$this->pdf->SetHTMLHeader($this->custom_header,'E');
$this->pdf->SetHTMLHeader($this->custom_header,'O');
if (empty($this->custom_footer)) {
self::set_footer();
} else {
$this->pdf->SetHTMLFooter($this->custom_footer);
}
}
if (empty($this->custom_footer)) {
self::set_footer();
} else {
$this->pdf->SetHTMLFooter($this->custom_footer);
}
}
}

@ -129,7 +129,11 @@ class SortableTable extends HTML_Table {
$this->column = isset ($_SESSION[$this->param_prefix.'column']) ? intval($_SESSION[$this->param_prefix.'column']) : $default_column;
$this->column = isset ($_GET[$this->param_prefix.'column']) ? intval($_GET[$this->param_prefix.'column']) : $this->column;
//$this->direction = isset ($_SESSION[$this->param_prefix.'direction']) ? $_SESSION[$this->param_prefix.'direction'] : $default_order_direction;
//Default direction
if (in_array(strtoupper($default_order_direction), array('ASC', 'DESC'))) {
$this->direction = $default_order_direction;
}
if (isset($_SESSION[$this->param_prefix.'direction'])) {
$my_session_direction = $_SESSION[$this->param_prefix.'direction'];
@ -715,7 +719,6 @@ class SortableTable extends HTML_Table {
if (!is_null($th_attributes)) {
$this->th_attributes[$column] = $th_attributes;
}
$this->headers[$column] = $label;
}
/**

@ -160,7 +160,8 @@ class Statistics {
"default_value_type as col1, ".
"default_value as col2, ".
"user.username as col3, ".
"default_date as col4 ".
"user.user_id as col4, ".
"default_date as col5 ".
"FROM $track_e_default as track_default, $table_user as user, $access_url_rel_user_table as url ".
"WHERE track_default.default_user_id = user.user_id AND url.user_id=user.user_id AND access_url_id='".$current_url_id."'";
} else {
@ -169,7 +170,8 @@ class Statistics {
"default_value_type as col1, ".
"default_value as col2, ".
"user.username as col3, ".
"default_date as col4 ".
"user.user_id as col4, ".
"default_date as col5 ".
"FROM $track_e_default track_default, $table_user user ".
"WHERE track_default.default_user_id = user.user_id ";
}
@ -182,7 +184,7 @@ class Statistics {
if (!empty($column) && !empty($direction)) {
$sql .= " ORDER BY col$column $direction";
} else {
$sql .= " ORDER BY col4 DESC ";
$sql .= " ORDER BY col5 DESC ";
}
$sql .= " LIMIT $from, $number_of_items ";
@ -204,7 +206,14 @@ class Statistics {
} else {
$row['default_date'] = '-';
}
if (!empty($row[4])) { //user ID
$row[3] = Display::url($row[3],api_get_path(WEB_CODE_PATH).'admin/user_information?user_id='.$row[5], array('title' => get_lang('UserInfo')));
$row[4] = TrackingUserLog::get_ip_from_user_event($row[4],$row[5],true);
if (empty($row[4])) {
$row[4] = get_lang('Unknown');
}
}
$activities[] = $row;
}
@ -486,10 +495,10 @@ class Statistics {
echo '<h4>'.get_lang('ImportantActivities').'</h4>';
// Create a search-box
$form = new FormValidator('search_simple','get',api_get_path(WEB_CODE_PATH).'admin/statistics/index.php?action=activities','','width=200px',false);
$form = new FormValidator('search_simple','get',api_get_path(WEB_CODE_PATH).'admin/statistics/index.php','','width=200px',false);
$renderer =& $form->defaultRenderer();
$renderer->setElementTemplate('<span>{element}</span> ');
$form->addElement('hidden','action','activities');
$form->addElement('hidden','report','activities');
$form->addElement('hidden','activities_direction','DESC');
$form->addElement('hidden','activities_column','4');
$form->addElement('text','keyword',get_lang('keyword'));
@ -498,10 +507,10 @@ class Statistics {
$form->display();
echo '</div>';
$table = new SortableTable('activities', array('Statistics','get_number_of_activities'), array('Statistics','get_activities_data'),4,50,'DESC');
$table = new SortableTable('activities', array('Statistics','get_number_of_activities'), array('Statistics','get_activities_data'),5,50,'DESC');
$parameters = array();
$parameters['action'] = 'activities';
$parameters['report'] = 'activities';
if (isset($_GET['keyword'])) {
$parameters['keyword'] = Security::remove_XSS($_GET['keyword']);
}
@ -511,7 +520,8 @@ class Statistics {
$table->set_header(1, get_lang('DataType'));
$table->set_header(2, get_lang('Value'));
$table->set_header(3, get_lang('UserName'));
$table->set_header(4, get_lang('Date'));
$table->set_header(4, get_lang('IPAddress'));
$table->set_header(5, get_lang('Date'));
$table->display();
}

@ -749,4 +749,27 @@ function format_file_size($file_size) {
$file_size = $file_size . 'B';
}
return $file_size;
}
function return_datetime_from_array($array) {
$year = '0000';
$month = $day = $hours = $minutes = $seconds = '00';
var_dump($array);
if (isset($array['Y']) && (isset($array['F']) || isset($array['M'])) && isset($array['d']) && isset($array['H']) && isset($array['i'])) {
$year = $array['Y'];
$month = isset($array['F'])?$array['F']:$array['M'];
if (intval($month) < 10 ) $month = '0'.$month;
$day = $array['d'];
if (intval($day) < 10 ) $day = '0'.$day;
$hours = $array['H'];
if (intval($hours) < 10 ) $hours = '0'.$hours;
$minutes = $array['i'];
if (intval($minutes) < 10 ) $minutes = '0'.$minutes;
}
if (checkdate($month,$day,$year)) {
$datetime = $year.'-'.$month.'-'.$day.' '.$hours.':'.$minutes.':'.$seconds;
}
return $datetime;
}

@ -1281,22 +1281,6 @@ class Thematic
* @return string date and time e.g: '2010-02-10 12:30:00'
*/
public function build_datetime_from_array($array) {
$year = '0000';
$month = $day = $hours = $minutes = $seconds = '00';
if (isset($array['Y']) && isset($array['F']) && isset($array['d']) && isset($array['H']) && isset($array['i'])) {
$year = $array['Y'];
$month = $array['F'];
if (intval($month) < 10 ) $month = '0'.$month;
$day = $array['d'];
if (intval($day) < 10 ) $day = '0'.$day;
$hours = $array['H'];
if (intval($hours) < 10 ) $hours = '0'.$hours;
$minutes = $array['i'];
if (intval($minutes) < 10 ) $minutes = '0'.$minutes;
}
if (checkdate($month,$day,$year)) {
$datetime = $year.'-'.$month.'-'.$day.' '.$hours.':'.$minutes.':'.$seconds;
}
return $datetime;
return return_datetime_from_array($array);
}
}

@ -3169,7 +3169,8 @@ class TrackingCourseLog {
ref as ref,
user.username as col3,
insert_date as col5,
visibility as col6
visibility as col6,
user.user_id as user_id
FROM $table_item_property track_resource, $table_user user
WHERE track_resource.c_id = $course_id AND
track_resource.insert_user_id = user.user_id AND
@ -3257,68 +3258,68 @@ class TrackingCourseLog {
$row[0] = api_ucfirst($row['col0']);
}
$row[1] = get_lang($row[1]);
$row[5] = api_convert_and_format_date($row['col5'], null, date_default_timezone_get());
$row[4] = '';
$row[6] = api_convert_and_format_date($row['col5'], null, date_default_timezone_get());
$row[5] = '';
//@todo Improve this code please
switch ($table_name['table_name']) {
case 'document' :
$query_document = "SELECT tool.title as title FROM $table_tool tool WHERE c_id = $course_id AND id = $ref";
$rs_document = Database::query($query_document);
$obj_document = Database::fetch_object($rs_document);
$row[4] = $obj_document->title;
$row[5] = $obj_document->title;
break;
case 'announcement':
$query_document = "SELECT title FROM $table_tool WHERE c_id = $course_id AND id = $ref";
$rs_document = Database::query($query_document);
$obj_document = Database::fetch_object($rs_document);
$row[4] = $obj_document->title;
$row[5] = $obj_document->title;
break;
case 'glossary':
$query_document = "SELECT name FROM $table_tool WHERE c_id = $course_id AND glossary_id = $ref";
$rs_document = Database::query($query_document);
$obj_document = Database::fetch_object($rs_document);
$row[4] = $obj_document->name;
$row[5] = $obj_document->name;
break;
case 'lp':
$query_document = "SELECT name FROM $table_tool WHERE c_id = $course_id AND id = $ref";
$rs_document = Database::query($query_document);
$obj_document = Database::fetch_object($rs_document);
$row[4] = $obj_document->name;
$row[5] = $obj_document->name;
break;
case 'quiz':
$query_document = "SELECT title FROM $table_tool WHERE c_id = $course_id AND id = $ref";
$rs_document = Database::query($query_document);
$obj_document = Database::fetch_object($rs_document);
$row[4] = $obj_document->title;
$row[5] = $obj_document->title;
break;
case 'course_description':
$query_document = "SELECT title FROM $table_tool WHERE c_id = $course_id AND id = $ref";
$rs_document = Database::query($query_document);
$obj_document = Database::fetch_object($rs_document);
$row[4] = $obj_document->title;
$row[5] = $obj_document->title;
break;
case 'thematic':
$rs = Database::query("SELECT title FROM $table_tool WHERE c_id = $course_id AND id = $ref");
if (Database::num_rows($rs) > 0) {
$obj = Database::fetch_object($rs);
$row[4] = $obj->title;
$row[5] = $obj->title;
}
break;
case 'thematic_advance':
$rs = Database::query("SELECT content FROM $table_tool WHERE c_id = $course_id AND id = $ref");
if (Database::num_rows($rs) > 0) {
$obj = Database::fetch_object($rs);
$row[4] = $obj->content;
$row[5] = $obj->content;
}
break;
case 'thematic_plan':
$rs = Database::query("SELECT title FROM $table_tool WHERE c_id = $course_id AND id = $ref");
if (Database::num_rows($rs) > 0) {
$obj = Database::fetch_object($rs);
$row[4] = $obj->title;
$row[5] = $obj->title;
}
break;
@ -3331,6 +3332,16 @@ class TrackingCourseLog {
$row2 .= '<br />'.get_lang('Coach').': '.$coach_name;
}
$row[2] = $row2;
if (!empty($row['col3'])) {
$row['col3'] = Display::url($row['col3'],api_get_path(WEB_CODE_PATH).'user/userInfo.php?'.api_get_cidreq().'&origin=tracking&uInfo='.$row['user_id']);
$row[3] = $row['col3'];
$ip = TrackingUserLog::get_ip_from_user_event($row['user_id'], $row['col5'], true);
if (empty($ip)) {
$ip = get_lang('Unknown');
}
$row[4] = $ip;
}
$resources[] = $row;
}
}
@ -4059,7 +4070,7 @@ class TrackingUserLog {
* @param int Session id (optional, default = 0)
* @return void
*/
function display_document_tracking_info($view, $user_id, $course_id, $session_id = 0) {
static function display_document_tracking_info($view, $user_id, $course_id, $session_id = 0) {
// protect data
$user_id = intval($user_id);
@ -4118,6 +4129,33 @@ class TrackingUserLog {
";
}
}
/**
* Gets the IP of a given user, using the last login before the given date
* @param int User ID
* @param string Datetime
* @param bool Whether to return the IP as a link or just as an IP
* @param string If defined and return_as_link if true, will be used as the text to be shown as the link
* @return string IP address (or false on error)
* @assert (0,0) === false
*/
static function get_ip_from_user_event($user_id, $event_date, $return_as_link = false, $body_replace = null) {
if (empty($user_id) or empty($event_date)) {
return false;
}
$table_login = Database :: get_main_table(TABLE_STATISTIC_TRACK_E_LOGIN);
$sql_ip = "SELECT login_date, login_ip FROM $table_login WHERE login_user_id = $user_id AND login_date < '$event_date' ORDER BY login_date DESC LIMIT 1";
$ip = '';
$res_ip = Database::query($sql_ip);
if ($res_ip !== false && Database::num_rows($res_ip)>0) {
$row_ip = Database::fetch_row($res_ip);
if ($return_as_link) {
$ip = Display::url((empty($body_replace)?$row_ip[1]:$body_replace), 'http://www.whatsmyip.org/ip-geo-location/?ip='.$row_ip[1], array('title'=>get_lang('TraceIP'), 'target'=>'_blank'));
} else {
$ip = $row_ip[1];
}
}
return $ip;
}
}
/**
* @package chamilo.tracking

@ -398,7 +398,7 @@ class UserManager {
/**
* Delete a user from the platform, and all its belongings. This is a
* very dangerous function that should only be accessible by
* very dangerous function that should only be accessible by
* super-admins. Other roles should only be able to disable a user,
* which removes access to the platform but doesn't delete anything.
* @param int The ID of th user to be deleted
@ -423,6 +423,7 @@ class UserManager {
$table_session_user = Database :: get_main_table(TABLE_MAIN_SESSION_USER);
$table_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$table_group = Database :: get_course_table(TABLE_GROUP_USER);
$table_work = Database :: get_course_table(TABLE_STUDENT_PUBLICATION);
// Unsubscribe the user from all groups in all his courses
$sql = "SELECT c.id FROM $table_course c, $table_course_user cu
@ -434,8 +435,9 @@ class UserManager {
}
// Unsubscribe user from all classes
$sql = "DELETE FROM $table_class_user WHERE user_id = '".$user_id."'";
Database::query($sql);
//Classes are not longer supported
/*$sql = "DELETE FROM $table_class_user WHERE user_id = '".$user_id."'";
Database::query($sql);*/
// Unsubscribe user from usergroup_rel_user
$sql = "DELETE FROM $usergroup_rel_user WHERE user_id = '".$user_id."'";
@ -513,6 +515,10 @@ class UserManager {
//Delete user from friend lists
SocialManager::remove_user_rel_user($user_id, true);
}
// Delete students works
$sqlw = "DELETE FROM $table_work WHERE user_id = $user_id";
$resw = Database::query($sqlw);
unset($sqlw);
// Add event to system log
$user_id_manager = api_get_user_id();
event_system(LOG_USER_DELETE, LOG_USER_ID, $user_id, api_get_utc_datetime(), $user_id_manager);
@ -795,7 +801,7 @@ class UserManager {
}
/**
* Returns the user's id based on the original id and field name in
* Returns the user's id based on the original id and field name in
* the extra fields. Returns 0 if no user was found. This function is
* mostly useful in the context of a web services-based sinchronization
* @param string Original user id

@ -269,6 +269,9 @@ $LinkInvisible = "Link made invisible";
$LinkAdded = "Link added";
$Minutes = "Minutes";
$BackupCreated = "Backup created";
$CountCertificates = "Certificates count";
$AverageHoursPerStudent = "Avg hours/student";
$CountOfSubscribedUsers = "Subscribed users count";
$TrainingHoursAccumulated = "Training hours accumulated";
$ManHours = "Man hours";
$NotesObtained = "Notes obtained";

@ -1258,6 +1258,8 @@ $SessionStartDate = "Date de début d'accès";
$SessionDisplayEndDate = "Date de fin à afficher";
$SessionDisplayStartDate = "Date de début à afficher";
$UserHasNoCourse = "Cet utilisateur n'est inscrit à aucun cours";
$SessionPageEnabledComment = "Lorsque cette option est activée, le titre de la session est un lien vers une page spécifique à la session. Lorsqu'elle est désactivée, il s'agit seulement d'un titre, sans lien. La page de session liée pourrait confondre certains utilisateurs, raison pour laquelle vous pourriez souhaiter la désactiver.";
$SessionPageEnabledTitle = "Activer le lien de session dans la liste des cours";
$ThisValueIsUsedInTheCourseURL = "Cette valeur est utilisée dans l'URL du cours";
$ThereAreUsersUsingThisLanguageYouWantToDisableThisLanguageAndSetUsersWithTheDefaultPortalLanguage = "Des utilisateurs utilisent actuellement cette langue. Voulez-vous la désactiver quand même et modifier la langue de tous ces utilisateurs à la langue par défaut du portail?";
$SessionTutorsCanSeeExpiredSessionsResultsComment = "Les coaches de session peuvent consulter les rapports de cours après que la session a expiré?";

@ -58,7 +58,7 @@ $langReady = "Générer la table des matières";
$langStoreDocuments = "Stocker les documents";
$langTocDown = "Descendre";
$langTocUp = "Monter";
$CutPasteLink = "Sans cadres";
$CutPasteLink = "Afficher plein écran (nouvelle fenêtre)";
$langCreatePath = "Créer un parcours";
$SendDocument = "Importer le document";
$ThisFolderCannotBeDeleted = "Ce dossier ne peut être supprimé";

@ -49,7 +49,7 @@ $langCombinedCourse = "Cours combiné";
$Platform = "Plateforme";
$Refresh = "Rafraîchir";
$TotalOnLine = "Nombre total d'utilisateurs connectés";
$langCourseClosed = "(le cours est présentement fermé)";
$langCourseClosed = "(cours fermé)";
$ViewOpenCourses = "Voir les cours ouverts";
$langCompetences = "Compétences";
$langDiplomas = "Diplômes";

@ -247,6 +247,9 @@ $ModifyHotPotatoes = "Modifier hotpotatoes";
$SaveHotpotatoes = "Enregistrer hotpotatoes";
$ReturnToLPList = "Retour liste";
$LpPrerequisiteDescription = "Sélectionner un autre parcours comme prérequis cachera le parcours actuel jusqu'à ce que celui en prérequis soit complété à 100%";
$PrerequisitesOptions = "Options des pré-requis";
$ClearAllPrerequisites = "Éliminer tous les pré-requis";
$SetPrerequisiteForEachItem = "Configurer l'élément antérieur comme prérequis, systématiquement pour tous les éléments.";
$ClickOnTheLearnerViewToSeeYourLearningPath = "Cliquez sur [Vue apprenant] pour visualiser votre parcours";
$ExerciseCantBeEditedAfterAddingToTheLP = "Les exercices ne peuvent pas être édités après les avoir inclus dans un parcours. Vous pouvez les copier et modifier leur copie.";
$EnableTimeLimits = "Activer les limites de disponibilité";

@ -270,6 +270,12 @@ $LinkInvisible = "Lien rendu invisible";
$LinkAdded = "Lien ajouté";
$Minutes = "Minutes";
$BackupCreated = "Backup généré";
$CountCertificates = "Nombre de certificats";
$AverageHoursPerStudent = "Moy. d'heures/apprenant";
$CountOfSubscribedUsers = "Numéro d'inscrits";
$TrainingHoursAccumulated = "Somme des heures de formation";
$ManHours = "Heures homme";
$NotesObtained = "Note obtenue";
$DisplayCourseOverview = "Vue globale du cours";
$DisplaySessionOverview = "Vue globale des sessions";
$TotalNumberOfMessages = "Nombre total de messages";

@ -805,7 +805,7 @@ $Created = "Créé";
$LastUpdate = "Dernière mise à jour";
$UserNonRegisteredAtTheCourse = "Utilisateur non enregistré dans le cours";
$EditMyProfile = "Éditer mon profil";
$Announcements = "Brèves (nouvelles)";
$Announcements = "Annonces";
$Password = "Mot de passe";
$DescriptionGroup = "Description de groupe";
$Installation = "Installation";
@ -950,6 +950,7 @@ $SkillXWithCourseX = "%s via %s";
$ToGetToLearnXYouWillNeedToTakeOneOfTheFollowingCourses = "Pour apprendre %s, vous devez suivre l'un des cours suivants:";
$YourSkillRankingX = "Votre rang de compétence est de: %s";
$ManageSkills = "Gérer les compétences";
$StartDateMustBeBeforeTheEndDate = "La date de début doit être antérieure à la date de fin";
$SkillRoot = "Racine";
$SkillInfo = "Infos compétence";
$GetNewSkills = "Obtenir de nouvelles compétences";
@ -976,6 +977,7 @@ $NumberOfCoursesPrivate = "Nombre de cours privés";
$NumberOfCoursesClosed = "Nombre de cours fermés";
$NumberOfCoursesTotal = "Nombre total de cours";
$NumberOfUsersActive = "Nombre d'utilisateurs actifs";
$Approved = "Passé";
$EditSettings = "Éditer les paramètres";
$ThisValueCantBeChanged = "Cette valeur ne peut pas être modifiée.";
$TotalAvailableUsers = "Total d'utilisateurs disponible";

@ -1253,6 +1253,9 @@ $SessionStartDate = "Data de inicio do acceso";
$SessionDisplayEndDate = "Amosar a data de fin";
$SessionDisplayStartDate = "Data que se amosará na ficha de información da sesión como a data na cal a sesión se inicia";
$UserHasNoCourse = "O usuario non está inscrito en curso algún";
$SessionPageEnabledComment = "Cando esta opción está habilitada,o título da sesión é un enlace a unha páxina de sesión especial. Cando está deshabilitada, é soamente un título de texto, sen enlace. A páxina de sesión enlazada pode ser confundida por algúns usuarios,é por iso polo que quizais desexes desactivala";
$SessionPageEnabledTitle = "Habilitar enlace á sesión na lista de cursos";
$ThisValueIsUsedInTheCourseURL = "Este valor úsase na URL do curso";
$ThereAreUsersUsingThisLanguageYouWantToDisableThisLanguageAndSetUsersWithTheDefaultPortalLanguage = "Hai usuarios usando esta linguaxe. Quere desabilitar esta linguaxe e asignar a todos os usuarios a linguaxe por defecto do portal?";
$SessionTutorsCanSeeExpiredSessionsResultsComment = "Os titores de sesións poden ver os informes do curso despois de que teña expirado a sesión?";
$SessionTutorsCanSeeExpiredSessionsResultsTitle = "Visibilidade de informes para os titores de sesións.";

@ -369,6 +369,7 @@ $ReUseACopyInCurrentTest = "Realizar unha copia desta pregunta no exercicio actu
$Copy = "Copia";
$ScoreAverageFromAllAttempts = "Promedio de todos os intentos en exercicios";
$DefaultContent = "Xerar contido por defecto";
$EditQuestions = "Editar preguntas";
$ExerciseDescriptionLabel = "Descrición";
$ExerciseEditionNotAvailableInSession = "Non pode editar este exercicio do curso dende unha sesión";
$UniqueAnswerNoOption = "Resposta única con non sei";

@ -191,6 +191,9 @@ $CertificateMinimunScoreIsRequiredAndMustNotBeMoreThan = "A puntuación mínima
$LinkMod = "Gardar";
$EditLink = "Editar ligazón";
$CategoryDeleted = "A categoría foi eliminada";
$GenerateCertificates = "Xerar certificados";
$ExportAllCertificatesToPDF = "Exportar todos os certificados a PDF";
$DeleteAllCertificates = "Eliminar todos os certificados";
$AreYouSureToLockedTheEvaluation = "Está seguro que desexa bloquear a avaliación?";
$AreYouSureToUnLockedTheEvaluation = "Está seguro que desexa desbloquear a avaliación?";
$EvaluationHasBeenUnLocked = "Avaliación desbloqueada";

@ -251,6 +251,10 @@ $ModifyHotPotatoes = "Modificar hotpotatoes";
$SaveHotpotatoes = "Gardar hotpotatoes";
$ReturnToLPList = "Voltar ó listado";
$LpPrerequisiteDescription = "Seleccionando outro itinerario de aprendizaxe coma prerrequisito ocultara o prerrequisito actual ata que o prerrequisito sexa completado (100%)";
$PrerequisitesOptions = "Opcións de prerrequisitos";
$ClearAllPrerequisites = "Borrar todos os prerrequisitos";
$SetPrerequisiteForEachItem = "Establecer o paso anterior como prerrequisito para o seguinte paso";
$ClickOnTheLearnerViewToSeeYourLearningPath = "Pulsa sobre o botón \"vista de estudante\" para ver a túa lección.";
$ExerciseCantBeEditedAfterAddingToTheLP = "NOn é posible editar un exercicio despois de que se agregue a unha lección.";
$EnableTimeLimits = "Activar límites de dispoñibilidade";
$PublicationDate = "Data de publicación";

@ -269,6 +269,12 @@ $LinkInvisible = "Facer visible o enlace";
$LinkAdded = "Enlace engadido";
$Minutes = "Minutos";
$BackupCreated = "Copia de seguridade creada";
$CountCertificates = "Contar certificados";
$AverageHoursPerStudent = "Promedio de horas/estudante";
$CountOfSubscribedUsers = "Contar usuarios inscritos";
$TrainingHoursAccumulated = "Horas de capacitación acumuladas";
$ManHours = "Horas de traballo";
$NotesObtained = "Notas conseguidas";
$DisplayCourseOverview = "Vista xeral de cursos";
$DisplaySessionOverview = "Vista xeral de sesións";
$TotalNumberOfMessages = "Número total de mensaxes";

@ -952,6 +952,7 @@ $SkillXWithCourseX = "%s vía %s";
$ToGetToLearnXYouWillNeedToTakeOneOfTheFollowingCourses = "Para adquirir %s, deberá tomar un dos cursos seguintes:";
$YourSkillRankingX = "O teu rengo de competencias: %s";
$ManageSkills = "Xestionar as competencias.";
$StartDateMustBeBeforeTheEndDate = "A data de comezo debe ser anterior á data final";
$SkillRoot = "Raíz";
$SkillInfo = "Información de competencia.";
$GetNewSkills = "Obter novas competencias.";
@ -978,6 +979,13 @@ $NumberOfCoursesPrivate = "Número de cursos privados";
$NumberOfCoursesClosed = "Número de cursos pechados";
$NumberOfCoursesTotal = "Número total de cursos";
$NumberOfUsersActive = "Número de usuarios activos";
$Approved = "Aprobado";
$EditSettings = "Editar configuración";
$ThisValueCantBeChanged = "Este valor non se pode cambiar";
$TotalAvailableUsers = "Total de usuarios dispoñibles";
$LowerCaseUser = "usuario";
$dateFormatLongNoDay = "%d %B %Y";
$dateFormatOnlyDayName = "%A";
$ReturnToCourseList = "Regreso á lista de curso";
$dateFormatShortNumberNoYear = "%d%m";
$CourseTutor = "Titor de curso";

@ -1615,4 +1615,25 @@ $SystemManagement = "Systemverwaltung";
$RemoveOldDatabaseMessage = "Alte Datenbank entfernen";
$RemoveOldTables = "Alte Tabellen entfernen";
$TotalSpaceUsedByPortalXLimitIsYMB = "Gesamtspeicherplatz des Plattformlimits von %s beträgt %s MB";
$EventMessageManagement = "Nachrichtenverwaltung für Veranstaltungen";
$Events = "Veranstaltungen";
$ToBeWarnedUserList = "Liste der zu verwarnenden User";
$HideCampusFromPublicPlatformsList = "Campus nicht auf der öffentlichen Liste anzeigen";
$ChamiloOfficialServicesProviders = "Offizielle Service-Provider für Chamilo";
$Reader = "Reader";
$Zombies = "Zombies";
$ActiveOnly = "nur Aktive";
$AuthenticationSource = "Legitimationsquelle";
$RegisteredDate = "Registrierungsdatum";
$FilterTermsTitle = "Filterbegriffe";
$FilterTermsComment = "Eine Liste von Begriffen, einen pro Zeile, welche aus Webseiten und Emails ausgefiltert wird. Diese werden durch *** ersetzt.";
$UseCustomPagesTitle = "Benutzerdefinierte Seiten aktivieren";
$UseCustomPagesComment = "Mit Aktivierung werden benutzerdefinierte Login-Seiten je nach Benutzer-Rolle möglich";
$StudentPageAfterLoginTitle = "Seite, welche den Lernenden nach dem Anmelden angezeigt wird";
$StudentPageAfterLoginComment = "Diese Seite wird allen Lernenden nach dem Anmelden angezeigt";
$TeacherPageAfterLoginTitle = "Seite für Kursleiter nach Anmeldung";
$TeacherPageAfterLoginComment = "Diese Seite wird Kursleitern nach dem Anmelden angezeigt";
$DRHPageAfterLoginTitle = "Seite für HR-Manager nach Anmeldung";
$DRHPageAfterLoginComment = "Diese Seite wird dem HR-Manager nach dem Anmelden angezeigt";
$ScormCumulativeSessionTimeTitle = "Session-Timer bei SCORM-Kursen kumulieren";
?>

@ -72,7 +72,7 @@ $Inbox = "Nachrichten-Eingang";
$Comppose = "Nachricht erstellen";
$PendingInvitations = "Offene Einladungen";
$YouDoNotHaveAnySessionInItsHistory = "Sie haben keine Session in Ihrer Session-Liste";
$PortalHomepageDefaultIntroduction = "<h2>Herzlichen Glückwunsch! Die Installation von Chamilo ist abgeschlossen!</h2><p>Sie können jetzt mit der Einrichtung fortfahren, indem Sie folgende 3 Schritte ausführen:<br /><ol><li>Globale Konfigurationsmöglichkeiten sind im Administrationsbereich unter Plattform -> <a href=\\"main/admin/settings.php\\">Chamilo Konfigurations-Einstellungen</a> zu finden.</li><li>Füllen Sie Ihre Installation mit ein wenig Leben durch das Hinzufügen von Benutzern und/oder Kursen. Am Leichtesten geht dies durch das Versenden von Einladungen oder eigenes Erstellen von Logins im Administrationsbereich Benutzer -> <a href=\\"main/admin/\\">Benutzer hinzufügen</a>.</li><li>Diese Seite hier kann im Administrationsbereich unter Plattform -> <a href=\\"main/admin/configure_homepage.php\\">Startseite konfigurieren</a> bearbeitet werden.</li></ol><p>Mehr Informationen und Neuigkeiten gibt es auf der Webseite: <a href=\\"http://www.chamilo.org\\">http://www.chamilo.org</a>.</p><p>Jetzt viel Spaß mit Chamilo, und zögere nicht, der Community zum <a href=\\"http://www.chamilo.org/forum\\">Chamilo Forum</a> beizutreten.</p>";
$PortalHomepageDefaultIntroduction = "<h2>Herzlichen Glückwunsch! Die Installation von Chamilo ist abgeschlossen!</h2><p>Sie können jetzt mit der Einrichtung fortfahren, indem Sie folgende 3 Schritte ausführen:<br /><ol><li>Globale Konfigurationsmöglichkeiten sind im Administrationsbereich unter Plattform -> <a href=\"main/admin/settings.php\">Chamilo Konfigurations-Einstellungen</a> zu finden.</li><li>Füllen Sie Ihre Installation mit ein wenig Leben durch das Hinzufügen von Benutzern und/oder Kursen. Am Leichtesten geht dies durch das Versenden von Einladungen oder eigenes Erstellen von Logins im Administrationsbereich Benutzer -> <a href=\"main/admin/\">Benutzer hinzufügen</a>.</li><li>Diese Seite hier kann im Administrationsbereich unter Plattform -> <a href=\"main/admin/configure_homepage.php\">Startseite konfigurieren</a> bearbeitet werden.</li></ol><p>Mehr Informationen und Neuigkeiten gibt es auf der Webseite: <a href=\"http://www.chamilo.org\">http://www.chamilo.org</a>.</p><p>Jetzt viel Spaß mit Chamilo, und zögere nicht, der Community zum <a href=\"http://www.chamilo.org/forum\">Chamilo Forum</a> beizutreten.</p>";
$Username = "Benutzername";
$GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "Im Kursverzeichnis %s einen der bestehenden Kurse auswählen. Mit erfolgreicher Anmeldung wird dann der jeweilige Kurs anstelle dieser Nachricht %s erscheinen.";
$HelloXAsYouCanSeeYourCourseListIsEmpty = "Hallo <strong>%s</strong> herzlich willkommen,

@ -2,25 +2,25 @@
/*
for more information: see languages.txt in the lang folder.
*/
$AgendaAdd = "اضافهکردن یادداشت";
$ShowAllEvents = "نمایشتمامی یادداشتها";
$ShowCurrent = "نمایشیادداشت هایماه جاری";
$AddCalendarItem = "اضافهکردن یادداشت";
$AgendaAdd = "افزودن رویداد";
$ShowAllEvents = "نمایش تمامی رویداد ها";
$ShowCurrent = "ماه جاری";
$AddCalendarItem = "افزودن رویداد در تقویم";
$Day = "روز";
$Month = "ماه";
$Year = "سال";
$Hour = "ساعت";
$Minutes = "دقیقه";
$Detail = "جزئیّات";
$EditSuccess = "تغییریادداشت انجامشد";
$AddSuccess = "یادداشتشما اضافه شد";
$AgendaDeleteSuccess = "یادداشتمورد نظر حذفشد";
$NoAgendaItems = "&#1583;&#1585;&#1581;&#1575;&#1604; &#1581;&#1575;&#1590;&#1585; &#1607;&#1740;&#1670;&#1740;&#1575;&#1583;&#1583;&#1575;&#1588;&#1578;&#1740; &#1605;&#1608;&#1580;&#1608;&#1583;&#1606;&#1740;&#1587;&#1578;";
$EditSuccess = "رویداد ویرایش شد";
$AddSuccess = "رویداد اضافه شد";
$AgendaDeleteSuccess = "رویداد حذف شد";
$NoAgendaItems = "هیچ رویداد وجود ندارد";
$lang_september = "سپتامبر";
$langClassName = "نام\nکلاس";
$lang_agenda = "تقویم\nآموزشی";
$ModifyCalendarItem = "تغییریک یادداشت";
$ItemTitle = "عنوانیادداشت";
$langClassName = "نام کلاس";
$lang_agenda = "تقویم";
$ModifyCalendarItem = "ویرایش رویداد";
$ItemTitle = "نام رویداد";
$langDay = "روز";
$month_default = "ماه اولیه";
$langYear = "سال";
@ -32,22 +32,54 @@ $langLasting = "طول مدت";
$langOldToNew = "از قدیمی به جدید";
$langNewToOld = "از جدید به قدیمی";
$langNow = "&#1575;&#1705;&#1606;&#1608;&#1606;";
$langAddEvent = "اضافه کردن یادداشت";
$langDetail = "جزئیّات";
$langAddEvent = "ذخیره رویداد";
$langDetail = "جزئیات";
$MonthView = "نمایش ماه به ماه";
$WeekView = "نمایش هفته به هفته";
$DayView = "نمایش روز به روز";
$AddPersonalItem = "اضافه نمودن یادداشتی به تقویم شخصی";
$AddPersonalItem = "افزودن رویداد به تقویم";
$Week = "هفته";
$Date = "تاریخ";
$Time = "ساعت";
$AddPersonalCalendarItem = "اضافه نمودن یادداشتی به تقویم شخصی";
$ModifyPersonalCalendarItem = "تغییر یادداشتی در تقویم شخصی";
$PeronalAgendaItemAdded = "یادداشت مورد نظر شما به تقویم شخصی اضافه شد";
$PeronalAgendaItemEdited = "یادداشت مورد نظر شما در تقویم شخصی تغییر یافت";
$PeronalAgendaItemDeleted = " یادداشت مورد نظر شما از تقویم شخصی حذف گردید";
$AddPersonalCalendarItem = "افزودن رویداد به تقویم";
$ModifyPersonalCalendarItem = "ویرایش رویداد شخصی";
$PeronalAgendaItemAdded = "رویداد اضافه شد";
$PeronalAgendaItemEdited = "رویداد ذخیره شد";
$PeronalAgendaItemDeleted = "رویداد حذف شد";
$ViewPersonalItem = "نمایش تقویم شخصی";
$UserGroupFilter = "محدود نمودن به گروه ها یا کاربرانی خاص";
$UserGroupFilter = "فیلتر کردن گروه ها/کاربران";
$ShowAll = "نمایش همه";
$Print = "چاپ کردن";
$MyTextHere = "متن من در این قسمت";
$CopiedAsAnnouncement = "کپی برداری شده بعنوان اطلاعیه";
$NewAnnouncement = "اطلاعیه جدید";
$AddAnnouncement = "افزودن بعنوان یک اطلاعیه";
$UpcomingEvent = "رویداد های نزدیک";
$RepeatedEvent = "رویداد تکرار شده";
$RepeatType = "نوع تکرار";
$RepeatDaily = "روزانه";
$RepeatWeekly = "هفتگی";
$RepeatMonthlyByDate = "ماهانه، بر اساس تاریخ";
$RepeatMonthlyByDay = "ماهانه، بر اساس روز";
$RepeatMonthlyByDayR = "ماهانه، بر اساس روز، محدود شده";
$RepeatYearly = "سالانه";
$RepeatEnd = "تکرار تاریخ پایان";
$RepeatedEventViewOriginalEvent = "نمایش رویداد اصلی";
$ICalFileImport = "درون ریزی Outlook";
$AllUsersOfThePlatform = "تمامی کاربران سیستم";
$GlobalEvent = "رویداد سیستم";
$ModifyEvent = "ویرایش رویداد";
$EndDateCannotBeBeforeTheStartDate = "تاریخ پایان نباید قبل از تاریخ شروع باشد";
$AgendaSortChronologicallyUp = "صعودی";
$AgendaSortChronologicallyDown = "نزولی";
$ItemForUserSelection = "فهرست انتخاب کاربران";
$IsNotiCalFormatFile = "این فایل در ساختار iCal نیست";
$RepeatEvent = "تکرار رویداد";
$SessionCalendar = "تقویم جلسه";
$RepeatDate = "تکرار تاریخ";
$EndDateMustBeMoreThanStartDate = "تاریخ پایان باید بیشتر از تاریخ شروع باشد";
$SelectACourse = "انتخاب یک درس";
$PleaseSelectACourseOrASessionInTheLeftColumn = "لطفا یک درس یا یک جلسه در نوار کناری انتخاب کنید.";
$DisableEndDate = "غیر فعال کردن تاریخ پایان";
$AllEvents = "تمامی رویدادها";
?>

@ -2,81 +2,136 @@
/*
for more information: see languages.txt in the lang folder.
*/
$ModifInfo = "تنظیماتمحیط درسی";
$langModifDone = "اطلاعات\nمورد نظر تغییر\nیافت";
$langDelCourse = "حذف\nاین درس";
$ModifInfo = "تنظیمات";
$langModifDone = "اطلاعات مورد نظر تغییر یافت";
$langDelCourse = "حذف ناحیه درس";
$langProfessors = "اساتید";
$langFaculty = "طبقه";
$langConfidentiality = "میزان\nقابل دسترسی\nبودن درس";
$langPublic = "دسترسی\nعمومی از صفحه\nآغازین محیط\nآموزشی حتی بدون\nرمز ورود";
$langFaculty = "دسته بندی";
$langConfidentiality = "محرمانه";
$langPublic = "دسترسی عمومی از صفحه آغازین محیط آموزشی حتی بدون رمز ورود";
$langUnsubscription = "ابطال ثبت نام";
$langPrivOpen = "دسترسی\nمحدود، ثبت نام\nآزاد";
$langPrivOpen = "دسترسی محدود، ثبت نام آزاد";
$langPrivate = " دسترسی خصوصی، قابل دسترسی تنها برای کاربران ثبت نام شده در فهرست کاربران این درس";
$langForbidden = "سلب\nاجازه";
$langForbidden = "سلب اجازه";
$CourseAccessConfigTip = "درس شما در حالت کلی قابل دسترسی برای عموم است. اما شما می توانید میزان قابل دسترسی بودن آن را تعیین کنید.";
$langOpenToTheWorld = "دسترسی عمومی، قابل دسترسی همگانی";
$OpenToThePlatform = "دسترسی عمومی محدود، قابل دسترسی تنها برای کاربران ثبت نام شده در محیط آموزشی مجازی";
$langOpenToThePlatform = "قابل دسترسی در کل محیط آموزشی";
$langTipLang = "این\nزبان برای تمامی\nکاربران درس\nشما مورد استفاده\nقرار خواهد\nگرفت.";
$langVid = "ویدئو";
$langWork = "فعالیتهای\nدرسی";
$langProgramMenu = "برنامه\nدرسی";
$langAnnouncement = "اطلاعیه\nها";
$langExercise = "آزمونها";
$langStats = "آمار\nو ارقام";
$langUplPage = "فرستادن\nاین صفحه و پیوند\nدادن آن با صفحۀ\nآغازین";
$langLinkSite = "افزودن\nپیوندی به سوی\nاین صفحه روی\nصفحۀ آغازین";
$langCourse = "درس";
$langHasDel = "حذف\nشد";
$langBackHome = "بازگشت\nبه صفحۀ آغازین";
$langByDel = "آیا\nواقعاً می خواهید\nادامه دهید؟\n<br>حذف\nاین درس،حذف\nتمامی مدارک\nآن و ابطال ثبت\nنام تمامی کاربران\nآن را به دنبال\nخواهد داشت";
$langTipLang = "این زبان برای تمامی کاربران درس شما مورد استفاده قرار خواهد گرفت.";
$langVid = "سیستم زنده";
$langWork = "فعالیت های درسی";
$langProgramMenu = "برنامه درسی";
$langAnnouncement = "اطلاعیه ها";
$langExercise = "آزمون ها";
$langStats = "آمار";
$langUplPage = "فرستادن این صفحه و پیوند دادن آن با صفحۀ آغازین";
$langLinkSite = "افزودن پیوندی به سوی این صفحه روی صفحۀ آغازین";
$langCourse = "ناحیه مورد نظر";
$langHasDel = "حذف شد";
$langBackHome = "بازگشت به صفحۀ آغازین";
$langByDel = "آیا واقعاً می خواهید ادامه دهید؟ حذف این درس، حذف تمامی مدارک آن و ابطال ثبت نام تمامی کاربران آن را به دنبال خواهد داشت";
$langY = "بله";
$langN = "خیر";
$langDepartmentUrl = "آدرس\nاینترنتی گروه\nآموزشی";
$langDepartmentUrlName = "گروه\nآموزشی";
$langBackupCourse = "این\nدرس را روی رایانۀ\nخود بایگانی\nکنید";
$langModifGroups = "گروهها";
$langDepartmentUrl = "آدرس اینترنتی گروه آموزشی";
$langDepartmentUrlName = "گروه آموزشی";
$langBackupCourse = "این درس را روی رایانۀ خود بایگانی کنید";
$langModifGroups = "گروه ها";
$langProfessor = "استاد";
$langGroups = "گروهها";
$langDescriptionCours = "توضیحات\nدرس";
$langArchiveCourse = "ذخیرۀ\nدرس روی رایانۀ\nشما";
$langRestoreCourse = "بازسازی\nدرس";
$langRestore = "بازسازی";
$langCreatedIn = "ایجاد\nشده در";
$langCreateMissingDirectories = "آفرینش\nپرونده های\nلازم";
$langCopyDirectoryCourse = "کپی\nپوشه های این\nدرس";
$langDisk_free_space = "فضای\nخالی برای ذخیره";
$langBuildTheCompressedFile = "آفرینش\nپوشه های لازم\nبرای ذخیرۀ\nدرس";
$langFileCopied = "از\nپوشه ها کپی\nگرفته شد";
$langArchiveLocation = "محل\nبایگانی";
$langSizeOf = "وزن";
$langArchiveName = "عنوان\nبایگانی";
$langBackupSuccesfull = "ذخیره\nسازی این درس\nبا موفقیتت\nانجام شد";
$langBUCourseDataOfMainBase = "ذخیره\nسازی این درس\nدر پایگاه اصلی\nداده ها برای";
$langBUUsersInMainBase = "ذخیره\nسازی داده های\nمربوط به کاربران\nدر پایگاه اصلی\nداده ها برای";
$langBUAnnounceInMainBase = "ذخیره\nسازی داده های\nمربوط به اطلاعیه\nها در پایگاه\nاصلی داده ها\nبرای";
$langBackupOfDataBase = "ذخیرۀ\nپایگاه داده\nها";
$langCreationDate = "آفریده\nشد";
$langExpirationDate = "تاربخ\nابطال";
$langPostPone = "Post pone";
$langLastEdit = "آخرین\nتغییر";
$langLastVisit = "آخرین\nبازدید";
$langGroups = "گروه ها";
$langDescriptionCours = "توضیحات";
$langArchiveCourse = "نسخه پشتیبان درس";
$langRestoreCourse = "بازیابی یک درس";
$langRestore = "بازیابی";
$langCreatedIn = "ایجاد شده در";
$langCreateMissingDirectories = "آفرینش پرونده های لازم";
$langCopyDirectoryCourse = "کپی فایل های این درس";
$langDisk_free_space = "فضای خالی برای ذخیره";
$langBuildTheCompressedFile = "آفرینش فایل پشتیبان";
$langFileCopied = "فایل کپی شد";
$langArchiveLocation = "محل بایگانی";
$langSizeOf = "حجم";
$langArchiveName = "عنوان بایگانی";
$langBackupSuccesfull = "نسخه پشتیبان ذخیره شد";
$langBUCourseDataOfMainBase = "نسخه پشتیبان از اطلاعات درس در پایگاه داده اصلی تهیه شد";
$langBUUsersInMainBase = "تهیه نسخه پشتیبان از اطلاعات کاربر در پایگاه داده برای";
$langBUAnnounceInMainBase = "ذخیره سازی داده های مربوط به اطلاعیه ها در پایگاه اصلی داده ها برای";
$langBackupOfDataBase = "نسخه پشتیبان از پایگاه داده";
$langCreationDate = "آفریده شد";
$langExpirationDate = "تاریخ انقضاء";
$langPostPone = "بتعویق انداختن";
$langLastEdit = "آخرین ویرایش";
$langLastVisit = "آخرین بازدید";
$langSubscription = "ثبت نام";
$langCourseAccess = "دسترسی\nبه درس";
$langConfirmBackup = "آیا\nواقعاً می خواهید\nاین درس را روی\nرایانۀ خود\nذخیره نمایید؟";
$langCreateSite = "آفرینش\nدرس";
$langCourseAccess = "دسترسی به درس";
$langConfirmBackup = "آیا واقعاً می خواهید این درس را روی رایانۀ خود ذخیره نمایید؟";
$langCreateSite = "آفرینش درس";
$langRestoreDescription = "با\nفشار دادن روی\nکلمۀ <EFBFBD>بازسازی<EFBFBD>\nپروندۀ\nبایگانی دوباره\nنافشرده و محیط\nدرسی دوباره\nآفریده می شود\n<br /><br />در\nزیر می توانید\nپروندۀ بایگانی\nدرس مورد نظر\nرا انتخاب کنید.";
$langRestoreNotice = "امکان\nبازسازی خودکار\nفهرست کاربران\nوجود ندارد اما\nمسئول ادارۀ\nنرم افزاری محیط\nآموزشی می تواند\nبه کمک داده های\n این عمل را انجام\nدهد users.cvsموجود\nدر.";
$langAvailableArchives = "فهرست\nپرونده های\nبایگانی موجود";
$langNoArchive = "هیچ\nپروندۀ بایگانی\nشده ای انتخاب\nنشده است";
$langArchiveNotFound = "پروندۀ\nبایگانی مورد\nنظر یافت نشد";
$langArchiveUncompressed = "پروندۀ\nبایگانی مورد\nنظر نافشرده\nو نصب گردید.";
$langCsvPutIntoDocTool = "در\nقسمت مدارک قرار\nداده شد users.cvs";
$langAvailableArchives = "فهرست پرونده های بایگانی موجود";
$langNoArchive = "هیچ پروندۀ بایگانی شده ای انتخاب نشده است";
$langArchiveNotFound = "پروندۀ بایگانی مورد نظر یافت نشد";
$langArchiveUncompressed = "پروندۀ بایگانی مورد نظر نافشرده و نصب گردید.";
$langCsvPutIntoDocTool = "در قسمت مدارک قرار داده شد users.cvs";
$langBackH = "بازگشت به صفحه آغازین";
$langOtherCategory = "طبقه\nهای دیگر";
$langAllowedToUnsubscribe = " ایفای اجازه برای ابطال موارد ضبط شده";
$langNotAllowedToUnsubscribe = "عدم اجازه برای ابطال موارد ضبط شده";
$langCourseVisibilityClosed = "عدم دسترسی، قابل دسترسی تنها برای اداره کننده درس";
$CourseVisibilityClosed = "این درس بسته است - دسترسی غیر ممکن";
$CourseVisibilityModified = "اجازه بارگذاری دارند<span lang=\"en-us\"> PNG</span><span lang=\"en-us\">,JPG </span>یا <span lang=\"en-us\">GIF </span>فقط تصویرهایی با نوع </p>";
$langOtherCategory = "دسته های دیگر";
$langAllowedToUnsubscribe = "کاربران مجاز به ابطال ثبت نام این درس هستند";
$langNotAllowedToUnsubscribe = "کاربران مجاز به ابطال ثبت نام این درس نیستند";
$langCourseVisibilityClosed = "عدم دسترسی، قابل دسترسی تنها برای اساتید درس";
$CourseVisibilityClosed = "بسته شد - این درس فقط در دسترس اساتید می باشد";
$CourseVisibilityModified = "تغییر یافت (جزئیات تنظیمات بیشتری از طریق حقوق دسترسی سیستم)";
$WorkEmailAlert = "اخطار از طریق ایمیل بهنگام ثبت نام کار";
$WorkEmailAlertActivate = "فعال سازی اخطار ایمیل بهنگام ثبت نام کار جدید";
$WorkEmailAlertDeactivate = "غیر فعال کردن اخطار از طریق ایمیل بهنگام ثبت نام کار";
$DropboxEmailAlert = "اخطار از طریق ایمیل بهنگام ثبت نام تبادل فایل";
$DropboxEmailAlertActivate = "فعال سازی اخطار ایمیل بهنگام ثبت نام تبادل فایل";
$DropboxEmailAlertDeactivate = "غیر فعال کردن اخطار ایمیل بهنگام ثبت نام تبادل فایل";
$AllowUserEditAgenda = "اجازه ویرایش تقویم به دانشجویان";
$AllowUserEditAgendaActivate = "فعال سازی نسخه تقویم آموزشی توسط کاربران";
$AllowUserEditAgendaDeactivate = "غیر فعال کردن ویرایش تقویم توسط کاربران";
$AllowUserEditAnnouncement = "اجازه ویرایش اطلاعیه ها به کاربران";
$AllowUserEditAnnouncementActivate = "فعال سازی نسخه توسط کاربر";
$AllowUserEditAnnouncementDeactivate = "غیر فعال کردن نسخه توسط کاربر";
$OrInTime = "یا در";
$CourseRegistrationPassword = "کلمه عبور ثبت نام درس";
$langDescriptionDeleteCourse = "جهت حذف کامل درس از روی سرور بر روی این پیوند کلیک کنید.
مواظب باشید، هیچ راه برگشتی وجود ندارد!";
$langDescriptionCopyCourse = "کپی کردن درس و یا ابزار های آموزشی در یک درس دیگر. شما به دو درس جهت انجام این کار نیاز دارید: یک درس اصلی و دیگر درس مقصد.";
$DescriptionRecycleCourse = "این ابزار درس را خالی می کند. یعنی اسناد، انجمن ها، پیوندها و غیره را حذف می کند. البته به شما اجازه انتخاب بخش های جهت حذف داده می شود و یا اینکه قصد حذف کل آن را دارید.";
$QuizEmailAlert = "اخطار ایمیل در آزمون جدید ثبت شد";
$QuizEmailAlertActivate = "فعال سازی ارسال ایمیل بهنگام ارسال پاسخ های جدید به آزمون";
$QuizEmailAlertDeactivate = "غیر فعال کردن اخطار ایمیل در ثبت نام پاسخ های جدید آزمون";
$AllowUserImageForum = "تصویر کاربر در انجمن";
$AllowUserImageForumActivate = "نمایش تصاویر کاربران در انجمن";
$AllowUserImageForumDeactivate = "پنهان کردن تصاویر کاربران در انجمن";
$AllowLearningPathTheme = "صدور مجوز قالب آموزشی";
$AllowLearningPathThemeAllow = "مجوز صادر شد";
$AllowLearningPathThemeDisallow = "مجوز باطل شد";
$ConfigChat = "تنظیمات گفتگو";
$AllowOpenchatWindow = "باز کردن گفتگو در پنجره جدید";
$AllowOpenChatWindowActivate = "فعال سازی باز کردن گفتگو در پنجره جدید";
$AllowOpenChatWindowDeactivate = "غیر فعال کردن باز کردن گفتگو در پنجره جدید";
$NewUserEmailAlert = "اطلاع رسانی به استاد از طریق ایمیل بهنگام ثبت نام اتوماتیک یک کاربر";
$NewUserEmailAlertEnable = "فعال سازی اطلاع رسانی به استاد از طریق ایمیل بهنگام ثبت نام اتوماتیک یک کاربر";
$NewUserEmailAlertToTeacharAndTutor = "اطلاع رسانی به استاد و مربی از طریق ایمیل بهنگام ثبت نام اتوماتیک یک کاربر";
$NewUserEmailAlertDisable = "غیر فعال کردن اخطار ایمیل برای ثبت نام کاربران جدید در درس";
$AllowUserViewUserList = "مجوز کاربر جهت دیدن فهرست کاربر";
$AllowUserViewUserListActivate = "فعال سازی فهرست کاربر";
$AllowUserViewUserListDeactivate = "غیر فعال کردن فهرست کاربر";
$DoNotDisplayAnyAdvance = "عدم نمایش روند پیشرفت";
$CourseSettingsRegisterDirectLink = "اگر درس شما عمومی و باز هست، شما می توانید از پیوند مستقیم جهت ارسال دعوتنامه به کاربران جدید استفاده کنید، بنابراین بعد از ثبت نام آنها بصورت مستقیم به درس فرستاده می شوند.";
$DirectLink = "پیوند مستقیم";
$NewHomeworkEmailAlert = "بهنگام ساخت تکالیف به کاربران ایمیل بفرست";
$NewHomeworkEmailAlertEnable = "فعال سازی ارسال ایمیل به کاربران بهنگام ثبت تکالیف";
$NewHomeworkEmailAlertDisable = "غیر فعال کردن ارسال ایمیل به کاربران بهنگام ثبت تکالیف";
$DisplayAboutNextAdvanceNotDoneAndLastDoneAdvance = "نمایش آخرین گام اجرا شده و گام تمام نشده بعدی";
$AddPicture = "افزودن تصویر";
$LPAutoLaunch = "فعال سازی اجرای اتوماتیک مسیر آموزشی";
$ConfigLearnpath = "تنظیمات مسیر آموزشی";
$PDFWaterMarkHeader = "علامت واترمارک بهنگام صدور پی دی اف";
$RedirectToALearningPath = "تغییر مسیر به مسیرهای آموزشی انتخاب شده";
$RedirectToTheLearningPathList = "تغییر مسیر به فهرست مسیرهای آموزشی";
$ActivateLegal = "فعال سازی شرایط و ضوابط";
$ShowALegalNoticeWhenEnteringTheCourse = "بهنگام ورود به درس شرایط و ضوابط را نمایش داده شود";
$CourseLegalAgreement = "شرایط و ضوابط این درس";
$AcceptLegal = "پذیرش شرایط و ضوابط";
?>

@ -39,8 +39,15 @@ $langLocalFile = "انتخاب فایل از رایانه من";
$langServerFile = "انتخاب فایل از سرور";
$langNoBackupsAvailable = "هیچ فایل پشتیبانی وجود ندارد";
$langNoDestinationCoursesAvailable = "هیچ درس مقصدی وجود ندارد";
$langBackup = "ضبط";
$langBackup = "نسخه پشتیبان";
$langImportBackupInfo = "وارد کردن یک درس : میتوانید یک فایل پشتیبانی را از رایانه خود به محیط آموزشی وارد کنید. همچنین میتوانید یکی از فایل های موجود در روی سرور را به محیط آموزشی وارد کنید";
$langCreateBackupInfo = "ایجاد یک کپی پشتیبانی از این درس : میتوانید قسمت هایی از این درس را که میل دارید کپی کنید انتخاب نمایید";
$ToolIntro = "مقدمه ابزار آموزشی";
$UploadError = "آپلود با مشکل مواجه شد. لطفا حداکثر حجم آپلود و حقوق دسترسی پوشه را چک کنید.";
$DocumentsWillBeAddedToo = "اسناد هم اضافه خواهد شد";
$ToExportLearnpathWithQuizYouHaveToSelectQuiz = "اگر شما قصد صادر کردن یک درس حاوی آزمون را دارید، می بایست مطمئن شوید که آزمون مربوطه بهنگام صدور انتخاب شده باشد، شما باید در فهرست آزمون ها موارد مورد نظر را نتخاب نمایید.";
$ArchivesDirectoryNotWriteableContactAdmin = "پوشه آرشیو که توسط این ابزار مورد استفاده است، قابل نوشتن نیست. لطفا با مدیر سیستم تماس بگیرید.";
$DestinationCourse = "درس مقصد";
$IfYourLPsHaveAudioFilesIncludedYouShouldSelectThemFromTheDocuments = "اگر مسیر آموزشی شما دارای فایل های صوتی می باشد، شما باید آنها را از اسناد انتخاب کنید";
$DontForgetToSelectTheMediaFilesIfYourResourceNeedIt = "اگر منابع شما نیاز به فایل های چند رسانه ای دارد انتخاب آنها را فراموش نکنید";
?>

@ -2,64 +2,87 @@
/*
for more information: see languages.txt in the lang folder.
*/
$lang_already_enrolled = "&#1579;&#1576;&#157";
$lang_my_personnal_course_list = "&#1604;&#1740;&#1587;&#157";
$lang_course_enrollment = "دروس\nکاربر";
$lang_course_not_available = "&#1592;&#1575;&#1607;&#1585;&#1575;&#161";
$lang_enroll = "ثبت\nنام";
$lang_enroll_to_a_new_course = "ثبت\nنام در یک درس\nجدید";
$lang_my_present_course_list = "فهرست\nدروس کنونی من";
$lang_no_course_to_enroll_in_this_category = "&#1583;&#1585;&#1587;&#174";
$lang_or_search_from_the_course_code = "یا\nاز طریق کد درس\nجستجو کنید";
$AlreadyRegisteredToCourse = "قبلا در درس ثبت نام شده";
$lang_already_enrolled = "قبلا ثبت نام شده";
$lang_my_personnal_course_list = "فهرست دروس من";
$lang_course_enrollment = "کاربر درس";
$lang_course_not_available = "این درس در دسترس نسیت و یا اینکه وجود ندارد.";
$lang_enroll = "ثبت نام";
$lang_enroll_to_a_new_course = "ثبت نام در یک درس جدید";
$lang_my_present_course_list = "دروس من";
$lang_no_course_to_enroll_in_this_category = "هیچ درسی برای ثبت نام در این دسته وجود ندارد.";
$lang_or_search_from_the_course_code = "یا از طریق کد درس جستجو کنید";
$lang_search = "جستجو";
$lang_select_course_among_categories = "انتخاب\nدرس در طبقات";
$lang_select_course_in = "انتخاب\nدرس در";
$lang_select_course_in_search_results = "انتخابدرس در نتایججستجو";
$Unsubscribe = "ابطال\nثبت نام";
$lang_back_to_my_home_page = "بازگشت\nبه صفحۀ آغازین\nمن";
$lang_back_to_my_personnal_course_list = "بازگشت\nبه فهرست دروس\nمن";
$lang_select_course_among_categories = "انتخاب درس در دسته بندی";
$lang_select_course_in = "انتخاب درس در";
$lang_select_course_in_search_results = "انتخاب درس در نتایج جستجو";
$Unsubscribe = "ابطال ثبت نام";
$lang_back_to_my_home_page = "بازگشت به صفحۀ آغازین من";
$lang_back_to_my_personnal_course_list = "بازگشت به فهرست دروس من";
$langTitular = "مسئول";
$langBackToListOfThisUser = "بازگشت\nبه فهرست دروس";
$langAdministrationTools = "ابزارهای\nادارۀ محیط\nآموزشی";
$lang_back_to_parent_category = "بازگشت\nبه طبقۀ مادر";
$lang_back_to_course_selection = "بازگشت\nبه صفحۀ انتخاب\nدروس";
$lang_up = "بازگشت\nبه طبقۀ مادر";
$langCatList = "طبقات";
$langCourseList = "لیست\nدروس";
$langBackToListOfThisUser = "بازگشت به فهرست دروس";
$langAdministrationTools = "ابزارهای مدیریت";
$lang_back_to_parent_category = "بازگشت به دسته مادر";
$lang_back_to_course_selection = "بازگشت به انتخاب دروس";
$lang_up = "بازگشت به دسته مادر";
$langCatList = "دسته بندی ها";
$langCourseList = "فهرست دروس";
$Subscribe = "ثبت نام";
$AlreadySubscribed = "ثات نام شده";
$CourseCategoryStored = "طبقه ایجاد شد";
$lang_back_to_main_category_list = "بازگشت\nبه فهرست طبقات";
$langAdded = "اضافه\nشد";
$langDeleted = "حذف\nشد";
$langKeeped = "نگه\nداشته شد";
$AlreadySubscribed = "ثبت نام شده";
$CodeMandatory = "کد اجباری";
$CourseCategoryMandatory = "دسته بندی دروس اجباری";
$TeacherMandatory = "اساتید اجباری";
$CourseCategoryStored = "دسته بندی درس ایجاد شد";
$langWithoutTimeLimits = "بدون محدودیت زمانی";
$lang_back_to_main_category_list = "بازگشت به فهرست دسته بندی";
$langAdded = "اضافه شد";
$langDeleted = "حذف شد";
$langKeeped = "نگه داشته شد";
$langHideAndSubscribeClosed = "پنهان / بسته";
$langHideAndSubscribeOpen = "پنهان / باز";
$langShowAndSubscribeOpen = "آشکار / باز";
$langShowAndSubscribeClosed = "آشکار / بست&#1607";
$langAdminThisUser = "بازگشت\nبه صفحۀ کاربر";
$langManage = "مدیریت\nمحیط آموزشی";
$langAdminThisUser = "بازگشت به صفحۀ کاربر";
$langManage = "مدیریت پرتال";
$langEnrollToCourseSuccessful = "شما در درس ثبت نام شدید";
$langSubCat = "زیر\nطبقات";
$langSubCat = "دسته فرعی";
$langUnsubscribeNotAllowed = "اجازه ابطال ثبت نام در این درس داده نشده است";
$langCourseAdminUnsubscribeNotAllowed = "شما اداره کننده این درس هستید";
$CourseManagement = "مدیریت دروس و طبقات";
$CourseManagement = "کتالوگ دروس";
$SortMyCourses = "انتخاب دروس";
$SubscribeToCourse = "ثبت نام در دروس";
$UnsubscribeFromCourse = "ابطال ثبت نام در درس";
$CreateCourseCategory = "انتخاب یک طبقه درسی";
$CreateCourseCategory = "انتخاب یک دسته دروس شخصی";
$CourseCategoryAbout2bedeleted = "آیا مطمئن هستید که میخواهید این طبقه از دروس را حذف کنید؟ دروس این طبقه به خارج از طبقات درس منتقل خواهند شد";
$CourseCategories = "طبقات درس";
$CoursesInCategory = "درس در این طبقه";
$SearchCourse = "جستجو در میان دروس";
$UpOneCategory = "یک طبقه به طرف بالا";
$SearchResultsFor = "نتیجه جستجوی";
$ConfirmUnsubscribeFromCourse = "آیا واقعاً می خواهید ثابت نام خود در این درس را باطل کنید؟";
$CourseCategories = "دسته بندی دروس";
$CoursesInCategory = "دروس در این دسته";
$SearchCourse = "جستجو دروس";
$UpOneCategory = "یک دسته به طرف بالا";
$SearchResultsFor = "نتیجه جستجو برای:";
$ConfirmUnsubscribeFromCourse = "آیا واقعاً می خواهید ثبت نام خود در این درس را باطل کنید؟";
$NoCourseCategory = "هیچ طبقه درسی وجود ندارد";
$EditCourseCategorySucces = "درس مورد نظر هم اکنون به طبقه مربوطه متصل گردید";
$EditCourseCategorySucces = "درس مورد نظر هم اکنون به دسته مربوطه متصل گردید";
$SubscribingNotAllowed = "ثبت نام مجاز نمی باشد";
$CourseSortingDone = "سازماندهی دوباره دروس انجام گردید";
$ExistingCourseCategories = "طبقات موجود دروس";
$ExistingCourseCategories = "دسته بندی موجود دروس";
$YouAreNowUnsubscribed = "ثبت نام شما در درس هم اکنون باطل گردید";
$ViewOpenCourses = "دیدن درس های باز";
$ViewOpenCourses = "دیدن دروس باز";
$ErrorContactPlatformAdmin = "یک خطای ناشناخته بوقوع پیوست. لطفا با مدیر تماس بگیرید.";
$CourseRegistrationCodeIncorrect = "این کد درس اشتباه است";
$CourseRequiresPassword = "این درس نیازمند کلمه عبور هست";
$SubmitRegistrationCode = "ارسال کد ثبت نام";
$CourseCategoryDeleted = "دسته مورد نظر حذف شد";
$CategorySortingDone = "ترتیب دسته بندی ها انجام شد";
$CourseCategoryEditStored = "دسته بندی بروز رسانی شد";
$buttonCreateCourseCategory = "ذخیره دسته بندی دروس";
$buttonSaveCategory = "ذخیره دسته بندی";
$buttonChangeCategory = "تغییر دسته بندی";
$SessionName = "نام جلسه";
$SessionCategory = "دسته بندی جلسات";
$Expand = "باز کردن";
$Collapse = "بستن";
$CourseDetails = "توضیحات درس";
$GroupPendingInvitations = "دعوتنامه های معلق گروه";
$Compose = "ارسال پیام";
$ThereAreNoCoursesInThisCategory = "هیچ درسی در این مرحله از دسته بندی وجود ندارد";
?>

@ -3,35 +3,35 @@
for more information: see languages.txt in the lang folder.
*/
$langProfessors = "اساتید";
$langExplanation = "وقتی\nکه دکمۀ <EFBFBD>تأیید<EFBFBD>\nرا فشار\nدادید، یک کلاس\nدرس مجازی با\nتقویم آموزشی\n،ابزارهای\nمدیریت مدارک،\nپیامگاه و ...\nایجاد\nخواهد شد.<br /> شما\nبه عنوان آفرینندۀ\nاین کلاس درس\nبا استفاده از\nنام کاربری و\nرمز عبور خود\nخواهید توانست\nآن را به دلخواه\nخود تغییر دهید";
$langExplanation = "وقتی که دکمۀ تأیید را فشار دادید، یک کلاس درس مجازی با تقویم آموزشی ،ابزارهای مدیریت مدارک، پیامگاه و ... ایجاد خواهد شد. شما به عنوان آفرینندۀ این کلاس درس با استفاده از نام کاربری و رمز عبور خود خواهید توانست آن را به دلخواه خود تغییر دهید.";
$langEmpty = "ظاهراً بعضی از خانه ها را پر نکرده اید. لطفاً با استفاده ازدکمۀ بازگشت بر روی مرورگر خود به عقب بازگشته و همۀ خانه ها را پر کنید";
$langCodeTaken = "کد این درس قبلاً انتخاب شده است. لطفاً با استفاده ازدکمۀ بازگشت بر روی مرورگر خود به عقب بازگشته و کد دیگری انتخاب کنید";
$langFormula = "Yours sincerely";
$langMessage = "هنگامی\nکه یک پیامگاه\nآزمایشی را حذف\nمی کنید تمامی\nپیامهای موجود\nدر آن نیز حذف\nمی شوند";
$langExerciceEx = "نمونه\nای از یک آزمون";
$langFormula = "با احترام";
$langMessage = "هنگامی که یک انجمن آزمایشی را حذف می کنید تمامی پیامهای موجود در آن نیز حذف می شوند";
$langExerciceEx = "نمونه ای از یک آزمون";
$langAntique = "طنز";
$langSocraticIrony = "طنز\nسقراطی عبارت\nاست از";
$langManyAnswers = "(بیش\nاز یک جواب صحیح\nمی تواند وجود\nداشته باشد)";
$langRidiculise = "مسخره\nکردن مخاطب برای\nاینکه بپذیرد\nکه در اشتباه\nاست";
$langNoPsychology = "خیر،\nطنز سقراطی یک\nمسئلۀ روانشناختی\nنیست بلکه به\nاستدلال مربوط\nاست";
$langAdmitError = "قبول\nکردن اشتباهات\nخود برای دعوت\nاز مخاطب به\nبرگزیدن همین\nروش";
$langNoSeduction = "خیر،\nطنز سقراطی یک\nرویکرد دلربایانه\nیا روشی مبتنی\nبر مثال نیست";
$langForce = " مجبور\nنمودن مخاطب،\nبه کمک یک سلسله\nپرسش و زیر پرسش\nبه قبول اینکه\nآنچه را ادعا\nمی کند می داند،\nدر واقع نمی\nداند";
$langIndeed = "به معنی پرسیدن";
$langContradiction = "استفاده\nاز اصل عدم تناقض\nبرای رساندن\nمخاطب به بن\nبست.";
$langSocraticIrony = "طنز سقراطی عبارت است از";
$langManyAnswers = "(بیش از یک جواب صحیح می تواند وجود داشته باشد)";
$langRidiculise = "مسخره کردن مخاطب برای اینکه بپذیرد که در اشتباه است";
$langNoPsychology = "خیر، طنز سقراطی یک مسئلۀ روانشناختی نیست بلکه به استدلال مربوط است";
$langAdmitError = "قبول کردن اشتباهات خود برای دعوت از مخاطب به برگزیدن همین روش";
$langNoSeduction = "خیر، طنز سقراطی یک رویکرد دلربایانه یا روشی مبتنی بر مثال نیست";
$langForce = " مجبور نمودن مخاطب، به کمک یک سلسله پرسش و زیر پرسش به قبول اینکه آنچه را ادعا می کند می داند، در واقع نمی داند";
$langIndeed = "به معنی پرسیدن، طنز سقراطی یک روش پرسشی هست.";
$langContradiction = "استفاده از اصل عدم تناقض برای رساندن مخاطب به بن بست.";
$langNotFalse = "اینجواب غلط نیست.این درستاست که نشاندادن نادانیمخاطب در واقعبه معنای نشاندادن نتایجمتناقضی استکه از پیش فرضهایاو به دست میآید";
$langAgenda = "تقویم آموزشی";
$langAgenda = "تقویم";
$langVideo = "ویدئو";
$langCourseProgram = "توضیحات\nدر مورد درس";
$langCourseProgram = "توضیحات";
$langAnnouncements = "اطلاعیه ها";
$langAddPageHome = "فرستادن صفحاتو پیوند دادنآنها به صفحۀآغازین";
$langLinkSite = "افزودن\nپیوندی به سوی\nاین صفحه روی\nصفحۀ آغازین";
$langModifyInfo = "تنظیمات\nدرس";
$langCourseDesc = "توضیحات درس";
$langAgendaTitle = "سه\nشنبه ٢٣\nآبان ماه.\nاولین\nجلسه : اتاق١١٢";
$langAgendaText = "مقدمه ای بر مدیریت طرح";
$langMicro = "مصاحبه\nهای خیابانی";
$langGoogle = "موتور\nجستجوی سریع\nو قدرتمند";
$langAddPageHome = "آپلود صفحات و پیوند دادن آنها به صفحۀ آغازین";
$langLinkSite = "افزودن پیوندی این صفحه بروی صفحۀ آغازین";
$langModifyInfo = "تنظیمات";
$langCourseDesc = "توضیحات";
$langAgendaTitle = "سه شنبه ٢٣ آبان ماه - اولین جلسه. اتاق: ١١٢";
$langAgendaText = "مقدمه عمومی بر مدیریت پروژه";
$langMicro = "مصاحبه های خیابانی";
$langGoogle = "موتور جستجوی سریع و قدرتمند";
$langIntroductionText = " این\nمتن صفحۀ آغازین\nفضای درسی شما\nست. در این مکان می\nتوانید عنوان\nکلی درس خود و\nاحیاناً تصویری\nمربوط به آن را\nاضافه کنید.\nبرای این\nکار روی <b> مداد\nزرد </b> فشار\nدهید.";
$langIntroductionTwo = "این صفحه به هر کاربر یا گروه امکان می دهد که مدارک خود را به فضای آموزشی بفرستد";
$langCourseDescription = "توضیحات درس";

@ -2,34 +2,35 @@
/*
for more information: see languages.txt in the lang folder.
*/
$BackList = "بازگشت به قسمت تبادل مدارک";
$Upload = "ارسال";
$BackList = "بازگشت به قسمت تبادل فایل";
$ShowFeedback = "نمایش توضیحات";
$GiveFeedback = "اضافه کردن یا تغییر توضیحات";
$JustUploadInSelect = "---ارسال---";
$GiveFeedback = "افزودن یا ویرایش توضیحات";
$JustUploadInSelect = "---فقط ارسال---";
$MailingNothingFor = "هیچ برای";
$MailingFileNotRegistered = "(دراین درس ثبت نامنشده است)";
$MailingFileSentTo = "ارسال شده به";
$MailingFileIsFor = "است برای";
$MailingFileRecipDup = "دانشجویان متعددی دارای مشخصات مورد نظر می باشند";
$MailingFileRecipNotFound = "دانشجوییبا مشخصات موردنظر موجود نمیباشد";
$MailingFileNoRecip = "گیرندهمی باشد (ID) ناممورد نظر فاقدرمز شناسایی";
$MailingFileRecipNotFound = "دانشجویان مشخصات مورد نظر موجود نمی باشد";
$MailingFileNoRecip = "گیرنده می باشد (ID) نام مورد نظر فاقد رمز شناسایی";
$MailingFileNoPostfix = ": نام مورد نظر دارای پسوند روبرو نیست";
$MailingFileNoPrefix = "نام مورد نظر با پیشوند روبرو شروع نمی شود";
$MailingFileFunny = "ظاهراًفایل مورد نظرشما فاقد ناممی باشد یا دنبالهآندارای یک تاچهار حرف نیست(extension)";
$MailingFileFunny = "ظاهراً فایل مورد نظر شما فاقد نام می باشد یا دنباله آن دارای یک تا چهار حرف نیست";
$MailingZipDups = "فایل تعیین شده برای ارسال از طریق ایمیل نباید حاوی فایل های تکثیر شده باشد، درغیر این صورت فرستاده نخواهد شد";
$MailingZipPhp = "فایل فشردۀ تعیین شده نباید حاوی فایل های پی اچ پی باشد، در غیر این صورت فرستاده نخواهد شد";
$MailingZipEmptyOrCorrupt = "ظاهراً فایل فشرده تعیین شده برای ارسال از طریق رایانامه معتبر نیست یا خالی می باشد";
$MailingWrongZipfile = "فایل تعیین شده برای ارسال از طریق ایمیل باید از نوع فشرده باشد<br>(zip) + STUDENTID یا LOGINNAME<br>";
$MailingConfirmSend = "ارسالفایل به افرادمشخص را تأییدمی کنید؟";
$MailingSend = "ارسال فایل";
$MailingConfirmSend = "ارسال فایل به افراد مشخص را تأیید می کنید؟";
$MailingSend = "تأیید";
$MailingNotYetSent = "مدارک مورد نظر برای ارسال از طریق ایمیل هنوز ارسال نشده اند";
$MailingInSelect = "--ارسال از طریق ایمیل--";
$MailingAsUsername = "ارسال از طریق ایمیل";
$FileDeleted = "فایلانتخابی از قسمتتبادل مدارکحذف شد";
$MailingInSelect = "---ارسال ایمیل---";
$MailingAsUsername = "ارسال ایمیل";
$FileDeleted = "فایل انتخابی از قسمت تبادل فایل حذف شد";
$DocAdd = "فایل مورد نظر افزوده شد";
$Sender = "فرستنده";
$Author = "نویسنده";
$FileSize = "وزن";
$FileSize = "حجم";
$Title = "عنوان";
$OverwriteFile = "آیا می خواهید که نسخۀ جدید این فایل جایگزین نسخه قبلی آن شود؟";
$Ok = "تأیید";
@ -45,16 +46,61 @@ $UploadError = "ظاهراً مشکلی در عملیات ارسال فایل م
$TooBig = "ظاهراً فایلی انتخاب نکرده اید یا فایل انتخابی سنگین تر از حد قابل قبول است";
$NoFileSpecified = "ظاهراً فایلی برای ارسال تعیین نکرده اید";
$NoUserSelected = "لطفاً گیرنده این فایل را مشخص نمایید";
$BadFormData = "فرایندارسال بی ثمرماند. لطفاًبرای رفع اینمشکل با مسئولفضای آموزشیتماس بگیرید";
$GeneralError = "ظاهراًاشتباهی رخ دادهاست. لطفاًبرای رفع اینمشکل با مسئولفضای آموزشیتماس بگیرید";
$Dropbox = "تبادل مدارک";
$BadFormData = "فرایند ارسال بی ثمر ماند. لطفاً برای رفع این مشکل با مسئول فضای آموزشی تماس بگیرید.";
$GeneralError = "ظاهراًاشتباهی رخ داده است. لطفاً برای رفع این مشکل با مسئول فضای آموزشی تماس بگیرید.";
$Dropbox = "تبادل فایل";
$Help = "راهنمایی";
$ReceivedFiles = "فایل های دریافت شده";
$SentFiles = "فایل های ارسال شده";
$ReceivedTitle = "عنوان";
$SentTitle = "ارسال گردید";
$Authors = "نویسنده";
$Size = "حجم";
$LastResent = "آخرینارسال مجدد";
$LastResent = "آخرین ارسال مجدد";
$kB = "کیلوبایت";
$Root = "ریشه";
$MailingNonMailingError = "فایل ارسالی از طریق رایانامه (ایمیل)، به وسی&";
$MailingSelectNoOther = "با انتخاب ارسال از طریق رایانامه (ایمیل)، فا&";
$UploadNewFile = "اشتراک گذاری یک فایل جدید";
$AreYouSureToDelete = "آیا مطمئن هستید قصد حذف دارید";
$Feedback = "توضیحات";
$CloseFeedback = "بستن توضیحات";
$AddNewFeedback = "افزودن توضیحات";
$DropboxFeedbackStored = "پیام توضیحات بازیابی شده است";
$AllUsersHaveDeletedTheFileAndWillNotSeeFeedback = "تمامی کاربران فایل مورد نظر را حذف کرده اند، بنابراین هیچکس توضیحات اضافه شده شما را نخواهد دید.";
$FeedbackError = "خطای توضیحات";
$PleaseTypeText = "لطفا متنی یادداشت کنید.";
$YouAreNotAllowedToDownloadThisFile = "شما مجاز به دانلود این فایل نیستید.";
$CheckAtLeastOneFile = "حداقل یک فایل را چک کنید.";
$ReceivedFileDeleted = "فایل دریافت شده حذف گردید.";
$SentFileDeleted = "فایل ارسال شده حذف گردید.";
$FilesMoved = "فایل های انتخاب شده منتقل شدند.";
$ReceivedFileMoved = "فایل های دریافت شده منتقل شدند.";
$SentFileMoved = "فایل های ارسال شده منتقل شدند.";
$NotMovedError = "قادر به انتقال فایل (ها) نیستیم.";
$AddNewCategory = "افزودن یک پوشه جدید";
$EditCategory = "ویرایش یک دسته بندی";
$CategoryName = "نام پوشه";
$ErrorPleaseGiveCategoryName = "لطفا یک نام دسته وارد کنید";
$CategoryAlreadyExistsEditIt = "این دسته قبلا وجود دارد، لطفا یک نام دیگر انتخاب کنید";
$CurrentlySeeing = "شما در پوشه هستید";
$CategoryStored = "پوشه مورد نظر ایجاد شده است";
$CategoryModified = "دسته مورد نظر تغییر یافت.";
$CategoryDeleted = "دسته مورد نظر حذف گردید.";
$AuthorFieldCannotBeEmpty = "گزینه نویسنده نباید خالی باشد";
$YouMustSelectAtLeastOneDestinee = "شما حداقل می بایست یک مقصد انتخاب نمایید";
$DropboxFileTooBig = "اندازه فایل بیش از حد بزرگ هست.";
$TheFileIsNotUploaded = "فایل مورد نظر آپلود نشده است.";
$FileUploadSucces = "فایل بصورت موفقیت آمیز آپلود شده است.";
$MailingNonMailingError = "ارسال ایمیل قادر به بازنویسی توسط بدون ایمیل ها نیست";
$MailingSelectNoOther = "ارسال ایمیل قادر به ترکیب با دیگر دریافت کننده ها نمی باشد";
$MailingJustUploadSelectNoOther = "فقط آپلود قادر به ترکیب با دیگر دریافت کننده ها نیستند";
$NewDropboxFileUploaded = "یک فایل جدید در بخش تبادل فایل ارسال شده است.";
$NewDropboxFileUploadedContent = "یک فایل جدید در بخش تبادل فایل ارسال شد";
$langAddEdit = "افزودن / ویرایش";
$ErrorNoFilesInFolder = "این پوشه خالی هست";
$AddComment = "ذخیره توضیحات";
$SentCatgoryDeleted = "پوشه مورد نظر حذف شد";
$ReceivedCatgoryDeleted = "پوشه مورد نظر حذف شد";
$InvalideUserDetected = "کاربر غیر معتبر شناسایی شد.";
$InvalideGroupDetected = "گروه غیر معتبر شناسایی شد.";
$OverviewOfFilesInThisZip = "دورنمای diles در فایل فشرده";
?>

@ -2,86 +2,99 @@
/*
for more information: see languages.txt in the lang folder.
*/
$langNewGroupCreate = "ایجادگروه های جدید";
$langGroupCreation = "ایجادگروه های جدید";
$langNewGroupCreate = "ایجاد گروه های جدید";
$langGroupCreation = "ایجاد گروه های جدید";
$langCreate = "ایجاد";
$langNewGroups = "گروه\nهای جدید";
$langMax = "<i>INNOV21</i> : حداکثر ١٢حرف، مثال";
$langNewGroups = "گروه های جدید";
$langMax = "<i>جوانان264</i> : حداکثر ١٢حرف، مثال";
$langGroupPlacesThis = "(عضو\n(اختیاری";
$langGroupsAdded = "گروههای\nمورد نظر اضافه\nشدند";
$langGroupDel = "گروههای\nمورد نظر حذف\nشدند";
$langDocuments = "مدارک";
$langExistingGroups = "گروهها";
$langRegistered = "ثبت\nنام شده";
$langGroupAllowStudentRegistration = "کاربرانمی توانند شخصاًدر گروهها ثبتنام کنند";
$langGroupTools = "ابزارهای\nآموزشی";
$langGroupDocument = "مدارک";
$langGroupPropertiesModified = "تنظیمات\nگروه تغییر\nیافت";
$langGroupSpace = "قلمروی\nگروه";
$langGroupName = "نام\nگروه";
$langGroupDescription = "توضیحات\nدر مورد گروه";
$langGroupMembers = "اعضای\nگروه";
$langEditGroup = "تغییر\nاین گروه";
$langGroupsAdded = "گروه های مورد نظر اضافه شدند";
$langGroupDel = "گروه های مورد نظر حذف شدند";
$langDocuments = "اسناد";
$langExistingGroups = "گروه ها";
$langRegistered = "ثبت نام شده";
$langGroupAllowStudentRegistration = "کاربران می توانند شخصاً در گروه ها ثبت نام کنند";
$langGroupTools = "ابزار ها";
$langGroupDocument = "اسناد";
$langGroupPropertiesModified = "تنظیمات گروه تغییر یافت";
$langGroupSpace = "ناحیه گروه";
$langGroupName = "نام گروه";
$langGroupDescription = "توضیحات گروه";
$langGroupMembers = "اعضای گروه";
$langEditGroup = "ویرایش این گروه";
$Optional = "(اختیاری)";
$langGroupSettingsModified = "تنظیمات\nگروه تغییر\nیافت";
$langGroupTooMuchMembers = "شمار\nاعضای مورد نظر\nشما بیشتر از\nحداکثر مجاز\nدر این گروه\nاست. در\nزیر می توانید\nحداکثر مجاز\nاعضا در این\nگروه را تغییر\nدهید";
$langGroupTutor = "مشاور\nآموزشی گروه";
$langGroupSettingsModified = "تنظیمات گروه تغییر یافت";
$langGroupTooMuchMembers = "شمار اعضای مورد نظر شما بیشتر از حداکثر مجاز در این گروه است. در زیر می توانید حداکثر مجاز اعضا در این گروه را تغییر دهید";
$langGroupTutor = "مشاور آموزشی گروه";
$langGroupNoTutor = "(هیچ)";
$langGroupNone = "(هیچ)";
$langGroupNoneMasc = "(هیچ)";
$langAddTutors = "مدیریت\nفهرست کاربران";
$langMyGroup = "گروه\nمن";
$langOneMyGroups = "ناظر\nآموزشی من";
$langGroupSelfRegistration = "ثبت\nنام";
$langGroupSelfRegInf = "ثبت\nنام";
$langRegIntoGroup = "مرا\nبه این گروه\nاضافه کنید";
$langGroupNowMember = "شما\nاکنون عضو این\nگروه هستید";
$langAddTutors = "مدیریت فهرست کاربران";
$langMyGroup = "گروه من";
$langOneMyGroups = "ناظر آموزشی من";
$langGroupSelfRegistration = "ثبت نام";
$langGroupSelfRegInf = "ثبت نام";
$langRegIntoGroup = "مرا به این گروه اضافه کنید";
$langGroupNowMember = "شما اکنون عضو این گروه هستید";
$langPrivate = " دسترسی خصوصی، قابل دسترسی تنها برای کاربران ثبت نام شده در فهرست کاربران این درس";
$langPublic = "دسترسی\nعمومی از صفحه\nآغازین محیط\nآموزشی حتی بدون\nرمز ورود";
$langPropModify = "تغییر\nتنظیمات";
$langPublic = "دسترسی عمومی از صفحه آغازین محیط آموزشی حتی بدون رمز ورود";
$langPropModify = "ویرایش تنظیمات";
$langState = "وضعیت";
$langGroupFilledGroups = "گروههای\nمورد نظر توسط\nافراد موجود\nدر فهرست کاربران\nپر شدند";
$langSubscribed = "کاربران\nثبت نام شده در\nاین درس";
$langStudentsNotInThisGroups = "افرادی\nکه در این گروه\nنشده اند";
$langQtyOfUserCanSubscribe_PartBeforeNumber = "هرکاربر می تواندعضو تعداد گروهروبرو باشد";
$langQtyOfUserCanSubscribe_PartAfterNumber = "گروه";
$langGroupLimit = "حد";
$langStudentRegAllowed = "کاربران خود مجاز به ثبت نام در گروهها هستند";
$langGroupFilledGroups = "گروه های مورد نظر توسط افراد موجود در فهرست کاربران پر شدند";
$langSubscribed = "کاربران ثبت نام شده در این درس";
$langStudentsNotInThisGroups = "افرادی که در این گروه نیستند";
$langQtyOfUserCanSubscribe_PartBeforeNumber = "هر کاربر می تواند حداکثر عضو تعداد گروه روبرو باشد";
$langQtyOfUserCanSubscribe_PartAfterNumber = "گروه ها";
$langGroupLimit = "محدودیت";
$CreateGroup = "ساخت گروه";
$ProceedToCreateGroup = "ادامه دهید برای ساخت گروه";
$langStudentRegAllowed = "کاربران خود مجاز به ثبت نام در گروه ها هستند";
$langGroupAllowStudentUnregistration = "کاربران اجازه دارند که ثبت نام خود را باطل کنند";
$langAllGroups = "همه گروه ها";
$langStudentUnsubscribe = "ابطال ثبت نام من از این گروه";
$langStudentDeletesHimself = "شما دیگر عضو گروه مورد نظر نیستید";
$langDefaultSettingsForNewGroups = "پارامترهای اولیه برای گروههای جدید";
$langSelectedGroupsDeleted = "تمامی گروههای انتخابی حذف شدند";
$langSelectedGroupsEmptied = "تمامی گروههای انتخابی از این پس خالی هستند";
$langDefaultSettingsForNewGroups = "پارامترهای اولیه برای گروه های جدید";
$langSelectedGroupsDeleted = "تمامی گروه های انتخابی حذف شدند";
$langSelectedGroupsEmptied = "تمامی گروه های انتخابی از این پس خالی هستند";
$langGroupEmptied = "&#1711;&#1585;&#1608;&#1607; &#1605;&#1608;&#1585;&#1583; &#1606;&#1591;&#1585; &#1582;&#1575;&#1604;&#1740; &#1711;&#1585;&#1583;&#1740;&#1583;";
$langSelectedGroupsFilled = "تمامی گروههای انتخابی پر شدند";
$langGroupSelfUnRegInf = "ابطال موارد ضبط شده";
$langSelectedGroupsFilled = "تمامی گروه های انتخابی پر شدند";
$langGroupSelfUnRegInf = "ابطال ثبت نام";
$langSameForAll = "تعمیم به همه";
$langNoLimit = "بدون محدودیت";
$langPleaseEnterValidNumber = "لطفاً تعداد گروهها را وارد کنید";
$langCreateGroupsFromVirtualCourses = "ایجاد گروهها با تمامی کاربران دروس مجازی";
$langCreateGroupsFromVirtualCoursesInfo = "&#1575;&#1740;&#1606; &#1583;&#1585;&#1587; &#1578;&#1585;&#1705;&#1740;&#1576;&#1740; &#1575;&#1586; &#1583;&#1585;&#1608;&#1587; &#1608;&#1575;&#1602;&#1593;&#1740; &#1608; &#1740;&#1705; &#1740;&#1575; &#1670;&#1606;&#1583; &#1583;&#1585;&#1587; &#1605";
$langPleaseEnterValidNumber = "لطفاً تعداد گروه ها را وارد کنید";
$langCreateGroupsFromVirtualCourses = "ایجاد گروه ها با تمامی کاربران دروس مجازی";
$langCreateGroupsFromVirtualCoursesInfo = "این درس ترکیبی از یک درس واقعی و یک کلاس مجازی می باشد. اگر دکمه ذیل را بفشارید، گروه های جدید بر اساس دروس مجازی ذیل ساخته خواهد شد. تمامی دانشجویان به گروه ها ثبت نام خواهند شد.";
$langNoGroupsAvailable = "هیچ گروهی وجود ندارد";
$langGroupsFromVirtualCourses = "درس مجازی";
$NotAvailable = "غیر قابل دسترسی";
$CreateSubgroups = "ایجاد زیر گروه";
$CreateSubgroupsInfo = "&#1575;&#1740;&#1606; &#1711;&#1586;&#1740;&#1606;&#1607; &#1576;&#1607; &#1588;&#1605;&#1575; &#1575;&#1605;&#1705;&#1575;&#1606; &#1605;&#1740; &#1583;&#1607;&#1583; &#1705;&#1607; &#1576;&#1585; &#1662;&#1575;&#1740;&#1728; &#1740;&#1705; &#1711;&#1585";
$CreateNumberOfGroups = "ایجاد";
$WithUsersFrom = "گروههایی که از افراد گروه مقابل تشکیل شده اند";
$CategoryDeleted = "طبقه مورد نظر حذف شد";
$CreateSubgroupsInfo = "این گزینه به شما اجازه ساخت گروه های جدید بسته به یک گروه موجود را می دهد.";
$CreateNumberOfGroups = "ساخت تعدادی گروه";
$WithUsersFrom = "گروه هایی با اعضایی از";
$CategoryDeleted = "دسته مورد نظر حذف شد";
$Empty = "خالی کردن";
$FillGroup = "افزودن کاربر";
$EmptyGroup = "ابطال ثبت نام تمامی کاربران";
$MaxGroupsPerUserInvalid = "نسبتی را که برای حداکثرگروه به ازای هر کاربر در نظر گرفته اید، نسبت مناسبی نیست. در حال حاضر کاربرانی وجود دارند که در تعداد گروه بیشتری از آنچه شما وارد کرده اید ثبت نام هستند";
$GroupOverview = "دورنمای گروه";
$GroupCategory = "طبقات گروهها";
$GroupCategory = "دسته بندی گروه ها";
$NoTitleGiven = "لطفاً یک عنوان انتخاب کنید";
$InvalidMaxNumberOfMembers = "لطفاً رقم معتبری برای حداکثر تعداد کاربران وارد کنید";
$CategoryOrderChanged = "ترتیب طبقات تغییر یافت";
$Wiki = "قسمت همکاری گروه در ساخت نرم افزار - wiki";
$CategoryCreated = "طبقه مورد نظر ایجاد شد";
$GroupWork = "کار";
$CategoryOrderChanged = "ترتیب دسته ها تغییر یافت";
$Wiki = "ویکی گروه";
$CategoryCreated = "دسته مورد نظر ایجاد شد";
$GroupTutors = "مربی ها";
$GroupWork = "تکالیف";
$GroupCalendar = "تقویم";
$GroupAnnouncements = "اعلان";
$GroupAnnouncements = "اطلاعیه ها";
$NoCategoriesDefined = "هیچ گروهی تعریف نشده است";
$GroupsFromClasses = "گروه های کلاس ها";
$GroupsFromClassesInfo = "با استفاده از این گزینه، شما قادر به ساخت گروه ها بسته به کلاس های ثبت نام شده در درس خود را دارید.";
$Group = "گروه";
$ForumOfGroup = "انجمن گروه:";
$BackToGroupList = "بازگشت به فهرست گروه ها";
$EditGroupCategory = "ویرایش دسته بندی گروه";
$NoStudents = "بدون دانشجو";
$NoData = "هیچ اطلاعات در دسترس نیست";
$AllGroups = "تمامی گروه ها";
?>

@ -2,4 +2,24 @@
/*
for more information: see languages.txt in the lang folder.
*/
$select = "معتبر سازی";
$square = "مربع";
$circle = "بیضی";
$poly = "چند گوشه";
$status1 = "رسم یک کانون";
$status2_poly = "از راست کلیک جهت بستن چند گوشه استفاده کنید.";
$status2_other = "انتشار دکمه ماوس جهت ذخیره کردن کانون.";
$status3 = "کانون ذخیره شد";
$exercise_status_1 = "پاسخ دادن بوسیله کلیک بر تصویر پایین";
$exercise_status_2 = "معتبر سازی پاسخ ها";
$exercise_status_3 = "وضعیت: سوال تمام شد";
$showUserPoints = "نمایش/پنهان سازی کلیک کاربران";
$showHotspots = "نمایش/پنهان سازی کانون ها";
$labelPolyMenu = "بستن چند گوشه";
$triesleft = "تلاش های باقیمانده";
$exeFinished = "هم اکنون بر روی دکمه پایین جهت معتبر سازی پاسخ هایتان کلیک کنید.";
$nextAnswer = "اکنون کلیک کنید بروی: &done=done";
$delineation = "طرح";
$labelDelineationMenu = "بستن طرح";
$oar = "ناحیه در خطر";
?>

@ -10,21 +10,21 @@ $MainCategory = "دسته اصلی";
$lang_delete_added_resources = "حذف منابع افزوده شده";
$AddToLinks = "افزودن به پیوندهای درس";
$DontAdd = "اضافه نکردن";
$lang_show_all_added_resources = "نمایش\nتمامی منابع\nافزوده شد&#1607";
$ResourcesAdded = "منابعمورد نظر افزودهشدند";
$BackTo = "بازگشتبه";
$ExternalResources = "منابعخارج از درس";
$CourseResources = "منابعدرسی";
$ExternalLink = "پیوندبه خارج از درس";
$lang_show_all_added_resources = "نمایش تمامی منابع افزوده شد";
$ResourcesAdded = "منابع مورد نظر افزوده شدند";
$BackTo = "بازگشت به";
$ExternalResources = "منابع خارج از درس";
$CourseResources = "منابع درسی";
$ExternalLink = "پیوند به خارج از درس";
$DropboxAdd = "افزودن صفحۀ تبادل مدارک به این فصل";
$AddAssignmentPage = " افزودن صفحۀ فعالیتهای درسی به این فصل";
$Exercise = "آزمون ها";
$Link = "پیوند ها";
$AdValvas = "اطلاعیه ها";
$Document = "مدارک آموزشی";
$Document = "اسناد";
$ShowDelete = "نمایش / حذف";
$IntroductionText = "متن مقدمه";
$CourseDescription = "توضیحاتدر مورد درس";
$CourseDescription = "توضیحات در مورد درس";
$Groups = "گروه ها";
$Users = "کاربران";
$IntroductionTextAdd = "افزودن صفحه حاوی متن مقدمه به این فصل";
@ -33,26 +33,27 @@ $GroupsAdd = "افزودن صفحه گروهها به این فصل";
$UsersAdd = "افزودن صفحه کاربران به این فصل";
$ExportableCourseResources = "محتوای آموزشی قابل صدور به صورت <br>SCORM <br>";
$DokeosRelatedCourseMaterial = "محتوای آموزشی غیر قابل صدور به صورت <br>SCORM <br>";
$LinkTarget = "مقصدپیوند";
$LinkTarget = "مقصد پیوند";
$SameWindow = "باز شدن صفحه مقصد در همان پنجره";
$NewWindow = "بازشدن صفحه مقصددر پنجره ایجدید";
$StepDeleted1 = "&#1575;&#1740;&#1606;";
$StepDeleted2 = "مورد انتخابی از این ابزار آموزشی حذف شد";
$Modify = "تغییر یافت";
$Modify = "ویرایش";
$Chapter = "فصل";
$NoAgendaItems = "&#1607;&#1740;&#1670; &#1740;&#1575;&#1583;&#1583;&#1575;&#1588;&#1578;&#1740; &#1605;&#1608;&#1580;&#1608;&#1583; &#1606;&#1740;&#1587;&#1578;";
$AgendaAdd = "اضافهکردن یادداشت";
$UserGroupFilter = "محدود نمودن به گروه ها یا کاربرانی خاص";
$AgendaSortChronologicallyUp = "نمایش یادداشت ها از قدیمی ترین به جدیدترین";
$ShowCurrent = "نمایشیادداشت هایماه جاری";
$ModifyCalendarItem = "تغییریک یادداشت";
$ItemTitle = "عنوانیادداشت";
$Detail = "جزئیّات";
$EditSuccess = "تغییریادداشت انجامشد";
$AddCalendarItem = "اضافهکردن یادداشت";
$NoAgendaItems = "هیچ رویدادی وجود ندارد";
$AgendaAdd = "افزودن رویداد";
$UserGroupFilter = "فیلتر کردن گروه ها/کاربران";
$AgendaSortChronologicallyUp = "صعودی";
$ShowCurrent = "نمایش رویدادهای ماه جاری";
$ModifyCalendarItem = "ویرایش رویداد";
$ItemTitle = "نام رویداد";
$Detail = "جزئیات";
$EditSuccess = "رویداد ویرایش شد";
$AddCalendarItem = "افزودن رویداد در تقویم";
$AddAnn = "افزودن اطلاعیه";
$ForumAddNewTopic = "پیامگاه : افزودن عنوان جدید";
$ForumEditTopic = "پیامگاه : تغییر عنوان";
$ForumAddNewTopic = "انجمن : افزودن موضوع جدید";
$ForumEditTopic = "انجمن : تغییر موضوع";
$ExerciseAnswers = "تمرین : پاسخ ها";
$ForumReply = "پیامگاه : پاسخ";
$ForumReply = "انجمن : پاسخ";
$AgendaSortChronologicallyDown = "نزولی";
?>

@ -3,35 +3,59 @@
for more information: see languages.txt in the lang folder.
*/
$langScormVersion = "نسخه";
$langScormRestarted = "تمامی\nدروس فعلاً\nناتمام مانده\nاند";
$langScormNoNext = "&#1575;&#1740;&#160";
$langScormNoPrev = "&#1575;&#1740;&#160";
$langScormRestarted = "تمامی دروس فعلاً ناتمام مانده اند";
$langScormNoNext = "این آخرین شیء آموزشی می باشد.";
$langScormNoPrev = "این اولین شیء آموزشی می باشد";
$langScormTime = "زمان";
$langScormNoOrder = "ترتیب\nاز پیش تعیین\nشده ای وجود\nندارد. می\nتوانید هر درسی\nرا انتخاب کنید";
$langScormNoOrder = "ترتیب از پیش تعیین شده ای وجود ندارد. می توانید هر درسی را انتخاب کنید.";
$langScormScore = "نمره";
$langScormLessonTitle = "عنوان\nدرس";
$langScormLessonTitle = "نام شیء آموزشی";
$langScormStatus = "وضعیت";
$langScormToEnter = "برای\nورود";
$langScormFirstNeedTo = "باید\nابتدا این موارد\nرا به اتمام\nبرسانید";
$langScormThisStatus = "&#1608;&#1590;&#1593;&#1740;&#157";
$langScormClose = "پایان\nدادن";
$langScormRestart = "شروع\nدوباره";
$langScormCompstatus = "تکمیل\nشده";
$langScormToEnter = "برای ورود";
$langScormFirstNeedTo = "باید ابتدا این موارد را به اتمام برسانید";
$langScormThisStatus = "شیء آموزشی هم اکنون";
$langScormClose = "پایان دادن";
$langScormRestart = "شروع دوباره";
$langScormCompstatus = "تکمیل شده";
$langScormIncomplete = "ناتمام";
$langScormPassed = "اتمام\nموفقیت آمیز";
$langScormFailed = "اتمام\nناموفق";
$langScormPassed = "اتمام موفقیت آمیز";
$langScormFailed = "اتمام ناموفق";
$langScormPrevious = "قبلی";
$langScormNext = "بعدی";
$langScormTitle = "SCORM اجراکنندۀ محتویاتدرسی";
$langScormMystatus = "وضعیت\nمن";
$langScormTitle = "اجراکنندۀ محتویات درسی";
$langScormMystatus = "روند پیشرفت من";
$langScormNoItems = "&#1575;&#1740;&#1606; &#1605;&#1581;&#1578;&#1608;&#1575;&#1740; &#1570;&#1605;&#1608;&#1586;&#1588;&#1740; &#1582;&#1575;&#1604;&#1740; &#1575;&#1587;&#1578;";
$langScormNoStatus = "&#1575;&#1740;&#1606; &#1605;&#1581;&#1578;&#1608;&#1575;&#1740; &#1570;&#1605;&#1608;&#1586;&#1588;&#1740; &#1575;&#1586; &#1606;&#1608;&#1593; &#1586;&#1740;&#1585; &#1575;&#1587;&#1578; <br />SCORM version 1.1<br /> &#1606;&#1605;&#1575;&#1740;&#1588; &#16";
$langScormLoggedout = "SCORM عدم اتصال به قسمت";
$langScormNoStatus = "هیچ وضعیتی برای این محتوا وجود ندارد";
$langScormLoggedout = "خروج از ناحیه Scorm";
$langScormCloseWindow = "بستن پنجره";
$ScormBrowsed = "مرور شده";
$langScormExitFullScreen = "بازگشت به طرز نمایش عادی";
$langScormFullScreen = "نمایش در کل صفحه";
$langScormNotAttempted = "امتحان نشده";
$langCharset = "تنظیم کاراکتر";
$langLocal = "محلی";
$langRemote = "از راه دور";
$langAutodetect = "شناسایی خودکار";
$langAccomplishedStepsTotal = "تمامی اشیاء آموزشی به اتمام رسیده";
$langUnknown = "ناشناخته";
$AreYouSureToDeleteSteps = "آیا مطمئن هستید فصد حذف کردن این گام ها را دارید؟";
$Origin = "ابزار نوشتن";
$Local = "محلی";
$Remote = "از راه دور";
$FileToUpload = "فایل SCORM یا AICC جهت آپلود";
$ContentMaker = "ابزار نوشتن";
$ContentProximity = "مکان درس";
$UploadLocalFileFromGarbageDir = "آپلود فایل محلی از پوشه اصلی/آرشیو";
$ThisItemIsNotExportable = "این شیء آموزشی مطابق با SCORM نیست. به همین خاطر قادر به صادر کردن آن نیستیم.";
$MoveCurrentChapter = "جا به جایی فصل فعلی";
$GenericScorm = "Scorm عمومی";
$UnknownPackageFormat = "قادر به شناسایی ساختار این بسته نبودیم. لطفا چک کنید که بسته معتبر باشد.";
$Attempt = "تلاش";
$MoveTheCurrentForum = "جا به جایی انجمن فعلی";
$WarningWhenEditingScorm = "اخطار! زمانیکه محتوای یک شیء آموزشی را ویرایش می کنید، امکان این هست که ایجاد اختلال در گزارش گیری نمایید و یا اینکه شیء آموزشی را تخریب نمایید.";
$AdditionalProfileField = "افزودن یک گزینه در مشخصات کاربر";
$ScormUnknownPackageFormat = "بسته مورد نظر شما جهت آپلود یک ساختار ناشناخته دارد. لطفا چک کنید که یکی از ساختارهای پشتیبانی شده باشد.";
$ScormNotEnoughSpaceInCourseToInstallPackage = "فضای کافی در این درس جهت بازگشایی بسته فعلی وجود ندارد.";
$ScormPackageFormatNotScorm = "بسته ای که آپلود کرده اید مطابق با ساختار SCORM نمی باشد. چک کنید که فایل imsmanifest.xml داخل فایل فشرده ای که آپلود می کنید وجود داشته باشد.";
$HideTocFrame = "پنهان کردن قاب فهرست مطالب";
?>

@ -626,6 +626,7 @@ $CourseName = "نام درس";
$SendAMessage = "ارسال یک پیام";
$Menu = "منو";
$BackTo = "برگشت به";
$HistoryTrainingSessions = "تاریخ جلسات دروس";
$DataType = "نوع اطلاعات";
$Value = "اعتبار";
$System = "سیستم";
@ -709,7 +710,7 @@ $ToolCourseDescription = "توضیحات درس";
$ToolDocument = "اسناد";
$ToolLearnpath = "مسیر آموزشی";
$ToolLink = "پیوند ها";
$ToolQuiz = "تست ها";
$ToolQuiz = "آزمون ها";
$ToolAnnouncement = "اطلاعیه ها";
$ToolGradebook = "ارزیابی ها";
$ToolGlossary = "واژه نامه";

@ -1253,6 +1253,8 @@ $SessionStartDate = "Fecha de inicio de acceso";
$SessionDisplayEndDate = "Fecha de fin a mostrar";
$SessionDisplayStartDate = "Fecha de inicio a mostrar";
$UserHasNoCourse = "El usuario no tiene inscripción a cursos";
$SessionPageEnabledComment = "Cuando esta opción es activada, el título de la sesión es un enlace a una página especial de sesión. Cuando es desactivada, es solo un texto, sin enlace. La página de sesión a la cual apunta puede provocar confusión para ciertos usuarios, por lo que podría querer desactivarla para simplificar.";
$SessionPageEnabledTitle = "Activar el enlace de sesión en la lista de cursos";
$ThisValueIsUsedInTheCourseURL = "Esta valor es usado en la URL del curso";
$ThereAreUsersUsingThisLanguageYouWantToDisableThisLanguageAndSetUsersWithTheDefaultPortalLanguage = "Existen usuarios usando este idioma. ¿Desea deshabilitar este idioma y actualizar estos usuarios con el idioma por defecto de la plataforma?";
$SessionTutorsCanSeeExpiredSessionsResultsComment = "¿Los tutores de sesión pueden ver los informes del curso después de que haya expirado la sesión?";

@ -247,6 +247,9 @@ $ModifyHotPotatoes = "Modificar Hot Potatoes";
$SaveHotpotatoes = "Guardar Hot Potatoes";
$ReturnToLPList = "Volver a la lista de lecciones";
$LpPrerequisiteDescription = "Si selecciona otra lección como prerrequisito, la actual se ocultará hasta que la previa haya sido completada por los estudiantes";
$PrerequisitesOptions = "Opciones de prerequisitos";
$ClearAllPrerequisites = "Eliminar todos los prerequisitos";
$SetPrerequisiteForEachItem = "Configurar, para cada elemento, el elemento anterior como prerequisito";
$ClickOnTheLearnerViewToSeeYourLearningPath = "Dar clic en el botón [Vista alumno] para ver su lección";
$ExerciseCantBeEditedAfterAddingToTheLP = "No es posible editar un ejercicio después de que se agregue a una lección";
$EnableTimeLimits = "Activar límites de disponibilidad";

@ -270,6 +270,12 @@ $LinkInvisible = "Enlace hecho invisible";
$LinkAdded = "Enlace añadido";
$Minutes = "Minutos";
$BackupCreated = "Exporte creado";
$CountCertificates = "Número de certificados";
$AverageHoursPerStudent = "Promedio horas/estudiante";
$CountOfSubscribedUsers = "Número de usuarios inscritos";
$TrainingHoursAccumulated = "Horas de formación acumuladas";
$ManHours = "Horas hombre";
$NotesObtained = "Notas obtenidas";
$DisplayCourseOverview = "Resumen de los cursos";
$DisplaySessionOverview = "Resumen de las sesiones";
$TotalNumberOfMessages = "Número total de mensajes";

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save