Gallery.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. class Gallery extends Controller {
  3. public function Index(IAlbumRepository $repo) {
  4. $albums=$repo->GetAlbums();
  5. return new View("Gallery/index.view",array("albums"=>$albums));
  6. }
  7. public function View($url) {
  8. $album=new Album($url,true);
  9. Breadcrumbs::Add($album->AlbumTitle, "");
  10. return new View("Gallery/view.view",array("album"=>$album));
  11. }
  12. public function Manage(IAlbumRepository $albumRepo, IImageRepository $imageRepo, $errors) {
  13. $vars=array();
  14. Breadcrumbs::Add("Manage", "");
  15. $vars["albums"]=$albumRepo->GetAlbums(true,true);
  16. if (isset($errors))
  17. $vars["errors"]=$errors;
  18. $vars['images']=$imageRepo->GetImagesByAlbum(0);
  19. if(isset($image))
  20. $vars['image']=$image;
  21. else
  22. $vars['image']=new Image();
  23. return new View("Gallery/manage.view",$vars);
  24. }
  25. public function Move($moveImages, $selected, $selectAlbumNew){
  26. if (!isset($moveImages))
  27. return;
  28. //return print_r($params,true);
  29. foreach ($selected as $imgId){
  30. $image=new Image($imgId);
  31. $image->AlbumId=$selectAlbumNew;
  32. $image->Save();
  33. }
  34. header("location:/gallery/manage");
  35. }
  36. public function CreateAlbum($title,$description) {
  37. Breadcrumbs::Add("Manage", "");
  38. Breadcrumbs::Add("Create Album", "");
  39. $album=new Album();
  40. if (isset($title))
  41. $album->AlbumTitle=$title;
  42. if (isset($description))
  43. $album->AlbumDescription=$description;
  44. if ($album->AlbumTitle!="" && $album->AlbumDescription!=""){
  45. $album->Save();
  46. header("location:/gallery/manage");
  47. return;
  48. }
  49. return new View("Gallery/create_album.view",array("album"=>$album));
  50. }
  51. public function Upload($imageTitle,$imageDesc) {
  52. if (!isset($_FILES['imageFile'])){
  53. header("location: /gallery/manage/");
  54. return;
  55. }
  56. $errors=array();
  57. $filename=$_FILES['imageFile']['name'];
  58. $tempFile=$_FILES['imageFile']['tmp_name'];
  59. if ($imageTitle=="")
  60. $errors[]="The image doesn't have a title";
  61. if ($_FILES['imageFile']['error'])
  62. $errors[]=Utils::FileUploadErrorToMessage($_FILES['imageFile']['error']);
  63. if (count($errors)==0) {
  64. if(!Image::IsValidType(pathinfo($filename,PATHINFO_EXTENSION)))
  65. $errors[]="File is of an invalid type";
  66. if (getimagesize($tempFile)===false)
  67. $errors[]="File is not an image";
  68. }
  69. $image=new Image($filename,$tempFile);
  70. $image->ImageTitle=$imageTitle;
  71. $image->ImageDescription=$imageDesc;
  72. if (count($errors)==0){
  73. $image->Save();
  74. header("location: /gallery/manage/");
  75. return;
  76. }
  77. return $this->Manage(array("errors"=>$errors,"image"=>$image));
  78. }
  79. public function JsonLoadAlbum($albumId) {
  80. $repo=new ImageRepository();
  81. $json='[';
  82. $images=$repo->GetImagesByAlbum($albumId);
  83. foreach ($images as $image)
  84. $json.='{"ImageId":"'.$image->ImageId.'","ImageTitle":"'.$image->ImageTitle.'","Path":"'.$image->Path.'","ThumbnailPath":"'.$image->ThumbnailPath.'"},';
  85. $json=trim($json,',');
  86. $json.=']';
  87. return $json;
  88. //return json_encode($images);
  89. }
  90. }