| @@ 513-535 (lines=23) @@ | ||
| 510 | * @param string $courseCode |
|
| 511 | * @return array |
|
| 512 | */ |
|
| 513 | public static function getGroupByName($name, $courseCode = null) |
|
| 514 | { |
|
| 515 | $name = trim($name); |
|
| 516 | ||
| 517 | if (empty($name)) { |
|
| 518 | return array(); |
|
| 519 | } |
|
| 520 | ||
| 521 | $course_info = api_get_course_info($courseCode); |
|
| 522 | $course_id = $course_info['real_id']; |
|
| 523 | $name = Database::escape_string($name); |
|
| 524 | $table_group = Database::get_course_table(TABLE_GROUP); |
|
| 525 | $sql = "SELECT * FROM $table_group |
|
| 526 | WHERE c_id = $course_id AND name = '$name' |
|
| 527 | LIMIT 1"; |
|
| 528 | $res = Database::query($sql); |
|
| 529 | $group = array(); |
|
| 530 | if (Database::num_rows($res)) { |
|
| 531 | $group = Database::fetch_array($res, 'ASSOC'); |
|
| 532 | } |
|
| 533 | ||
| 534 | return $group; |
|
| 535 | } |
|
| 536 | ||
| 537 | /** |
|
| 538 | * @param int $courseId |
|
| @@ 707-728 (lines=22) @@ | ||
| 704 | * @param string $course_code The course (default = current course) |
|
| 705 | * @return array |
|
| 706 | */ |
|
| 707 | public static function getCategoryByTitle($title, $course_code = null) |
|
| 708 | { |
|
| 709 | $title = trim($title); |
|
| 710 | ||
| 711 | if (empty($title)) { |
|
| 712 | return array(); |
|
| 713 | } |
|
| 714 | ||
| 715 | $course_info = api_get_course_info($course_code); |
|
| 716 | $course_id = $course_info['real_id']; |
|
| 717 | $title = Database::escape_string($title); |
|
| 718 | $table_group_cat = Database::get_course_table(TABLE_GROUP_CATEGORY); |
|
| 719 | $sql = "SELECT * FROM $table_group_cat |
|
| 720 | WHERE c_id = $course_id AND title = '$title' |
|
| 721 | LIMIT 1"; |
|
| 722 | $res = Database::query($sql); |
|
| 723 | $category = array(); |
|
| 724 | if (Database::num_rows($res)) { |
|
| 725 | $category = Database::fetch_array($res, 'ASSOC'); |
|
| 726 | } |
|
| 727 | return $category; |
|
| 728 | } |
|
| 729 | ||
| 730 | /** |
|
| 731 | * Get the unique category of a given group |
|
| @@ 737-768 (lines=32) @@ | ||
| 734 | * current course) |
|
| 735 | * @return array The category |
|
| 736 | */ |
|
| 737 | public static function get_category_from_group($group_id, $course_code = '') |
|
| 738 | { |
|
| 739 | $table_group = Database::get_course_table(TABLE_GROUP); |
|
| 740 | $table_group_cat = Database::get_course_table(TABLE_GROUP_CATEGORY); |
|
| 741 | ||
| 742 | $group_id = intval($group_id); |
|
| 743 | ||
| 744 | if (empty($group_id)) { |
|
| 745 | return array(); |
|
| 746 | } |
|
| 747 | ||
| 748 | $course_info = api_get_course_info($course_code); |
|
| 749 | ||
| 750 | if (empty($course_info)) { |
|
| 751 | return false; |
|
| 752 | } |
|
| 753 | ||
| 754 | $course_id = $course_info['real_id']; |
|
| 755 | $sql = "SELECT gc.* FROM $table_group_cat gc, $table_group g |
|
| 756 | WHERE |
|
| 757 | gc.c_id = $course_id AND |
|
| 758 | g.c_id = $course_id AND |
|
| 759 | gc.id = g.category_id AND |
|
| 760 | g.iid = $group_id |
|
| 761 | LIMIT 1"; |
|
| 762 | $res = Database::query($sql); |
|
| 763 | $cat = array(); |
|
| 764 | if (Database::num_rows($res)) { |
|
| 765 | $cat = Database::fetch_array($res); |
|
| 766 | } |
|
| 767 | return $cat; |
|
| 768 | } |
|
| 769 | ||
| 770 | /** |
|
| 771 | * Delete a group category |
|
| @@ 1766-1794 (lines=29) @@ | ||
| 1763 | * @param int $id Numeric ID of the course |
|
| 1764 | * @return array The course info as an array formatted by api_format_course_array, including category.name |
|
| 1765 | */ |
|
| 1766 | function api_get_course_info_by_id($id = null) |
|
| 1767 | { |
|
| 1768 | if (!empty($id)) { |
|
| 1769 | $id = intval($id); |
|
| 1770 | $course_table = Database::get_main_table(TABLE_MAIN_COURSE); |
|
| 1771 | $course_cat_table = Database::get_main_table(TABLE_MAIN_CATEGORY); |
|
| 1772 | $sql = "SELECT |
|
| 1773 | course.*, |
|
| 1774 | course_category.code faCode, |
|
| 1775 | course_category.name faName |
|
| 1776 | FROM $course_table |
|
| 1777 | LEFT JOIN $course_cat_table |
|
| 1778 | ON course.category_code = course_category.code |
|
| 1779 | WHERE course.id = $id"; |
|
| 1780 | $result = Database::query($sql); |
|
| 1781 | $_course = array(); |
|
| 1782 | if (Database::num_rows($result) > 0) { |
|
| 1783 | $course_data = Database::fetch_array($result); |
|
| 1784 | $_course = api_format_course_array($course_data); |
|
| 1785 | } |
|
| 1786 | return $_course; |
|
| 1787 | } |
|
| 1788 | ||
| 1789 | global $_course; |
|
| 1790 | if ($_course == '-1') { |
|
| 1791 | $_course = array(); |
|
| 1792 | } |
|
| 1793 | return $_course; |
|
| 1794 | } |
|
| 1795 | ||
| 1796 | /** |
|
| 1797 | * Reformat the course array (output by api_get_course_info()) in order, mostly, |
|