@@ -758,7 +758,7 @@ |
||
758 | 758 | // $gidReset = true; |
759 | 759 | } // end else |
760 | 760 | |
761 | - // Now check for anonymous user mode |
|
761 | + // Now check for anonymous user mode |
|
762 | 762 | if (isset($use_anonymous) && $use_anonymous) { |
763 | 763 | //if anonymous mode is set, then try to set the current user as anonymous |
764 | 764 | //if he doesn't have a login yet |
@@ -1229,13 +1229,13 @@ discard block |
||
1229 | 1229 | } |
1230 | 1230 | |
1231 | 1231 | /** |
1232 | - * Get the users by ID |
|
1233 | - * @param array $ids student ids |
|
1234 | - * @param string $active |
|
1235 | - * @param string $order |
|
1236 | - * @param string $limit |
|
1237 | - * @return array $result student information |
|
1238 | - */ |
|
1232 | + * Get the users by ID |
|
1233 | + * @param array $ids student ids |
|
1234 | + * @param string $active |
|
1235 | + * @param string $order |
|
1236 | + * @param string $limit |
|
1237 | + * @return array $result student information |
|
1238 | + */ |
|
1239 | 1239 | public static function get_user_list_by_ids($ids = array(), $active = null, $order = null, $limit = null) |
1240 | 1240 | { |
1241 | 1241 | if (empty($ids)) { |
@@ -3332,12 +3332,12 @@ discard block |
||
3332 | 3332 | if ($tag_id == 0) { |
3333 | 3333 | //the tag doesn't exist |
3334 | 3334 | $sql = "INSERT INTO $table_user_tag (tag, field_id,count) VALUES ('$tag','$field_id', count + 1)"; |
3335 | - Database::query($sql); |
|
3335 | + Database::query($sql); |
|
3336 | 3336 | $last_insert_id = Database::insert_id(); |
3337 | 3337 | } else { |
3338 | 3338 | //the tag exists we update it |
3339 | 3339 | $sql = "UPDATE $table_user_tag SET count = count + 1 WHERE id = $tag_id"; |
3340 | - Database::query($sql); |
|
3340 | + Database::query($sql); |
|
3341 | 3341 | $last_insert_id = $tag_id; |
3342 | 3342 | } |
3343 | 3343 | |
@@ -3532,9 +3532,9 @@ discard block |
||
3532 | 3532 | } |
3533 | 3533 | |
3534 | 3534 | /** |
3535 | - * Get extra filtrable user fields (only type select) |
|
3536 | - * @return array |
|
3537 | - */ |
|
3535 | + * Get extra filtrable user fields (only type select) |
|
3536 | + * @return array |
|
3537 | + */ |
|
3538 | 3538 | public static function get_extra_filtrable_fields() |
3539 | 3539 | { |
3540 | 3540 | $extraFieldList = UserManager::get_extra_fields(); |
@@ -3559,9 +3559,9 @@ discard block |
||
3559 | 3559 | } |
3560 | 3560 | |
3561 | 3561 | /** |
3562 | - * Get extra where clauses for finding users based on extra filtrable user fields (type select) |
|
3563 | - * @return string With AND clauses based on user's ID which have the values to search in extra user fields |
|
3564 | - */ |
|
3562 | + * Get extra where clauses for finding users based on extra filtrable user fields (type select) |
|
3563 | + * @return string With AND clauses based on user's ID which have the values to search in extra user fields |
|
3564 | + */ |
|
3565 | 3565 | public static function get_search_form_where_extra_fields() |
3566 | 3566 | { |
3567 | 3567 | $useExtraFields = false; |
@@ -3869,23 +3869,23 @@ discard block |
||
3869 | 3869 | } |
3870 | 3870 | |
3871 | 3871 | /** |
3872 | - * Get users followed by human resource manager |
|
3873 | - * @param int $userId |
|
3874 | - * @param int $userStatus Filter users by status (STUDENT, COURSEMANAGER, etc) |
|
3875 | - * @param bool $getOnlyUserId |
|
3876 | - * @param bool $getSql |
|
3877 | - * @param bool $getCount |
|
3878 | - * @param int $from |
|
3879 | - * @param int $numberItems |
|
3880 | - * @param int $column |
|
3881 | - * @param string $direction |
|
3882 | - * @param int $active |
|
3883 | - * @param string $lastConnectionDate |
|
3884 | - * @param int $status the function is called by who? COURSEMANAGER, DRH? |
|
3885 | - * @param string $keyword |
|
3872 | + * Get users followed by human resource manager |
|
3873 | + * @param int $userId |
|
3874 | + * @param int $userStatus Filter users by status (STUDENT, COURSEMANAGER, etc) |
|
3875 | + * @param bool $getOnlyUserId |
|
3876 | + * @param bool $getSql |
|
3877 | + * @param bool $getCount |
|
3878 | + * @param int $from |
|
3879 | + * @param int $numberItems |
|
3880 | + * @param int $column |
|
3881 | + * @param string $direction |
|
3882 | + * @param int $active |
|
3883 | + * @param string $lastConnectionDate |
|
3884 | + * @param int $status the function is called by who? COURSEMANAGER, DRH? |
|
3885 | + * @param string $keyword |
|
3886 | 3886 | * |
3887 | - * @return array user list |
|
3888 | - */ |
|
3887 | + * @return array user list |
|
3888 | + */ |
|
3889 | 3889 | public static function getUsersFollowedByUser( |
3890 | 3890 | $userId, |
3891 | 3891 | $userStatus = null, |
@@ -1,9 +1,9 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * Integrate svg-edit with Chamilo |
|
4 | - * @author Juan Carlos Raña Trabado |
|
5 | - * @since 25/september/2010 |
|
6 | - */ |
|
3 | + * Integrate svg-edit with Chamilo |
|
4 | + * @author Juan Carlos Raña Trabado |
|
5 | + * @since 25/september/2010 |
|
6 | + */ |
|
7 | 7 | |
8 | 8 | require_once '../../../inc/global.inc.php';//hack for Chamilo |
9 | 9 | api_protect_course_script(); |
@@ -10,29 +10,29 @@ |
||
10 | 10 | * Copyright(c) 2010 Alexis Deveria |
11 | 11 | * |
12 | 12 | */ |
13 | - // Very minimal PHP file, all we do is Base64 encode the uploaded file and |
|
14 | - // return it to the editor |
|
13 | + // Very minimal PHP file, all we do is Base64 encode the uploaded file and |
|
14 | + // return it to the editor |
|
15 | 15 | |
16 | - $type = $_REQUEST['type']; |
|
17 | - if (!in_array($type, array('load_svg', 'import_svg', 'import_img'))) { |
|
18 | - exit; |
|
19 | - } |
|
20 | - require('allowedMimeTypes.php'); |
|
16 | + $type = $_REQUEST['type']; |
|
17 | + if (!in_array($type, array('load_svg', 'import_svg', 'import_img'))) { |
|
18 | + exit; |
|
19 | + } |
|
20 | + require('allowedMimeTypes.php'); |
|
21 | 21 | |
22 | - $file = $_FILES['svg_file']['tmp_name']; |
|
22 | + $file = $_FILES['svg_file']['tmp_name']; |
|
23 | 23 | |
24 | - $output = file_get_contents($file); |
|
24 | + $output = file_get_contents($file); |
|
25 | 25 | |
26 | - $prefix = ''; |
|
26 | + $prefix = ''; |
|
27 | 27 | |
28 | - // Make Data URL prefix for import image |
|
29 | - if ($type == 'import_img') { |
|
30 | - $info = getimagesize($file); |
|
31 | - if (!in_array($info['mime'], $allowedMimeTypesBySuffix)) { |
|
32 | - exit; |
|
33 | - } |
|
34 | - $prefix = 'data:' . $info['mime'] . ';base64,'; |
|
35 | - } |
|
28 | + // Make Data URL prefix for import image |
|
29 | + if ($type == 'import_img') { |
|
30 | + $info = getimagesize($file); |
|
31 | + if (!in_array($info['mime'], $allowedMimeTypesBySuffix)) { |
|
32 | + exit; |
|
33 | + } |
|
34 | + $prefix = 'data:' . $info['mime'] . ';base64,'; |
|
35 | + } |
|
36 | 36 | ?> |
37 | 37 | <html xmlns="http://www.w3.org/1999/xhtml"> |
38 | 38 | <head> |
@@ -10,12 +10,12 @@ discard block |
||
10 | 10 | */ |
11 | 11 | exit; |
12 | 12 | function encodeRFC5987ValueChars ($str) { |
13 | - // See http://tools.ietf.org/html/rfc5987#section-3.2.1 |
|
14 | - // For better readability within headers, add back the characters escaped by rawurlencode but still allowable |
|
15 | - // Although RFC3986 reserves "!" (%21), RFC5987 does not |
|
16 | - return preg_replace_callback('@%(2[1346B]|5E|60|7C)@', function ($matches) { |
|
17 | - return chr('0x' . $matches[1]); |
|
18 | - }, rawurlencode($str)); |
|
13 | + // See http://tools.ietf.org/html/rfc5987#section-3.2.1 |
|
14 | + // For better readability within headers, add back the characters escaped by rawurlencode but still allowable |
|
15 | + // Although RFC3986 reserves "!" (%21), RFC5987 does not |
|
16 | + return preg_replace_callback('@%(2[1346B]|5E|60|7C)@', function ($matches) { |
|
17 | + return chr('0x' . $matches[1]); |
|
18 | + }, rawurlencode($str)); |
|
19 | 19 | } |
20 | 20 | |
21 | 21 | require('allowedMimeTypes.php'); |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | $mime = !isset($_POST['mime']) || !in_array($_POST['mime'], $allowedMimeTypesBySuffix) ? 'image/svg+xml;charset=UTF-8' : $_POST['mime']; |
24 | 24 | |
25 | 25 | if (!isset($_POST['output_svg']) && !isset($_POST['output_img'])) { |
26 | - die('post fail'); |
|
26 | + die('post fail'); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | $file = ''; |
@@ -31,17 +31,17 @@ discard block |
||
31 | 31 | $suffix = '.' . array_search($mime, $allowedMimeTypesBySuffix); |
32 | 32 | |
33 | 33 | if (isset($_POST['filename']) && strlen($_POST['filename']) > 0) { |
34 | - $file = $_POST['filename'] . $suffix; |
|
34 | + $file = $_POST['filename'] . $suffix; |
|
35 | 35 | } else { |
36 | - $file = 'image' . $suffix; |
|
36 | + $file = 'image' . $suffix; |
|
37 | 37 | } |
38 | 38 | |
39 | 39 | if ($suffix == '.svg') { |
40 | - $contents = $_POST['output_svg']; |
|
40 | + $contents = $_POST['output_svg']; |
|
41 | 41 | } else { |
42 | - $contents = $_POST['output_img']; |
|
43 | - $pos = (strpos($contents, 'base64,') + 7); |
|
44 | - $contents = base64_decode(substr($contents, $pos)); |
|
42 | + $contents = $_POST['output_img']; |
|
43 | + $pos = (strpos($contents, 'base64,') + 7); |
|
44 | + $contents = base64_decode(substr($contents, $pos)); |
|
45 | 45 | } |
46 | 46 | |
47 | 47 | header("Cache-Control: public"); |
@@ -49,8 +49,8 @@ discard block |
||
49 | 49 | |
50 | 50 | // See http://tools.ietf.org/html/rfc6266#section-4.1 |
51 | 51 | header("Content-Disposition: attachment; filename*=UTF-8''" . encodeRFC5987ValueChars( |
52 | - // preg_replace('@[\\\\/:*?"<>|]@', '', $file) // If we wanted to strip Windows-disallowed characters server-side (but not a security issue, so we can strip client-side instead) |
|
53 | - $file |
|
52 | + // preg_replace('@[\\\\/:*?"<>|]@', '', $file) // If we wanted to strip Windows-disallowed characters server-side (but not a security issue, so we can strip client-side instead) |
|
53 | + $file |
|
54 | 54 | )); |
55 | 55 | header("Content-Type: " . $mime); |
56 | 56 | header("Content-Transfer-Encoding: binary"); |
@@ -1,16 +1,16 @@ |
||
1 | 1 | <?php |
2 | - // You must first create a file "savefile_config.php" in this extensions directory and do whatever |
|
3 | - // checking of user credentials, etc. that you wish; otherwise anyone will be able to post SVG |
|
4 | - // files to your server which may cause disk space or possibly security problems |
|
5 | - require('savefile_config.php'); |
|
6 | - if (!isset($_POST['output_svg'])) { |
|
7 | - print "You must supply output_svg"; |
|
8 | - exit; |
|
9 | - } |
|
10 | - $svg = $_POST['output_svg']; |
|
11 | - $filename = (isset($_POST['filename']) && !empty($_POST['filename']) ? preg_replace('@[\\\\/:*?"<>|]@u', '_', $_POST['filename']) : 'saved') . '.svg'; // These characters are indicated as prohibited by Windows |
|
2 | + // You must first create a file "savefile_config.php" in this extensions directory and do whatever |
|
3 | + // checking of user credentials, etc. that you wish; otherwise anyone will be able to post SVG |
|
4 | + // files to your server which may cause disk space or possibly security problems |
|
5 | + require('savefile_config.php'); |
|
6 | + if (!isset($_POST['output_svg'])) { |
|
7 | + print "You must supply output_svg"; |
|
8 | + exit; |
|
9 | + } |
|
10 | + $svg = $_POST['output_svg']; |
|
11 | + $filename = (isset($_POST['filename']) && !empty($_POST['filename']) ? preg_replace('@[\\\\/:*?"<>|]@u', '_', $_POST['filename']) : 'saved') . '.svg'; // These characters are indicated as prohibited by Windows |
|
12 | 12 | |
13 | - $fh = fopen($filename, 'w') or die("Can't open file"); |
|
14 | - fwrite($fh, $svg); |
|
15 | - fclose($fh); |
|
13 | + $fh = fopen($filename, 'w') or die("Can't open file"); |
|
14 | + fwrite($fh, $svg); |
|
15 | + fclose($fh); |
|
16 | 16 | ?> |
@@ -23,22 +23,22 @@ discard block |
||
23 | 23 | $array_to_search = is_array($docs_and_folders) ? $docs_and_folders : array(); |
24 | 24 | |
25 | 25 | if (count($array_to_search) > 0) { |
26 | - while (list($key) = each($array_to_search)) { |
|
27 | - $all_files[] = basename($array_to_search[$key]['path']); |
|
28 | - } |
|
26 | + while (list($key) = each($array_to_search)) { |
|
27 | + $all_files[] = basename($array_to_search[$key]['path']); |
|
28 | + } |
|
29 | 29 | } |
30 | 30 | |
31 | 31 | //get all svg and png files |
32 | 32 | $accepted_extensions = array('.svg', '.png'); |
33 | 33 | |
34 | 34 | if (is_array($all_files) && count($all_files) > 0) { |
35 | - foreach ($all_files as & $file) { |
|
36 | - $slideshow_extension = strrchr($file, '.'); |
|
37 | - $slideshow_extension = strtolower($slideshow_extension); |
|
38 | - if (in_array($slideshow_extension, $accepted_extensions)) { |
|
39 | - $png_svg_files[] =$file; |
|
40 | - } |
|
41 | - } |
|
35 | + foreach ($all_files as & $file) { |
|
36 | + $slideshow_extension = strrchr($file, '.'); |
|
37 | + $slideshow_extension = strtolower($slideshow_extension); |
|
38 | + if (in_array($slideshow_extension, $accepted_extensions)) { |
|
39 | + $png_svg_files[] =$file; |
|
40 | + } |
|
41 | + } |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | $disk_path = api_get_path(SYS_COURSE_PATH).$course_info['path'].'/document/images/gallery/'; |
@@ -57,24 +57,24 @@ discard block |
||
57 | 57 | <?php |
58 | 58 | echo '<h2>'.get_lang('Course').': '.$course_info['name'].'</h2>'; |
59 | 59 | if (!empty($png_svg_files)) { |
60 | - echo '<h3>'.get_lang('SelectSVGEditImage').'</h3>'; |
|
61 | - echo '<ul>'; |
|
62 | - foreach($png_svg_files as $filename) { |
|
63 | - $image=$disk_path.$filename; |
|
64 | - |
|
65 | - if (strpos($filename, "svg")){ |
|
66 | - $new_sizes['width'] = 60; |
|
67 | - $new_sizes['height'] = 60; |
|
68 | - } |
|
69 | - else { |
|
70 | - $new_sizes = api_resize_image($image, 60, 60); |
|
71 | - } |
|
72 | - |
|
73 | - echo '<li style="display:inline; padding:8px;"><a href="'.$web_path.$filename.'" alt "'.$filename.'" title="'.$filename.'"><img src="'.$web_path.$filename.'" width="'.$new_sizes['width'].'" height="'.$new_sizes['height'].'" border="0"></a></li>'; |
|
74 | - } |
|
75 | - echo '</ul>'; |
|
60 | + echo '<h3>'.get_lang('SelectSVGEditImage').'</h3>'; |
|
61 | + echo '<ul>'; |
|
62 | + foreach($png_svg_files as $filename) { |
|
63 | + $image=$disk_path.$filename; |
|
64 | + |
|
65 | + if (strpos($filename, "svg")){ |
|
66 | + $new_sizes['width'] = 60; |
|
67 | + $new_sizes['height'] = 60; |
|
68 | + } |
|
69 | + else { |
|
70 | + $new_sizes = api_resize_image($image, 60, 60); |
|
71 | + } |
|
72 | + |
|
73 | + echo '<li style="display:inline; padding:8px;"><a href="'.$web_path.$filename.'" alt "'.$filename.'" title="'.$filename.'"><img src="'.$web_path.$filename.'" width="'.$new_sizes['width'].'" height="'.$new_sizes['height'].'" border="0"></a></li>'; |
|
74 | + } |
|
75 | + echo '</ul>'; |
|
76 | 76 | } else { |
77 | - Display::display_warning_message(get_lang('NoSVGImagesInImagesGalleryPath')); |
|
77 | + Display::display_warning_message(get_lang('NoSVGImagesInImagesGalleryPath')); |
|
78 | 78 | } |
79 | 79 | ?> |
80 | 80 | </body> |
@@ -34,9 +34,9 @@ discard block |
||
34 | 34 | $array_to_search = is_array($docs_and_folders) ? $docs_and_folders : array(); |
35 | 35 | |
36 | 36 | if (count($array_to_search) > 0) { |
37 | - while (list($key) = each($array_to_search)) { |
|
38 | - $all_files[] = basename($array_to_search[$key]['path']); |
|
39 | - } |
|
37 | + while (list($key) = each($array_to_search)) { |
|
38 | + $all_files[] = basename($array_to_search[$key]['path']); |
|
39 | + } |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | //get all svg and png group files |
@@ -70,26 +70,26 @@ discard block |
||
70 | 70 | ($is_allowed_to_edit || GroupManager :: is_user_in_group($_user['user_id'], $groupId))) || $group_properties['doc_state'] == 1 |
71 | 71 | ){ |
72 | 72 | |
73 | - if (!empty($png_svg_files)) { |
|
74 | - echo '<h3>'.get_lang('SelectSVGEditImage').'</h3>'; |
|
75 | - echo '<ul>'; |
|
76 | - foreach($png_svg_files as $filename) { |
|
77 | - $image = $group_disk_path.$filename; |
|
78 | - |
|
79 | - if (strpos($filename, "svg")){ |
|
80 | - $new_sizes['width'] = 60; |
|
81 | - $new_sizes['height'] = 60; |
|
82 | - } else { |
|
83 | - $new_sizes = api_resize_image($image, 60, 60); |
|
84 | - } |
|
73 | + if (!empty($png_svg_files)) { |
|
74 | + echo '<h3>'.get_lang('SelectSVGEditImage').'</h3>'; |
|
75 | + echo '<ul>'; |
|
76 | + foreach($png_svg_files as $filename) { |
|
77 | + $image = $group_disk_path.$filename; |
|
78 | + |
|
79 | + if (strpos($filename, "svg")){ |
|
80 | + $new_sizes['width'] = 60; |
|
81 | + $new_sizes['height'] = 60; |
|
82 | + } else { |
|
83 | + $new_sizes = api_resize_image($image, 60, 60); |
|
84 | + } |
|
85 | 85 | echo '<li style="display:inline; padding:8px;">'; |
86 | 86 | echo '<a href = "'.$group_web_path.$filename.'" alt="'.$filename.'" title="'.$filename.'">'; |
87 | 87 | echo '<img src = "'.$group_web_path.$filename.'" width = "'.$new_sizes['width'].'" height="'.$new_sizes['height'].'" border="0"></a></li>'; |
88 | - } |
|
89 | - echo '</ul>'; |
|
90 | - } |
|
88 | + } |
|
89 | + echo '</ul>'; |
|
90 | + } |
|
91 | 91 | } else { |
92 | - echo Display::display_warning_message(get_lang('OnlyAccessFromYourGroup')); |
|
92 | + echo Display::display_warning_message(get_lang('OnlyAccessFromYourGroup')); |
|
93 | 93 | } |
94 | 94 | ?> |
95 | 95 | </body> |
@@ -21,13 +21,13 @@ discard block |
||
21 | 21 | $accepted_extensions = array('.svg', '.png'); |
22 | 22 | |
23 | 23 | if (is_array($scan_files) && count($scan_files) > 0) { |
24 | - foreach ($scan_files as & $file) { |
|
25 | - $slideshow_extension = strrchr($file, '.'); |
|
26 | - $slideshow_extension = strtolower($slideshow_extension); |
|
27 | - if (in_array($slideshow_extension, $accepted_extensions)) { |
|
28 | - $png_svg_files[] =$file; |
|
29 | - } |
|
30 | - } |
|
24 | + foreach ($scan_files as & $file) { |
|
25 | + $slideshow_extension = strrchr($file, '.'); |
|
26 | + $slideshow_extension = strtolower($slideshow_extension); |
|
27 | + if (in_array($slideshow_extension, $accepted_extensions)) { |
|
28 | + $png_svg_files[] =$file; |
|
29 | + } |
|
30 | + } |
|
31 | 31 | } |
32 | 32 | $style = '<style>'; |
33 | 33 | $style .= '@import "'.api_get_path(WEB_CSS_PATH).'base.css";'; |
@@ -46,23 +46,23 @@ discard block |
||
46 | 46 | echo '<h2>'.get_lang('SocialNetwork').': '.get_lang('MyFiles').'</h2>'; |
47 | 47 | |
48 | 48 | if (!empty($png_svg_files)) { |
49 | - echo '<h3>'.get_lang('SelectSVGEditImage').'</h3>'; |
|
50 | - echo '<ul>'; |
|
51 | - foreach($png_svg_files as $filename) { |
|
52 | - $image = $user_disk_path.$filename; |
|
53 | - |
|
54 | - if (strpos($filename, "svg")){ |
|
55 | - $new_sizes['width'] = 60; |
|
56 | - $new_sizes['height'] = 60; |
|
57 | - } else { |
|
58 | - $new_sizes = api_resize_image($image, 60, 60); |
|
59 | - } |
|
60 | - |
|
61 | - echo '<li style="display:inline; padding:8px;"><a href="'.$user_web_path.$filename.'" alt "'.$filename.'" title="'.$filename.'"><img src="'.$user_web_path.$filename.'" width="'.$new_sizes['width'].'" height="'.$new_sizes['height'].'" border="0"></a></li>'; |
|
62 | - } |
|
63 | - echo '</ul>'; |
|
49 | + echo '<h3>'.get_lang('SelectSVGEditImage').'</h3>'; |
|
50 | + echo '<ul>'; |
|
51 | + foreach($png_svg_files as $filename) { |
|
52 | + $image = $user_disk_path.$filename; |
|
53 | + |
|
54 | + if (strpos($filename, "svg")){ |
|
55 | + $new_sizes['width'] = 60; |
|
56 | + $new_sizes['height'] = 60; |
|
57 | + } else { |
|
58 | + $new_sizes = api_resize_image($image, 60, 60); |
|
59 | + } |
|
60 | + |
|
61 | + echo '<li style="display:inline; padding:8px;"><a href="'.$user_web_path.$filename.'" alt "'.$filename.'" title="'.$filename.'"><img src="'.$user_web_path.$filename.'" width="'.$new_sizes['width'].'" height="'.$new_sizes['height'].'" border="0"></a></li>'; |
|
62 | + } |
|
63 | + echo '</ul>'; |
|
64 | 64 | } else { |
65 | - Display::display_warning_message(get_lang('NoSVGImages')); |
|
65 | + Display::display_warning_message(get_lang('NoSVGImages')); |
|
66 | 66 | } |
67 | 67 | ?> |
68 | 68 | </body> |