@@ -213,7 +213,7 @@ discard block |
||
213 | 213 | /** |
214 | 214 | * Displays the tools of a certain category. |
215 | 215 | * |
216 | - * @return void |
|
216 | + * @return string |
|
217 | 217 | * @param string $course_tool_category contains the category of tools to display: |
218 | 218 | * "Public", "PublicButHide", "courseAdmin", "claroAdmin" |
219 | 219 | */ |
@@ -650,7 +650,7 @@ discard block |
||
650 | 650 | * @param array $all_tools_list List of tools as returned by get_tools_category() |
651 | 651 | * @param bool $rows |
652 | 652 | * |
653 | - * @return void |
|
653 | + * @return string |
|
654 | 654 | */ |
655 | 655 | public static function show_tools_category($all_tools_list, $rows = false) |
656 | 656 | { |
@@ -1194,6 +1194,7 @@ discard block |
||
1194 | 1194 | |
1195 | 1195 | /** |
1196 | 1196 | * Show a toolbar with shortcuts to the course tool |
1197 | + * @param integer $orientation |
|
1197 | 1198 | */ |
1198 | 1199 | public static function show_navigation_tool_shortcuts($orientation = SHORTCUTS_HORIZONTAL) |
1199 | 1200 | { |
@@ -351,6 +351,12 @@ |
||
351 | 351 | |
352 | 352 | /** |
353 | 353 | * Additional functions needed for fast integration |
354 | + * @param integer $status |
|
355 | + * @param string $section |
|
356 | + * @param string $title |
|
357 | + * @param string $url |
|
358 | + * @param string|null $formatter |
|
359 | + * @param string $comment |
|
354 | 360 | */ |
355 | 361 | public function build_setting($status, $section, $title, $url, $current_value, $expected_value, $formatter, $comment, $img_path = null) { |
356 | 362 | switch ($status) { |
@@ -401,19 +401,19 @@ |
||
401 | 401 | |
402 | 402 | public function format_yes_no_optional($value) |
403 | 403 | { |
404 | - $return = ''; |
|
405 | - switch($value) { |
|
406 | - case 0: |
|
407 | - $return = get_lang('No'); |
|
408 | - break; |
|
409 | - case 1: |
|
410 | - $return = get_lang('Yes'); |
|
411 | - break; |
|
412 | - case 2: |
|
413 | - $return = get_lang('Optional'); |
|
414 | - break; |
|
415 | - } |
|
416 | - return $return; |
|
404 | + $return = ''; |
|
405 | + switch($value) { |
|
406 | + case 0: |
|
407 | + $return = get_lang('No'); |
|
408 | + break; |
|
409 | + case 1: |
|
410 | + $return = get_lang('Yes'); |
|
411 | + break; |
|
412 | + case 2: |
|
413 | + $return = get_lang('Optional'); |
|
414 | + break; |
|
415 | + } |
|
416 | + return $return; |
|
417 | 417 | |
418 | 418 | } |
419 | 419 |
@@ -32,7 +32,7 @@ discard block |
||
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
35 | - * @return array |
|
35 | + * @return string[] |
|
36 | 36 | */ |
37 | 37 | public static function toolList() |
38 | 38 | { |
@@ -290,7 +290,6 @@ discard block |
||
290 | 290 | * 'page_nr' = The page to display |
291 | 291 | * 'hide_navigation' = true to hide the navigation |
292 | 292 | * @param array $query_vars Additional variables to add in the query-string |
293 | - * @param array $form actions Additional variables to add in the query-string |
|
294 | 293 | * @param mixed An array with bool values to know which columns show. |
295 | 294 | * i.e: $visibility_options= array(true, false) we will only show the first column |
296 | 295 | * Can be also only a bool value. TRUE: show all columns, FALSE: show nothing |
@@ -331,7 +330,6 @@ discard block |
||
331 | 330 | * 'page_nr' = The page to display |
332 | 331 | * 'hide_navigation' = true to hide the navigation |
333 | 332 | * @param array $query_vars Additional variables to add in the query-string |
334 | - * @param array $form actions Additional variables to add in the query-string |
|
335 | 333 | * @param mixed An array with bool values to know which columns show. i.e: |
336 | 334 | * $visibility_options= array(true, false) we will only show the first column |
337 | 335 | * Can be also only a bool value. TRUE: show all columns, FALSE: show nothing |
@@ -388,10 +386,11 @@ discard block |
||
388 | 386 | * 'per_page' = number of items to show per page |
389 | 387 | * 'page_nr' = The page to display |
390 | 388 | * @param array $query_vars Additional variables to add in the query-string |
391 | - * @param array $column_show Array of binaries 1= show columns 0. hide a column |
|
389 | + * @param integer[] $column_show Array of binaries 1= show columns 0. hide a column |
|
392 | 390 | * @param array $column_order An array of integers that let us decide how the columns are going to be sort. |
393 | 391 | * i.e: $column_order=array('1''4','3','4'); The 2nd column will be order like the 4th column |
394 | 392 | * @param array $form_actions Set optional forms actions |
393 | + * @param string $table_name |
|
395 | 394 | * |
396 | 395 | * @author Julio Montoya |
397 | 396 | */ |
@@ -444,7 +443,7 @@ discard block |
||
444 | 443 | * @param bool $filter (true) or not (false) |
445 | 444 | * @param bool $returnValue |
446 | 445 | * |
447 | - * @return void |
|
446 | + * @return string|null |
|
448 | 447 | */ |
449 | 448 | public static function display_normal_message($message, $filter = true, $returnValue = false) |
450 | 449 | { |
@@ -474,7 +473,7 @@ discard block |
||
474 | 473 | /** |
475 | 474 | * Displays an confirmation message. Use this if something has been done successfully |
476 | 475 | * @param bool Filter (true) or not (false) |
477 | - * @return void |
|
476 | + * @return string|null |
|
478 | 477 | */ |
479 | 478 | public static function display_confirmation_message ($message, $filter = true, $returnValue = false) |
480 | 479 | { |
@@ -491,7 +490,7 @@ discard block |
||
491 | 490 | * @param string $message - include any additional html |
492 | 491 | * tags if you need them |
493 | 492 | * @param bool Filter (true) or not (false) |
494 | - * @return void |
|
493 | + * @return string|null |
|
495 | 494 | */ |
496 | 495 | public static function display_error_message ($message, $filter = true, $returnValue = false) |
497 | 496 | { |
@@ -681,6 +680,7 @@ discard block |
||
681 | 680 | * @param string The alt text (probably a language variable) |
682 | 681 | * @param array additional attributes (for instance height, width, onclick, ...) |
683 | 682 | * @param integer The wanted width of the icon (to be looked for in the corresponding img/icons/ folder) |
683 | + * @param string $image |
|
684 | 684 | * @return void |
685 | 685 | */ |
686 | 686 | public static function display_icon( |
@@ -881,6 +881,7 @@ discard block |
||
881 | 881 | /** |
882 | 882 | * Displays an HTML input tag |
883 | 883 | * |
884 | + * @param string $type |
|
884 | 885 | */ |
885 | 886 | public static function input($type, $name, $value, $attributes = array()) |
886 | 887 | { |
@@ -897,8 +898,8 @@ discard block |
||
897 | 898 | } |
898 | 899 | |
899 | 900 | /** |
900 | - * @param $name |
|
901 | - * @param $value |
|
901 | + * @param string $name |
|
902 | + * @param string $value |
|
902 | 903 | * @param array $attributes |
903 | 904 | * @return string |
904 | 905 | */ |
@@ -913,6 +914,7 @@ discard block |
||
913 | 914 | /** |
914 | 915 | * Displays an HTML select tag |
915 | 916 | * |
917 | + * @param string $blank_item_text |
|
916 | 918 | */ |
917 | 919 | public static function select( |
918 | 920 | $name, |
@@ -983,6 +985,8 @@ discard block |
||
983 | 985 | * @param array content that will be showed |
984 | 986 | * @param string the id of the container of the tab in the example "tabs" |
985 | 987 | * @param array attributes for the ul |
988 | + * @param string[] $header_list |
|
989 | + * @param string[] $content_list |
|
986 | 990 | * |
987 | 991 | */ |
988 | 992 | public static function tabs($header_list, $content_list, $id = 'tabs', $attributes = array(), $ul_attributes = array()) |
@@ -1029,7 +1033,7 @@ discard block |
||
1029 | 1033 | |
1030 | 1034 | /** |
1031 | 1035 | * @param $headers |
1032 | - * @param null $selected |
|
1036 | + * @param integer $selected |
|
1033 | 1037 | * |
1034 | 1038 | * @return string |
1035 | 1039 | */ |
@@ -1067,6 +1071,7 @@ discard block |
||
1067 | 1071 | * As you can see both function use the same "my_grid_name" this is very important otherwise nothing will work |
1068 | 1072 | * |
1069 | 1073 | * @param string the div id, this value must be the same with the first parameter of Display::grid_js() |
1074 | + * @param string $div_id |
|
1070 | 1075 | * @return string html |
1071 | 1076 | * |
1072 | 1077 | */ |
@@ -1622,6 +1627,8 @@ discard block |
||
1622 | 1627 | * @param string url that will be added (for jquery see hot_courses.tpl) |
1623 | 1628 | * @param string point info array see function CourseManager::get_course_ranking() |
1624 | 1629 | * @param bool add a div wrapper |
1630 | + * @param string $id |
|
1631 | + * @param string $url |
|
1625 | 1632 | * @todo use templates |
1626 | 1633 | **/ |
1627 | 1634 | public static function return_rating_system($id, $url, $point_info = array(), $add_div_wrapper = true) |
@@ -1717,6 +1724,9 @@ discard block |
||
1717 | 1724 | return '<'.$size.'>'.Security::remove_XSS($title).'</'.$size.'>'; |
1718 | 1725 | } |
1719 | 1726 | |
1727 | + /** |
|
1728 | + * @param string $title |
|
1729 | + */ |
|
1720 | 1730 | public static function page_subheader2($title, $second_title = null) |
1721 | 1731 | { |
1722 | 1732 | return self::page_header($title, $second_title, 'h4'); |
@@ -1947,6 +1957,7 @@ discard block |
||
1947 | 1957 | |
1948 | 1958 | /** |
1949 | 1959 | * @todo use twig |
1960 | + * @param string $title |
|
1950 | 1961 | */ |
1951 | 1962 | public static function group_button($title, $elements) |
1952 | 1963 | { |
@@ -2164,9 +2175,9 @@ discard block |
||
2164 | 2175 | |
2165 | 2176 | /** |
2166 | 2177 | * @param int $id |
2167 | - * @param array $content |
|
2178 | + * @param string[] $content |
|
2168 | 2179 | * @param int $col |
2169 | - * @param bool|true $right |
|
2180 | + * @param boolean $right |
|
2170 | 2181 | * @return string |
2171 | 2182 | */ |
2172 | 2183 | public static function toolbarAction($id, $content = array(), $col = 2, $right = true) |
@@ -2248,10 +2259,10 @@ discard block |
||
2248 | 2259 | /** |
2249 | 2260 | * @param string $title |
2250 | 2261 | * @param string $content |
2251 | - * @param null $id |
|
2262 | + * @param string $id |
|
2252 | 2263 | * @param array $params |
2253 | - * @param null $idAccordion |
|
2254 | - * @param null $idCollapse |
|
2264 | + * @param string $idAccordion |
|
2265 | + * @param string $idCollapse |
|
2255 | 2266 | * @param bool|true $open |
2256 | 2267 | * @param bool|false $fullClickable |
2257 | 2268 | * @return null|string |
@@ -49,12 +49,12 @@ discard block |
||
49 | 49 | ); |
50 | 50 | } |
51 | 51 | |
52 | - /** |
|
53 | - * Displays the page header |
|
54 | - * @param string The name of the page (will be showed in the page title) |
|
55 | - * @param string Optional help file name |
|
56 | - * @param string $page_header |
|
57 | - */ |
|
52 | + /** |
|
53 | + * Displays the page header |
|
54 | + * @param string The name of the page (will be showed in the page title) |
|
55 | + * @param string Optional help file name |
|
56 | + * @param string $page_header |
|
57 | + */ |
|
58 | 58 | public static function display_header($tool_name ='', $help = null, $page_header = null) |
59 | 59 | { |
60 | 60 | $origin = api_get_origin(); |
@@ -448,7 +448,7 @@ discard block |
||
448 | 448 | */ |
449 | 449 | public static function display_normal_message($message, $filter = true, $returnValue = false) |
450 | 450 | { |
451 | - $message = self::return_message($message, 'normal', $filter); |
|
451 | + $message = self::return_message($message, 'normal', $filter); |
|
452 | 452 | if ($returnValue) { |
453 | 453 | return $message; |
454 | 454 | } else { |
@@ -524,22 +524,22 @@ discard block |
||
524 | 524 | public static function return_message($message, $type = 'normal', $filter = true) |
525 | 525 | { |
526 | 526 | if ($filter) { |
527 | - $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); |
|
527 | + $message = api_htmlentities($message, ENT_QUOTES, api_is_xml_http_request() ? 'UTF-8' : api_get_system_encoding()); |
|
528 | 528 | } |
529 | 529 | |
530 | 530 | $class = ""; |
531 | 531 | switch($type) { |
532 | 532 | case 'warning': |
533 | 533 | $class .= 'alert alert-warning'; |
534 | - break; |
|
534 | + break; |
|
535 | 535 | case 'error': |
536 | 536 | $class .= 'alert alert-danger'; |
537 | - break; |
|
537 | + break; |
|
538 | 538 | case 'confirmation': |
539 | 539 | case 'confirm': |
540 | 540 | case 'success': |
541 | 541 | $class .= 'alert alert-success'; |
542 | - break; |
|
542 | + break; |
|
543 | 543 | case 'normal': |
544 | 544 | default: |
545 | 545 | $class .= 'alert alert-info'; |
@@ -682,7 +682,7 @@ discard block |
||
682 | 682 | * @param array additional attributes (for instance height, width, onclick, ...) |
683 | 683 | * @param integer The wanted width of the icon (to be looked for in the corresponding img/icons/ folder) |
684 | 684 | * @return void |
685 | - */ |
|
685 | + */ |
|
686 | 686 | public static function display_icon( |
687 | 687 | $image, |
688 | 688 | $alt_text = '', |
@@ -705,7 +705,7 @@ discard block |
||
705 | 705 | * @author Julio Montoya 2010 Function improved, adding image constants |
706 | 706 | * @author Yannick Warnier 2011 Added size handler |
707 | 707 | * @version Feb 2011 |
708 | - */ |
|
708 | + */ |
|
709 | 709 | public static function return_icon( |
710 | 710 | $image, |
711 | 711 | $alt_text = '', |
@@ -884,14 +884,14 @@ discard block |
||
884 | 884 | */ |
885 | 885 | public static function input($type, $name, $value, $attributes = array()) |
886 | 886 | { |
887 | - if (isset($type)) { |
|
888 | - $attributes['type']= $type; |
|
889 | - } |
|
890 | - if (isset($name)) { |
|
891 | - $attributes['name']= $name; |
|
892 | - } |
|
893 | - if (isset($value)) { |
|
894 | - $attributes['value']= $value; |
|
887 | + if (isset($type)) { |
|
888 | + $attributes['type']= $type; |
|
889 | + } |
|
890 | + if (isset($name)) { |
|
891 | + $attributes['name']= $name; |
|
892 | + } |
|
893 | + if (isset($value)) { |
|
894 | + $attributes['value']= $value; |
|
895 | 895 | } |
896 | 896 | return self::tag('input', '', $attributes); |
897 | 897 | } |
@@ -904,10 +904,10 @@ discard block |
||
904 | 904 | */ |
905 | 905 | public static function button($name, $value, $attributes = array()) |
906 | 906 | { |
907 | - if (!empty($name)) { |
|
907 | + if (!empty($name)) { |
|
908 | 908 | $attributes['name'] = $name; |
909 | - } |
|
910 | - return self::tag('button', $value, $attributes); |
|
909 | + } |
|
910 | + return self::tag('button', $value, $attributes); |
|
911 | 911 | } |
912 | 912 | |
913 | 913 | /** |
@@ -974,7 +974,7 @@ discard block |
||
974 | 974 | * in the $htmlHeadXtra variable before the display_header |
975 | 975 | * Add this script |
976 | 976 | * @example |
977 | - * <script> |
|
977 | + * <script> |
|
978 | 978 | $(function() { |
979 | 979 | $( "#tabs" ).tabs(); |
980 | 980 | }); |
@@ -1035,20 +1035,20 @@ discard block |
||
1035 | 1035 | */ |
1036 | 1036 | public static function tabsOnlyLink($headers, $selected = null) |
1037 | 1037 | { |
1038 | - $id = uniqid(); |
|
1039 | - $i = 1; |
|
1040 | - $lis = null; |
|
1041 | - foreach ($headers as $item) { |
|
1038 | + $id = uniqid(); |
|
1039 | + $i = 1; |
|
1040 | + $lis = null; |
|
1041 | + foreach ($headers as $item) { |
|
1042 | 1042 | $class = null; |
1043 | 1043 | if ($i == $selected) { |
1044 | 1044 | $class = 'active'; |
1045 | 1045 | } |
1046 | - $item = self::tag( |
|
1047 | - 'a', |
|
1048 | - $item['content'], |
|
1049 | - array('id' => $id.'-'.$i, 'href' => $item['url']) |
|
1050 | - ); |
|
1051 | - $lis .= self::tag('li', $item, array('class' => $class)); |
|
1046 | + $item = self::tag( |
|
1047 | + 'a', |
|
1048 | + $item['content'], |
|
1049 | + array('id' => $id.'-'.$i, 'href' => $item['url']) |
|
1050 | + ); |
|
1051 | + $lis .= self::tag('li', $item, array('class' => $class)); |
|
1052 | 1052 | $i++; |
1053 | 1053 | } |
1054 | 1054 | return self::tag('ul', $lis, array('class' => 'nav nav-tabs tabs-margin')); |
@@ -1260,8 +1260,8 @@ discard block |
||
1260 | 1260 | */ |
1261 | 1261 | public static function table($headers, $rows, $attributes = array()) |
1262 | 1262 | { |
1263 | - if (empty($attributes)) { |
|
1264 | - $attributes['class'] = 'data_table'; |
|
1263 | + if (empty($attributes)) { |
|
1264 | + $attributes['class'] = 'data_table'; |
|
1265 | 1265 | } |
1266 | 1266 | $table = new HTML_Table($attributes); |
1267 | 1267 | $row = 0; |
@@ -1269,17 +1269,17 @@ discard block |
||
1269 | 1269 | |
1270 | 1270 | // Course headers |
1271 | 1271 | if (!empty($headers)) { |
1272 | - foreach ($headers as $item) { |
|
1273 | - $table->setHeaderContents($row, $column, $item); |
|
1274 | - $column++; |
|
1275 | - } |
|
1276 | - $row = 1; |
|
1277 | - $column = 0; |
|
1272 | + foreach ($headers as $item) { |
|
1273 | + $table->setHeaderContents($row, $column, $item); |
|
1274 | + $column++; |
|
1275 | + } |
|
1276 | + $row = 1; |
|
1277 | + $column = 0; |
|
1278 | 1278 | } |
1279 | 1279 | |
1280 | 1280 | if (!empty($rows)) { |
1281 | - foreach($rows as $content) { |
|
1282 | - $table->setCellContents($row, $column, $content); |
|
1281 | + foreach($rows as $content) { |
|
1282 | + $table->setCellContents($row, $column, $content); |
|
1283 | 1283 | $row++; |
1284 | 1284 | } |
1285 | 1285 | } |
@@ -1385,7 +1385,7 @@ discard block |
||
1385 | 1385 | //$item_property['tool'] != TOOL_DROPBOX && |
1386 | 1386 | $item_property['tool'] != TOOL_NOTEBOOK && |
1387 | 1387 | $item_property['tool'] != TOOL_CHAT) |
1388 | - ) |
|
1388 | + ) |
|
1389 | 1389 | ) |
1390 | 1390 | // Take only what's visible or "invisible but where the user is a teacher" or where the visibility is unset. |
1391 | 1391 | && ($item_property['visibility'] == '1' |
@@ -1401,7 +1401,7 @@ discard block |
||
1401 | 1401 | ($item_property['to_user_id'] != $user_id) && |
1402 | 1402 | (!isset($item_property['to_group_id']) || !in_array($item_property['to_group_id'], $group_ids))) |
1403 | 1403 | ) { |
1404 | - continue; |
|
1404 | + continue; |
|
1405 | 1405 | } |
1406 | 1406 | |
1407 | 1407 | // If it's a survey, make sure the user's invited. Otherwise drop it. |
@@ -1620,21 +1620,21 @@ discard block |
||
1620 | 1620 | * |
1621 | 1621 | * @param string id of the rating ul element |
1622 | 1622 | * @param string url that will be added (for jquery see hot_courses.tpl) |
1623 | - * @param string point info array see function CourseManager::get_course_ranking() |
|
1624 | - * @param bool add a div wrapper |
|
1625 | - * @todo use templates |
|
1623 | + * @param string point info array see function CourseManager::get_course_ranking() |
|
1624 | + * @param bool add a div wrapper |
|
1625 | + * @todo use templates |
|
1626 | 1626 | **/ |
1627 | 1627 | public static function return_rating_system($id, $url, $point_info = array(), $add_div_wrapper = true) |
1628 | 1628 | { |
1629 | - $number_of_users_who_voted = isset($point_info['users_who_voted']) ? $point_info['users_who_voted'] : null; |
|
1630 | - $percentage = isset($point_info['point_average']) ? $point_info['point_average'] : 0; |
|
1629 | + $number_of_users_who_voted = isset($point_info['users_who_voted']) ? $point_info['users_who_voted'] : null; |
|
1630 | + $percentage = isset($point_info['point_average']) ? $point_info['point_average'] : 0; |
|
1631 | 1631 | |
1632 | - if (!empty($percentage)) { |
|
1632 | + if (!empty($percentage)) { |
|
1633 | 1633 | $percentage = $percentage*125/100; |
1634 | 1634 | } |
1635 | - $accesses = isset($point_info['accesses']) ? $point_info['accesses'] : 0; |
|
1635 | + $accesses = isset($point_info['accesses']) ? $point_info['accesses'] : 0; |
|
1636 | 1636 | |
1637 | - $star_label = sprintf(get_lang('XStarsOutOf5'), $point_info['point_average_star']); |
|
1637 | + $star_label = sprintf(get_lang('XStarsOutOf5'), $point_info['point_average_star']); |
|
1638 | 1638 | |
1639 | 1639 | $html = '<ul id="'.$id.'" class="star-rating"> |
1640 | 1640 | <li class="current-rating" style="width:'.$percentage.'px;"></li> |
@@ -1645,26 +1645,26 @@ discard block |
||
1645 | 1645 | <li><a href="javascript:void(0);" data-link="'.$url.'&star=5" title="'.$star_label.'" class="five-stars">5</a></li> |
1646 | 1646 | </ul>'; |
1647 | 1647 | |
1648 | - $labels = array(); |
|
1648 | + $labels = array(); |
|
1649 | 1649 | |
1650 | - $labels[]= $number_of_users_who_voted == 1 ? $number_of_users_who_voted.' '.get_lang('Vote') : $number_of_users_who_voted.' '.get_lang('Votes'); |
|
1651 | - $labels[]= $accesses == 1 ? $accesses.' '.get_lang('Visit') : $accesses.' '.get_lang('Visits'); |
|
1652 | - if (!empty($number_of_users_who_voted)) { |
|
1653 | - $labels[]= get_lang('Average').' '.$point_info['point_average_star'].'/5'; |
|
1654 | - } |
|
1650 | + $labels[]= $number_of_users_who_voted == 1 ? $number_of_users_who_voted.' '.get_lang('Vote') : $number_of_users_who_voted.' '.get_lang('Votes'); |
|
1651 | + $labels[]= $accesses == 1 ? $accesses.' '.get_lang('Visit') : $accesses.' '.get_lang('Visits'); |
|
1652 | + if (!empty($number_of_users_who_voted)) { |
|
1653 | + $labels[]= get_lang('Average').' '.$point_info['point_average_star'].'/5'; |
|
1654 | + } |
|
1655 | 1655 | |
1656 | - $labels[]= $point_info['user_vote'] ? get_lang('YourVote').' ['.$point_info['user_vote'].']' : get_lang('YourVote'). ' [?] '; |
|
1656 | + $labels[]= $point_info['user_vote'] ? get_lang('YourVote').' ['.$point_info['user_vote'].']' : get_lang('YourVote'). ' [?] '; |
|
1657 | 1657 | |
1658 | - if (!$add_div_wrapper && api_is_anonymous()) { |
|
1659 | - $labels[]= Display::tag('span', get_lang('LoginToVote'), array('class' => 'error')); |
|
1660 | - } |
|
1658 | + if (!$add_div_wrapper && api_is_anonymous()) { |
|
1659 | + $labels[]= Display::tag('span', get_lang('LoginToVote'), array('class' => 'error')); |
|
1660 | + } |
|
1661 | 1661 | |
1662 | 1662 | $html .= Display::div(implode(' | ', $labels) , array('id' => 'vote_label_'.$id, 'class' => 'vote_label_info')); |
1663 | 1663 | $html .= ' '.Display::span(' ', array('id' => 'vote_label2_'.$id)); |
1664 | 1664 | |
1665 | 1665 | if ($add_div_wrapper) { |
1666 | - $html = Display::div($html, array('id' => 'rating_wrapper_'.$id)); |
|
1667 | - } |
|
1666 | + $html = Display::div($html, array('id' => 'rating_wrapper_'.$id)); |
|
1667 | + } |
|
1668 | 1668 | |
1669 | 1669 | return $html; |
1670 | 1670 | } |
@@ -1702,8 +1702,8 @@ discard block |
||
1702 | 1702 | return self::page_header($title, $second_title); |
1703 | 1703 | } |
1704 | 1704 | |
1705 | - public static function page_subheader_and_translate($title, $second_title = null) |
|
1706 | - { |
|
1705 | + public static function page_subheader_and_translate($title, $second_title = null) |
|
1706 | + { |
|
1707 | 1707 | $title = get_lang($title); |
1708 | 1708 | return self::page_subheader($title, $second_title); |
1709 | 1709 | } |
@@ -1255,6 +1255,7 @@ discard block |
||
1255 | 1255 | |
1256 | 1256 | /** |
1257 | 1257 | * Validates the time control key |
1258 | + * @param integer $exercise_id |
|
1258 | 1259 | */ |
1259 | 1260 | public static function exercise_time_control_is_valid( |
1260 | 1261 | $exercise_id, |
@@ -1388,7 +1389,7 @@ discard block |
||
1388 | 1389 | * @param int $in_direction |
1389 | 1390 | * @param string $in_hotpot_path |
1390 | 1391 | * @param bool $in_get_count |
1391 | - * @param null $where_condition |
|
1392 | + * @param string $where_condition |
|
1392 | 1393 | * @return array|int |
1393 | 1394 | */ |
1394 | 1395 | public static function get_exam_results_hotpotatoes_data( |
@@ -2179,7 +2180,7 @@ discard block |
||
2179 | 2180 | /** |
2180 | 2181 | * Return true if pass_pourcentage activated (we use the pass pourcentage feature |
2181 | 2182 | * return false if pass_percentage = 0 (we don't use the pass pourcentage feature |
2182 | - * @param $in_pass_pourcentage |
|
2183 | + * @param string $in_pass_pourcentage |
|
2183 | 2184 | * @return boolean |
2184 | 2185 | * In this version, pass_percentage and show_success_message are disabled if |
2185 | 2186 | * pass_percentage is set to 0 |
@@ -2192,7 +2193,7 @@ discard block |
||
2192 | 2193 | /** |
2193 | 2194 | * Converts a numeric value in a percentage example 0.66666 to 66.67 % |
2194 | 2195 | * @param $value |
2195 | - * @return float Converted number |
|
2196 | + * @return string Converted number |
|
2196 | 2197 | */ |
2197 | 2198 | public static function convert_to_percentage($value) |
2198 | 2199 | { |
@@ -2208,7 +2209,7 @@ discard block |
||
2208 | 2209 | * @param float $score |
2209 | 2210 | * @param float $weight |
2210 | 2211 | * @deprecated seem not to be used |
2211 | - * @return float the score rounded converted to the new range |
|
2212 | + * @return string|null the score rounded converted to the new range |
|
2212 | 2213 | */ |
2213 | 2214 | public static function convert_score($score, $weight) |
2214 | 2215 | { |
@@ -2759,6 +2760,7 @@ discard block |
||
2759 | 2760 | * @param int exercise id |
2760 | 2761 | * @param int $courseId |
2761 | 2762 | * @param int session id |
2763 | + * @param integer $user_count |
|
2762 | 2764 | * @return float Best average score |
2763 | 2765 | */ |
2764 | 2766 | public static function get_best_average_score_by_exercise( |
@@ -3198,8 +3200,9 @@ discard block |
||
3198 | 3200 | } |
3199 | 3201 | |
3200 | 3202 | /** |
3201 | - * @param array $answer |
|
3203 | + * @param string|null $answer |
|
3202 | 3204 | * @param string $user_answer |
3205 | + * @param string|null $current_answer |
|
3203 | 3206 | * @return array |
3204 | 3207 | */ |
3205 | 3208 | public static function check_fill_in_blanks($answer, $user_answer, $current_answer) |
@@ -3805,7 +3808,7 @@ discard block |
||
3805 | 3808 | |
3806 | 3809 | /** |
3807 | 3810 | * @param int $countLetter |
3808 | - * @return mixed |
|
3811 | + * @return string |
|
3809 | 3812 | */ |
3810 | 3813 | public static function detectInputAppropriateClass($countLetter) |
3811 | 3814 | { |
@@ -157,7 +157,7 @@ discard block |
||
157 | 157 | * @param string Name of common tag to place each line in |
158 | 158 | * @param string Name of the root element. A root element should always be given. |
159 | 159 | * @param string Encoding in which the data is provided |
160 | - * @return void Prompts the user for a file download |
|
160 | + * @return boolean Prompts the user for a file download |
|
161 | 161 | */ |
162 | 162 | public static function export_complex_table_xml( |
163 | 163 | $data, |
@@ -283,7 +283,7 @@ discard block |
||
283 | 283 | * @param string $name |
284 | 284 | * @param string $format |
285 | 285 | * |
286 | - * @return bool |
|
286 | + * @return false|null |
|
287 | 287 | */ |
288 | 288 | public static function htmlToOdt($html, $name, $format = 'odt') |
289 | 289 | { |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | |
57 | 57 | DocumentManager::file_send_for_download($filePath, true, $filename.'.csv'); |
58 | 58 | exit; |
59 | - } |
|
59 | + } |
|
60 | 60 | |
61 | 61 | /** |
62 | 62 | * Export tabular data to XLS-file |
@@ -79,7 +79,7 @@ discard block |
||
79 | 79 | |
80 | 80 | DocumentManager::file_send_for_download($filePath, true, $filename.'.xlsx'); |
81 | 81 | exit; |
82 | - } |
|
82 | + } |
|
83 | 83 | |
84 | 84 | /** |
85 | 85 | * Export tabular data to XLS-file (as html table) |
@@ -112,13 +112,13 @@ discard block |
||
112 | 112 | } |
113 | 113 | |
114 | 114 | /** |
115 | - * Export tabular data to XML-file |
|
116 | - * @param array Simple array of data to put in XML |
|
117 | - * @param string Name of file to be given to the user |
|
118 | - * @param string Name of common tag to place each line in |
|
119 | - * @param string Name of the root element. A root element should always be given. |
|
120 | - * @param string Encoding in which the data is provided |
|
121 | - */ |
|
115 | + * Export tabular data to XML-file |
|
116 | + * @param array Simple array of data to put in XML |
|
117 | + * @param string Name of file to be given to the user |
|
118 | + * @param string Name of common tag to place each line in |
|
119 | + * @param string Name of the root element. A root element should always be given. |
|
120 | + * @param string Encoding in which the data is provided |
|
121 | + */ |
|
122 | 122 | public static function arrayToXml( |
123 | 123 | $data, |
124 | 124 | $filename = 'export', |
@@ -148,7 +148,7 @@ discard block |
||
148 | 148 | fclose($handle); |
149 | 149 | DocumentManager :: file_send_for_download($file, true, $filename.'.xml'); |
150 | 150 | exit; |
151 | - } |
|
151 | + } |
|
152 | 152 | |
153 | 153 | /** |
154 | 154 | * Export hierarchical tabular data to XML-file |
@@ -197,7 +197,7 @@ discard block |
||
197 | 197 | foreach ($data as $row) { |
198 | 198 | $string .= "\n".str_repeat("\t",$level).'<'.$row['name'].'>'; |
199 | 199 | if (is_array($row['value'])) { |
200 | - $string .= self::_export_complex_table_xml_helper($row['value'],$level+1)."\n"; |
|
200 | + $string .= self::_export_complex_table_xml_helper($row['value'],$level+1)."\n"; |
|
201 | 201 | $string .= str_repeat("\t",$level).'</'.$row['name'].'>'; |
202 | 202 | } else { |
203 | 203 | $string .= $row['value']; |
@@ -123,7 +123,7 @@ discard block |
||
123 | 123 | } |
124 | 124 | |
125 | 125 | /** |
126 | - * @return array |
|
126 | + * @return string[] |
|
127 | 127 | */ |
128 | 128 | public static function getValidExtraFieldTypes() |
129 | 129 | { |
@@ -199,7 +199,7 @@ discard block |
||
199 | 199 | |
200 | 200 | /** |
201 | 201 | * @param array $conditions |
202 | - * @param null $order_field_options_by |
|
202 | + * @param string $order_field_options_by |
|
203 | 203 | * |
204 | 204 | * @return array |
205 | 205 | */ |
@@ -237,7 +237,7 @@ discard block |
||
237 | 237 | /** |
238 | 238 | * @param string $variable |
239 | 239 | * |
240 | - * @return array|bool |
|
240 | + * @return integer |
|
241 | 241 | */ |
242 | 242 | public function get_handler_field_info_by_field_variable($variable) |
243 | 243 | { |
@@ -319,7 +319,7 @@ discard block |
||
319 | 319 | /** |
320 | 320 | * @param string $handler |
321 | 321 | * |
322 | - * @return array |
|
322 | + * @return string[] |
|
323 | 323 | */ |
324 | 324 | public static function get_extra_fields_by_handler($handler) |
325 | 325 | { |
@@ -496,7 +496,7 @@ discard block |
||
496 | 496 | } |
497 | 497 | |
498 | 498 | /** |
499 | - * @return array |
|
499 | + * @return string[] |
|
500 | 500 | */ |
501 | 501 | public function get_field_types() |
502 | 502 | { |
@@ -506,7 +506,7 @@ discard block |
||
506 | 506 | /** |
507 | 507 | * @param int $id |
508 | 508 | * |
509 | - * @return null |
|
509 | + * @return string|null |
|
510 | 510 | */ |
511 | 511 | public function get_field_type_by_id($id) |
512 | 512 | { |
@@ -691,7 +691,6 @@ discard block |
||
691 | 691 | * @param FormValidator $form |
692 | 692 | * @param array $extraData |
693 | 693 | * @param bool $admin_permissions |
694 | - * @param int $user_id |
|
695 | 694 | * @param array $extra |
696 | 695 | * @param int $itemId |
697 | 696 | * @param array $exclude variables of extra field to exclude |
@@ -1592,7 +1591,7 @@ discard block |
||
1592 | 1591 | } |
1593 | 1592 | |
1594 | 1593 | /** |
1595 | - * @return array |
|
1594 | + * @return string[] |
|
1596 | 1595 | */ |
1597 | 1596 | public function getJqgridColumnNames() |
1598 | 1597 | { |
@@ -1832,7 +1831,7 @@ discard block |
||
1832 | 1831 | } |
1833 | 1832 | |
1834 | 1833 | /** |
1835 | - * @param array $columns |
|
1834 | + * @param string[] $columns |
|
1836 | 1835 | * @param array $column_model |
1837 | 1836 | * @param array $extraFields |
1838 | 1837 | * @return array |
@@ -19,7 +19,7 @@ discard block |
||
19 | 19 | 'changeable', |
20 | 20 | 'filter', |
21 | 21 | 'extra_field_type', |
22 | - /* Enable this when field_loggeable is introduced as a table field (2.0) |
|
22 | + /* Enable this when field_loggeable is introduced as a table field (2.0) |
|
23 | 23 | 'field_loggeable', |
24 | 24 | */ |
25 | 25 | 'created_at' |
@@ -523,7 +523,7 @@ discard block |
||
523 | 523 | * France:Paris;Bretagne;Marseilles;Lyon|Belgique:Bruxelles;Namur;Liège;Bruges|Peru:Lima;Piura; |
524 | 524 | * into |
525 | 525 | * array( |
526 | - * 'France' => |
|
526 | + * 'France' => |
|
527 | 527 | * array('Paris', 'Bregtane', 'Marseilles'), |
528 | 528 | * 'Belgique' => |
529 | 529 | * array('Namur', 'Liège') |
@@ -1184,7 +1184,7 @@ discard block |
||
1184 | 1184 | |
1185 | 1185 | if ($this->type == 'user') { |
1186 | 1186 | |
1187 | - /* //the magic should be here |
|
1187 | + /* //the magic should be here |
|
1188 | 1188 | $user_tags = UserManager::get_user_tags($user_id, $field_details[0]); |
1189 | 1189 | |
1190 | 1190 | $tag_list = ''; |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | } |
44 | 44 | |
45 | 45 | /** |
46 | - * @return ExtraField |
|
46 | + * @return string |
|
47 | 47 | */ |
48 | 48 | public function getExtraField() |
49 | 49 | { |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | * This function is used with $extraField->addElements() |
73 | 73 | * @param array $params array for the insertion into the *_field_values table |
74 | 74 | * |
75 | - * @return mixed false on empty params, void otherwise |
|
75 | + * @return false|null false on empty params, void otherwise |
|
76 | 76 | * @assert (array()) === false |
77 | 77 | */ |
78 | 78 | public function saveFieldValues($params) |
@@ -500,7 +500,7 @@ discard block |
||
500 | 500 | * @param int $item_id Item ID (It could be a session_id, course_id or user_id) |
501 | 501 | * @param int $field_id Field ID (the ID from the *_field table) |
502 | 502 | * @param bool $transform Whether to transform the result to a human readable strings |
503 | - * @return mixed A structured array with the field_id and field_value, or false on error |
|
503 | + * @return string A structured array with the field_id and field_value, or false on error |
|
504 | 504 | * @assert (-1,-1) === false |
505 | 505 | */ |
506 | 506 | public function get_values_by_handler_and_field_id($item_id, $field_id, $transform = false) |
@@ -593,7 +593,7 @@ discard block |
||
593 | 593 | * @param int $item_id Item ID from the original table |
594 | 594 | * @param string $field_variable The name of the field we are looking for |
595 | 595 | * @param bool $transform |
596 | - * @param bool $allVisibility |
|
596 | + * @param bool $visibility |
|
597 | 597 | * |
598 | 598 | * @return mixed Array of results, or false on error or not found |
599 | 599 | * @assert (-1,'') === false |
@@ -720,11 +720,11 @@ discard block |
||
720 | 720 | return false; |
721 | 721 | } |
722 | 722 | |
723 | - /** |
|
724 | - * @param int $itemId |
|
725 | - * @param int $fieldId |
|
726 | - * @return array |
|
727 | - */ |
|
723 | + /** |
|
724 | + * @param int $itemId |
|
725 | + * @param int $fieldId |
|
726 | + * @return array |
|
727 | + */ |
|
728 | 728 | public function getAllValuesByItemAndField($itemId, $fieldId) |
729 | 729 | { |
730 | 730 | $fieldId = intval($fieldId); |
@@ -847,7 +847,6 @@ discard block |
||
847 | 847 | /** |
848 | 848 | * Deletes all values from an item |
849 | 849 | * @param int $itemId (session id, course id, etc) |
850 | - |
|
851 | 850 | * @assert (-1,-1) == null |
852 | 851 | */ |
853 | 852 | public function deleteValuesByItem($itemId) |
@@ -13,6 +13,8 @@ discard block |
||
13 | 13 | * @param - action (string) - action type require : 'delete' or 'update' |
14 | 14 | * @param - old_path (string) - old path info stored to change |
15 | 15 | * @param - new_path (string) - new path info to substitute |
16 | + * @param string $action |
|
17 | + * @param string $old_path |
|
16 | 18 | * @desc Update the file or directory path in the document db document table |
17 | 19 | * |
18 | 20 | */ |
@@ -76,8 +78,8 @@ discard block |
||
76 | 78 | * Deletes a file or a directory |
77 | 79 | * |
78 | 80 | * @author - Hugues Peeters |
79 | - * @param $file (String) - the path of file or directory to delete |
|
80 | - * @return boolean - true if the delete succeed, false otherwise. |
|
81 | + * @param string $file (String) - the path of file or directory to delete |
|
82 | + * @return boolean|null - true if the delete succeed, false otherwise. |
|
81 | 83 | * @see - delete() uses check_name_exist() and removeDir() functions |
82 | 84 | */ |
83 | 85 | function my_delete($file) |
@@ -162,9 +164,9 @@ discard block |
||
162 | 164 | * Renames a file or a directory |
163 | 165 | * |
164 | 166 | * @author - Hugues Peeters <[email protected]> |
165 | - * @param - $file_path (string) - complete path of the file or the directory |
|
166 | - * @param - $new_file_name (string) - new name for the file or the directory |
|
167 | - * @return - boolean - true if succeed |
|
167 | + * @param string $file_path (string) - complete path of the file or the directory |
|
168 | + * @param string $new_file_name (string) - new name for the file or the directory |
|
169 | + * @return string boolean - true if succeed |
|
168 | 170 | * - boolean - false otherwise |
169 | 171 | * @see - rename() uses the check_name_exist() and php2phps() functions |
170 | 172 | */ |
@@ -327,7 +329,6 @@ discard block |
||
327 | 329 | * Calculation size of a directory |
328 | 330 | * |
329 | 331 | * @returns integer size |
330 | - * @param string $path path to size |
|
331 | 332 | * @param boolean $recursive if true , include subdir in total |
332 | 333 | */ |
333 | 334 | function dirsize($root, $recursive = true) { |
@@ -170,37 +170,37 @@ discard block |
||
170 | 170 | */ |
171 | 171 | function my_rename($file_path, $new_file_name) { |
172 | 172 | |
173 | - $save_dir = getcwd(); |
|
174 | - $path = dirname($file_path); |
|
175 | - $old_file_name = basename($file_path); |
|
176 | - $new_file_name = api_replace_dangerous_char($new_file_name); |
|
177 | - |
|
178 | - // If no extension, take the old one |
|
179 | - if ((strpos($new_file_name, '.') === false) && ($dotpos = strrpos($old_file_name, '.'))) { |
|
180 | - $new_file_name .= substr($old_file_name, $dotpos); |
|
181 | - } |
|
182 | - |
|
183 | - // Note: still possible: 'xx.yy' -rename-> '.yy' -rename-> 'zz' |
|
184 | - // This is useful for folder names, where otherwise '.' would be sticky |
|
185 | - |
|
186 | - // Extension PHP is not allowed, change to PHPS |
|
187 | - $new_file_name = php2phps($new_file_name); |
|
188 | - |
|
189 | - if ($new_file_name == $old_file_name) { |
|
190 | - return $old_file_name; |
|
191 | - } |
|
192 | - |
|
193 | - if (strtolower($new_file_name) != strtolower($old_file_name) && check_name_exist($path.'/'.$new_file_name)) { |
|
194 | - return false; |
|
195 | - } |
|
196 | - // On a Windows server, it would be better not to do the above check |
|
197 | - // because it succeeds for some new names resembling the old name. |
|
198 | - // But on Unix/Linux the check must be done because rename overwrites. |
|
199 | - |
|
200 | - chdir($path); |
|
201 | - $res = rename($old_file_name, $new_file_name) ? $new_file_name : false; |
|
202 | - chdir($save_dir); |
|
203 | - return $res; |
|
173 | + $save_dir = getcwd(); |
|
174 | + $path = dirname($file_path); |
|
175 | + $old_file_name = basename($file_path); |
|
176 | + $new_file_name = api_replace_dangerous_char($new_file_name); |
|
177 | + |
|
178 | + // If no extension, take the old one |
|
179 | + if ((strpos($new_file_name, '.') === false) && ($dotpos = strrpos($old_file_name, '.'))) { |
|
180 | + $new_file_name .= substr($old_file_name, $dotpos); |
|
181 | + } |
|
182 | + |
|
183 | + // Note: still possible: 'xx.yy' -rename-> '.yy' -rename-> 'zz' |
|
184 | + // This is useful for folder names, where otherwise '.' would be sticky |
|
185 | + |
|
186 | + // Extension PHP is not allowed, change to PHPS |
|
187 | + $new_file_name = php2phps($new_file_name); |
|
188 | + |
|
189 | + if ($new_file_name == $old_file_name) { |
|
190 | + return $old_file_name; |
|
191 | + } |
|
192 | + |
|
193 | + if (strtolower($new_file_name) != strtolower($old_file_name) && check_name_exist($path.'/'.$new_file_name)) { |
|
194 | + return false; |
|
195 | + } |
|
196 | + // On a Windows server, it would be better not to do the above check |
|
197 | + // because it succeeds for some new names resembling the old name. |
|
198 | + // But on Unix/Linux the check must be done because rename overwrites. |
|
199 | + |
|
200 | + chdir($path); |
|
201 | + $res = rename($old_file_name, $new_file_name) ? $new_file_name : false; |
|
202 | + chdir($save_dir); |
|
203 | + return $res; |
|
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
@@ -217,38 +217,38 @@ discard block |
||
217 | 217 | */ |
218 | 218 | function move($source, $target, $forceMove = false, $moveContent = false) |
219 | 219 | { |
220 | - if (check_name_exist($source)) { |
|
221 | - $file_name = basename($source); |
|
220 | + if (check_name_exist($source)) { |
|
221 | + $file_name = basename($source); |
|
222 | 222 | $isWindowsOS = api_is_windows_os(); |
223 | 223 | $canExec = function_exists('exec'); |
224 | 224 | |
225 | - /* File case */ |
|
226 | - if (is_file($source)) { |
|
227 | - if ($forceMove && !$isWindowsOS && $canExec) { |
|
228 | - exec('mv ' . $source . ' ' . $target . '/' . $file_name); |
|
229 | - } else { |
|
230 | - copy($source, $target . '/' . $file_name); |
|
231 | - unlink($source); |
|
232 | - } |
|
233 | - return true; |
|
234 | - } elseif (is_dir($source)) { |
|
235 | - /* Directory */ |
|
236 | - if ($forceMove && !$isWindowsOS && $canExec) { |
|
237 | - if ($moveContent) { |
|
238 | - $base = basename($source); |
|
239 | - exec('mv '.$source.'/* '.$target.$base.'/'); |
|
240 | - exec('rm -rf '.$source); |
|
241 | - } else { |
|
242 | - exec('mv $source $target'); |
|
243 | - } |
|
244 | - } else { |
|
245 | - copyDirTo($source, $target); |
|
246 | - } |
|
247 | - return true; |
|
248 | - } |
|
249 | - } else { |
|
250 | - return false; |
|
251 | - } |
|
225 | + /* File case */ |
|
226 | + if (is_file($source)) { |
|
227 | + if ($forceMove && !$isWindowsOS && $canExec) { |
|
228 | + exec('mv ' . $source . ' ' . $target . '/' . $file_name); |
|
229 | + } else { |
|
230 | + copy($source, $target . '/' . $file_name); |
|
231 | + unlink($source); |
|
232 | + } |
|
233 | + return true; |
|
234 | + } elseif (is_dir($source)) { |
|
235 | + /* Directory */ |
|
236 | + if ($forceMove && !$isWindowsOS && $canExec) { |
|
237 | + if ($moveContent) { |
|
238 | + $base = basename($source); |
|
239 | + exec('mv '.$source.'/* '.$target.$base.'/'); |
|
240 | + exec('rm -rf '.$source); |
|
241 | + } else { |
|
242 | + exec('mv $source $target'); |
|
243 | + } |
|
244 | + } else { |
|
245 | + copyDirTo($source, $target); |
|
246 | + } |
|
247 | + return true; |
|
248 | + } |
|
249 | + } else { |
|
250 | + return false; |
|
251 | + } |
|
252 | 252 | } |
253 | 253 | |
254 | 254 | /** |
@@ -261,54 +261,54 @@ discard block |
||
261 | 261 | */ |
262 | 262 | function copyDirTo($orig_dir_path, $destination, $move = true) |
263 | 263 | { |
264 | - if ($orig_dir_path == $destination) { |
|
265 | - return false; |
|
266 | - } |
|
264 | + if ($orig_dir_path == $destination) { |
|
265 | + return false; |
|
266 | + } |
|
267 | 267 | |
268 | - $save_dir = getcwd(); |
|
269 | - // Extract directory name - create it at destination - update destination trail |
|
270 | - $dir_name = basename($orig_dir_path); |
|
268 | + $save_dir = getcwd(); |
|
269 | + // Extract directory name - create it at destination - update destination trail |
|
270 | + $dir_name = basename($orig_dir_path); |
|
271 | 271 | $dir_to_copy = array(); |
272 | - if (is_dir($orig_dir_path)) { |
|
273 | - if (!is_dir($destination.'/'.$dir_name)) { |
|
274 | - mkdir( |
|
275 | - $destination.'/'.$dir_name, |
|
276 | - api_get_permissions_for_new_directories() |
|
277 | - ); |
|
278 | - } |
|
279 | - $destination_trail = $destination.'/'.$dir_name; |
|
280 | - if (is_dir($destination)) { |
|
281 | - chdir($orig_dir_path) ; |
|
282 | - $handle = opendir($orig_dir_path); |
|
283 | - |
|
284 | - while ($element = readdir($handle)) { |
|
285 | - if ($element == '.' || $element == '..') { |
|
286 | - continue; // Skip the current and parent directories |
|
287 | - } elseif (is_file($element)) { |
|
288 | - copy($element, $destination_trail.'/'.$element); |
|
289 | - |
|
290 | - if ($move) { |
|
291 | - unlink($element) ; |
|
292 | - } |
|
293 | - } elseif (is_dir($element)) { |
|
294 | - $dir_to_copy[] = $orig_dir_path.'/'.$element; |
|
295 | - } |
|
296 | - } |
|
297 | - |
|
298 | - closedir($handle) ; |
|
299 | - |
|
300 | - if (sizeof($dir_to_copy) > 0) { |
|
301 | - foreach ($dir_to_copy as $this_dir) { |
|
302 | - copyDirTo($this_dir, $destination_trail, $move); // Recursivity |
|
303 | - } |
|
304 | - } |
|
305 | - |
|
306 | - if ($move) { |
|
307 | - rmdir($orig_dir_path) ; |
|
308 | - } |
|
309 | - chdir($save_dir); |
|
310 | - } |
|
311 | - } |
|
272 | + if (is_dir($orig_dir_path)) { |
|
273 | + if (!is_dir($destination.'/'.$dir_name)) { |
|
274 | + mkdir( |
|
275 | + $destination.'/'.$dir_name, |
|
276 | + api_get_permissions_for_new_directories() |
|
277 | + ); |
|
278 | + } |
|
279 | + $destination_trail = $destination.'/'.$dir_name; |
|
280 | + if (is_dir($destination)) { |
|
281 | + chdir($orig_dir_path) ; |
|
282 | + $handle = opendir($orig_dir_path); |
|
283 | + |
|
284 | + while ($element = readdir($handle)) { |
|
285 | + if ($element == '.' || $element == '..') { |
|
286 | + continue; // Skip the current and parent directories |
|
287 | + } elseif (is_file($element)) { |
|
288 | + copy($element, $destination_trail.'/'.$element); |
|
289 | + |
|
290 | + if ($move) { |
|
291 | + unlink($element) ; |
|
292 | + } |
|
293 | + } elseif (is_dir($element)) { |
|
294 | + $dir_to_copy[] = $orig_dir_path.'/'.$element; |
|
295 | + } |
|
296 | + } |
|
297 | + |
|
298 | + closedir($handle) ; |
|
299 | + |
|
300 | + if (sizeof($dir_to_copy) > 0) { |
|
301 | + foreach ($dir_to_copy as $this_dir) { |
|
302 | + copyDirTo($this_dir, $destination_trail, $move); // Recursivity |
|
303 | + } |
|
304 | + } |
|
305 | + |
|
306 | + if ($move) { |
|
307 | + rmdir($orig_dir_path) ; |
|
308 | + } |
|
309 | + chdir($save_dir); |
|
310 | + } |
|
311 | + } |
|
312 | 312 | } |
313 | 313 | |
314 | 314 | |
@@ -319,8 +319,8 @@ discard block |
||
319 | 319 | * @param string $filename filename |
320 | 320 | */ |
321 | 321 | function getextension($filename) { |
322 | - $bouts = explode('.', $filename); |
|
323 | - return array(array_pop($bouts), implode('.', $bouts)); |
|
322 | + $bouts = explode('.', $filename); |
|
323 | + return array(array_pop($bouts), implode('.', $bouts)); |
|
324 | 324 | } |
325 | 325 | |
326 | 326 | /** |
@@ -331,19 +331,19 @@ discard block |
||
331 | 331 | * @param boolean $recursive if true , include subdir in total |
332 | 332 | */ |
333 | 333 | function dirsize($root, $recursive = true) { |
334 | - $dir = @opendir($root); |
|
335 | - $size = 0; |
|
336 | - while ($file = @readdir($dir)) { |
|
337 | - if (!in_array($file, array('.', '..'))) { |
|
338 | - if (is_dir($root.'/'.$file)) { |
|
339 | - $size += $recursive ? dirsize($root.'/'.$file) : 0; |
|
340 | - } else { |
|
341 | - $size += @filesize($root.'/'.$file); |
|
342 | - } |
|
343 | - } |
|
344 | - } |
|
345 | - @closedir($dir); |
|
346 | - return $size; |
|
334 | + $dir = @opendir($root); |
|
335 | + $size = 0; |
|
336 | + while ($file = @readdir($dir)) { |
|
337 | + if (!in_array($file, array('.', '..'))) { |
|
338 | + if (is_dir($root.'/'.$file)) { |
|
339 | + $size += $recursive ? dirsize($root.'/'.$file) : 0; |
|
340 | + } else { |
|
341 | + $size += @filesize($root.'/'.$file); |
|
342 | + } |
|
343 | + } |
|
344 | + } |
|
345 | + @closedir($dir); |
|
346 | + return $size; |
|
347 | 347 | } |
348 | 348 | |
349 | 349 | /* CLASS FileManager */ |
@@ -362,7 +362,7 @@ discard block |
||
362 | 362 | */ |
363 | 363 | class FileManager |
364 | 364 | { |
365 | - /** |
|
365 | + /** |
|
366 | 366 | Returns a list of all directories, except the base dir, |
367 | 367 | of the current course. This function uses recursion. |
368 | 368 | |
@@ -370,131 +370,130 @@ discard block |
||
370 | 370 | |
371 | 371 | @author Roan Embrechts |
372 | 372 | @version 1.0.1 |
373 | - */ |
|
374 | - function list_all_directories($path) |
|
373 | + */ |
|
374 | + function list_all_directories($path) |
|
375 | 375 | { |
376 | - $result_array = array(); |
|
377 | - if (is_dir($path)) { |
|
378 | - $save_dir = getcwd(); |
|
379 | - chdir($path); |
|
380 | - $handle = opendir($path); |
|
381 | - while ($element = readdir($handle)) { |
|
382 | - if ($element == '.' || $element == '..') continue; |
|
376 | + $result_array = array(); |
|
377 | + if (is_dir($path)) { |
|
378 | + $save_dir = getcwd(); |
|
379 | + chdir($path); |
|
380 | + $handle = opendir($path); |
|
381 | + while ($element = readdir($handle)) { |
|
382 | + if ($element == '.' || $element == '..') continue; |
|
383 | 383 | // Skip the current and parent directories |
384 | - if (is_dir($element)) { |
|
385 | - $dir_array[] = $path.'/'.$element; |
|
386 | - } |
|
387 | - } |
|
388 | - closedir($handle); |
|
389 | - // Recursive operation if subdirectories exist |
|
390 | - $dir_number = sizeof($dir_array); |
|
391 | - if ($dir_number > 0) { |
|
392 | - for ($i = 0 ; $i < $dir_number ; $i++) { |
|
393 | - $sub_dir_array = FileManager::list_all_directories($dir_array[$i]); // Function recursivity |
|
394 | - if (is_array($dir_array) && is_array($sub_dir_array)) { |
|
395 | - $dir_array = array_merge($dir_array, $sub_dir_array); // Data merge |
|
396 | - } |
|
397 | - } |
|
398 | - } |
|
399 | - $result_array = $dir_array; |
|
400 | - chdir($save_dir) ; |
|
401 | - } |
|
402 | - return $result_array ; |
|
403 | - } |
|
404 | - |
|
405 | - /** |
|
384 | + if (is_dir($element)) { |
|
385 | + $dir_array[] = $path.'/'.$element; |
|
386 | + } |
|
387 | + } |
|
388 | + closedir($handle); |
|
389 | + // Recursive operation if subdirectories exist |
|
390 | + $dir_number = sizeof($dir_array); |
|
391 | + if ($dir_number > 0) { |
|
392 | + for ($i = 0 ; $i < $dir_number ; $i++) { |
|
393 | + $sub_dir_array = FileManager::list_all_directories($dir_array[$i]); // Function recursivity |
|
394 | + if (is_array($dir_array) && is_array($sub_dir_array)) { |
|
395 | + $dir_array = array_merge($dir_array, $sub_dir_array); // Data merge |
|
396 | + } |
|
397 | + } |
|
398 | + } |
|
399 | + $result_array = $dir_array; |
|
400 | + chdir($save_dir) ; |
|
401 | + } |
|
402 | + return $result_array ; |
|
403 | + } |
|
404 | + |
|
405 | + /** |
|
406 | 406 | This function receives a list of directories. |
407 | 407 | It returns a list of all files in these directories |
408 | 408 | |
409 | 409 | @author Roan Embrechts |
410 | 410 | @version 1.0 |
411 | - */ |
|
412 | - function list_all_files($dir_array) |
|
411 | + */ |
|
412 | + function list_all_files($dir_array) |
|
413 | 413 | { |
414 | - $element_array = array(); |
|
415 | - if (is_dir($dir_array)) { |
|
416 | - |
|
417 | - $save_dir = getcwd(); |
|
418 | - foreach ($dir_array as $directory) { |
|
419 | - chdir($directory); |
|
420 | - $handle = opendir($directory); |
|
421 | - while ($element = readdir($handle)) { |
|
422 | - if ($element == '.' || $element == '..' || $element == '.htaccess') continue; |
|
414 | + $element_array = array(); |
|
415 | + if (is_dir($dir_array)) { |
|
416 | + |
|
417 | + $save_dir = getcwd(); |
|
418 | + foreach ($dir_array as $directory) { |
|
419 | + chdir($directory); |
|
420 | + $handle = opendir($directory); |
|
421 | + while ($element = readdir($handle)) { |
|
422 | + if ($element == '.' || $element == '..' || $element == '.htaccess') continue; |
|
423 | 423 | // Skip the current and parent directories |
424 | - if (!is_dir($element)) { |
|
425 | - $element_array[] = $directory.'/'.$element; |
|
426 | - } |
|
427 | - } |
|
428 | - closedir($handle); |
|
429 | - chdir('..'); |
|
430 | - chdir($save_dir); |
|
431 | - } |
|
432 | - } |
|
433 | - |
|
434 | - return $element_array; |
|
435 | - } |
|
436 | - |
|
437 | - /** |
|
424 | + if (!is_dir($element)) { |
|
425 | + $element_array[] = $directory.'/'.$element; |
|
426 | + } |
|
427 | + } |
|
428 | + closedir($handle); |
|
429 | + chdir('..'); |
|
430 | + chdir($save_dir); |
|
431 | + } |
|
432 | + } |
|
433 | + |
|
434 | + return $element_array; |
|
435 | + } |
|
436 | + |
|
437 | + /** |
|
438 | 438 | Loads contents of file $filename into memory and returns them as a string. |
439 | 439 | Function kept for compatibility with older PHP versions. |
440 | 440 | Function is binary safe (is needed on Windows) |
441 | - */ |
|
442 | - function compat_load_file($file_name) |
|
441 | + */ |
|
442 | + function compat_load_file($file_name) |
|
443 | 443 | { |
444 | - $buffer = ''; |
|
445 | - if (file_exists($file_name)) { |
|
446 | - $fp = fopen($file_name, 'rb'); |
|
447 | - $buffer = fread ($fp, filesize($file_name)); |
|
448 | - fclose ($fp); |
|
449 | - } |
|
450 | - return $buffer; |
|
451 | - } |
|
452 | - |
|
453 | - /** |
|
454 | - * Adds file/folder to document table in database |
|
455 | - * improvement from set_default_settings (see below): |
|
456 | - * take all info from function parameters |
|
457 | - * no global variables needed |
|
458 | - * |
|
459 | - * NOTE $glued_table should already have backticks around it |
|
460 | - * (get it from the database library, and it is done automatically) |
|
461 | - * |
|
462 | - * @param path, filename, filetype, |
|
463 | - $glued_table, default_visibility |
|
444 | + $buffer = ''; |
|
445 | + if (file_exists($file_name)) { |
|
446 | + $fp = fopen($file_name, 'rb'); |
|
447 | + $buffer = fread ($fp, filesize($file_name)); |
|
448 | + fclose ($fp); |
|
449 | + } |
|
450 | + return $buffer; |
|
451 | + } |
|
464 | 452 | |
465 | - * action: Adds an entry to the document table with the default settings. |
|
466 | - * @author Olivier Cauberghe <[email protected]> |
|
467 | - * @author Roan Embrechts |
|
468 | - * @version 1.2 |
|
469 | - */ |
|
470 | - function set_default_settings($upload_path, $filename, $filetype = 'file', $glued_table, $default_visibility = 'v') |
|
453 | + /** |
|
454 | + * Adds file/folder to document table in database |
|
455 | + * improvement from set_default_settings (see below): |
|
456 | + * take all info from function parameters |
|
457 | + * no global variables needed |
|
458 | + * |
|
459 | + * NOTE $glued_table should already have backticks around it |
|
460 | + * (get it from the database library, and it is done automatically) |
|
461 | + * |
|
462 | + * @param path, filename, filetype, |
|
463 | + $glued_table, default_visibility |
|
464 | + * action: Adds an entry to the document table with the default settings. |
|
465 | + * @author Olivier Cauberghe <[email protected]> |
|
466 | + * @author Roan Embrechts |
|
467 | + * @version 1.2 |
|
468 | + */ |
|
469 | + function set_default_settings($upload_path, $filename, $filetype = 'file', $glued_table, $default_visibility = 'v') |
|
471 | 470 | { |
472 | - if (!$default_visibility) $default_visibility = 'v'; |
|
473 | - |
|
474 | - // Make sure path is not wrongly formed |
|
475 | - $upload_path = !empty($upload_path) ? "/$upload_path" : ''; |
|
476 | - |
|
477 | - $endchar = substr($filename, strlen($filename) - 1, 1); |
|
478 | - if ($endchar == "\\" || $endchar == '/') { |
|
479 | - $filename = substr($filename, 0, strlen($filename) - 1); |
|
480 | - } |
|
481 | - |
|
482 | - $full_file_name = $upload_path.'/'.$filename; |
|
483 | - $full_file_name = str_replace("//", '/', $full_file_name); |
|
484 | - |
|
485 | - $sql_query = "SELECT count(*) as number_existing FROM $glued_table WHERE path='$full_file_name'"; |
|
486 | - $sql_result = Database::query($sql_query); |
|
487 | - $result = Database::fetch_array($sql_result); |
|
488 | - // Determine which query to execute |
|
489 | - if ($result['number_existing'] > 0) { |
|
490 | - // Entry exists, update |
|
491 | - $query = "UPDATE $glued_table SET path='$full_file_name',visibility='$default_visibility', filetype='$filetype' |
|
471 | + if (!$default_visibility) $default_visibility = 'v'; |
|
472 | + |
|
473 | + // Make sure path is not wrongly formed |
|
474 | + $upload_path = !empty($upload_path) ? "/$upload_path" : ''; |
|
475 | + |
|
476 | + $endchar = substr($filename, strlen($filename) - 1, 1); |
|
477 | + if ($endchar == "\\" || $endchar == '/') { |
|
478 | + $filename = substr($filename, 0, strlen($filename) - 1); |
|
479 | + } |
|
480 | + |
|
481 | + $full_file_name = $upload_path.'/'.$filename; |
|
482 | + $full_file_name = str_replace("//", '/', $full_file_name); |
|
483 | + |
|
484 | + $sql_query = "SELECT count(*) as number_existing FROM $glued_table WHERE path='$full_file_name'"; |
|
485 | + $sql_result = Database::query($sql_query); |
|
486 | + $result = Database::fetch_array($sql_result); |
|
487 | + // Determine which query to execute |
|
488 | + if ($result['number_existing'] > 0) { |
|
489 | + // Entry exists, update |
|
490 | + $query = "UPDATE $glued_table SET path='$full_file_name',visibility='$default_visibility', filetype='$filetype' |
|
492 | 491 | WHERE path='$full_file_name'"; |
493 | - } else { |
|
494 | - // No entry exists, create new one |
|
495 | - $query = "INSERT INTO $glued_table (path,visibility,filetype) |
|
492 | + } else { |
|
493 | + // No entry exists, create new one |
|
494 | + $query = "INSERT INTO $glued_table (path,visibility,filetype) |
|
496 | 495 | VALUES ('$full_file_name','$default_visibility','$filetype')"; |
497 | - } |
|
498 | - Database::query($query); |
|
499 | - } |
|
496 | + } |
|
497 | + Database::query($query); |
|
498 | + } |
|
500 | 499 | } |
@@ -17,6 +17,7 @@ discard block |
||
17 | 17 | * |
18 | 18 | * @author - Hugues Peeters <[email protected]> |
19 | 19 | * @param - file_name (string) name of a file |
20 | + * @param string $file_name |
|
20 | 21 | * @return - the filenam phps'ized |
21 | 22 | */ |
22 | 23 | function php2phps($file_name) { |
@@ -73,7 +74,7 @@ discard block |
||
73 | 74 | * Returns the name without extension, used for the title |
74 | 75 | * |
75 | 76 | * @param string $name |
76 | - * @return name without the extension |
|
77 | + * @return string without the extension |
|
77 | 78 | */ |
78 | 79 | function get_document_title($name) { |
79 | 80 | // If they upload .htaccess... |
@@ -86,7 +87,7 @@ discard block |
||
86 | 87 | * This function checks if the upload succeeded |
87 | 88 | * |
88 | 89 | * @param array $uploaded_file ($_FILES) |
89 | - * @return true if upload succeeded |
|
90 | + * @return boolean if upload succeeded |
|
90 | 91 | */ |
91 | 92 | function process_uploaded_file($uploaded_file, $show_output = true) |
92 | 93 | { |
@@ -698,6 +699,8 @@ discard block |
||
698 | 699 | * @param - dir (string) - Path of the directory |
699 | 700 | * whe the file should be added |
700 | 701 | * @param - max_dir_space (int) - maximum size of the diretory in byte |
702 | + * @param string $dir |
|
703 | + * @param integer $max_dir_space |
|
701 | 704 | * @return - boolean true if there is enough space, |
702 | 705 | * boolean false otherwise |
703 | 706 | * |
@@ -1022,7 +1025,7 @@ discard block |
||
1022 | 1025 | * @param array $courseInfo |
1023 | 1026 | * @param array $userInfo |
1024 | 1027 | * @param array $uploaded_file - follows the $_FILES Structure |
1025 | - * @param string $upload_path - destination of the upload. |
|
1028 | + * @param string $uploadPath - destination of the upload. |
|
1026 | 1029 | * This path is to append to $base_work_dir |
1027 | 1030 | * @param string $base_work_dir - base working directory of the module |
1028 | 1031 | * @param int $maxFilledSpace - amount of bytes to not exceed in the base |
@@ -1201,7 +1204,7 @@ discard block |
||
1201 | 1204 | * @param bool $save_visibility |
1202 | 1205 | * @param int $group_id |
1203 | 1206 | * @param int $session_id Session ID, if any |
1204 | - * @return int id if inserted document |
|
1207 | + * @return string|false id if inserted document |
|
1205 | 1208 | */ |
1206 | 1209 | function add_document( |
1207 | 1210 | $_course, |
@@ -1337,7 +1340,7 @@ discard block |
||
1337 | 1340 | * |
1338 | 1341 | * @author Olivier Cauberghe <[email protected]> |
1339 | 1342 | * @param path+filename eg: /main/document/document.php |
1340 | - * @return The directory depth |
|
1343 | + * @return integer directory depth |
|
1341 | 1344 | */ |
1342 | 1345 | function get_levels($filename) { |
1343 | 1346 | $levels = explode('/', $filename); |
@@ -1354,6 +1357,7 @@ discard block |
||
1354 | 1357 | * @author Olivier Cauberghe <[email protected]> |
1355 | 1358 | * @param path,filename |
1356 | 1359 | * action: Adds an entry to the document table with the default settings. |
1360 | + * @param string $upload_path |
|
1357 | 1361 | */ |
1358 | 1362 | function set_default_settings($upload_path, $filename, $filetype = 'file') |
1359 | 1363 | { |
@@ -1778,6 +1782,7 @@ discard block |
||
1778 | 1782 | |
1779 | 1783 | @author Roan Embrechts |
1780 | 1784 | @version 0.6 |
1785 | + * @param string $buffer |
|
1781 | 1786 | */ |
1782 | 1787 | function api_replace_links_in_string($upload_path, $buffer) { |
1783 | 1788 | // Search for hyperlinks |
@@ -2013,7 +2018,6 @@ discard block |
||
2013 | 2018 | * @param int $groupId |
2014 | 2019 | * @param bool $output |
2015 | 2020 | * @param array $parent |
2016 | - * @param string $uploadPath |
|
2017 | 2021 | * |
2018 | 2022 | */ |
2019 | 2023 | function add_all_documents_in_folder_to_database( |
@@ -2110,7 +2110,7 @@ |
||
2110 | 2110 | $newFolderData = DocumentManager::get_document_data_by_id($documentId, $courseInfo, false, $sessionId); |
2111 | 2111 | } |
2112 | 2112 | } else { |
2113 | - $newFolderData = create_unexisting_directory( |
|
2113 | + $newFolderData = create_unexisting_directory( |
|
2114 | 2114 | $courseInfo, |
2115 | 2115 | $userId, |
2116 | 2116 | $sessionId, |