diff options
Diffstat (limited to 'core/helpers/photo.php')
| -rw-r--r-- | core/helpers/photo.php | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/core/helpers/photo.php b/core/helpers/photo.php new file mode 100644 index 00000000..e796ef03 --- /dev/null +++ b/core/helpers/photo.php @@ -0,0 +1,65 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/** + * This is the API for handling photos. + * + * Note: by design, this class does not do any permission checking. + */ +class Photo_Core { + /** + * Create a new photo. + * @param integer $parent_id id of parent album + * @param string $filename path to the photo file on disk + * @param string $name the filename to use for this photo in the album + * @param integer $title the title of the new photo + * @param string $description (optional) the longer description of this photo + * @return Item_Model + */ + static function create($parent_id, $filename, $name, $title, $description=null) { + $photo = ORM::factory("item"); + $photo->type = "photo"; + $photo->title = $title; + $photo->description = $description; + $photo->name = $name; + + $pi = pathinfo(basename($filename)); + if (empty($pi["extension"])) { + throw new Exception("@todo UNKNOWN_FILE_TYPE"); + } + + while (ORM::Factory("item") + ->where("parent_id", $parent_id) + ->where("name", $photo->name) + ->find()->id) { + $photo->name = rand() . "." . $pi["extension"]; + } + + $photo->add_to_parent($parent_id); + + copy($filename, $photo->path()); + + /** @todo: parameterize these values */ + $image = Image::factory($filename); + $image->resize(200, 140, Image::WIDTH)->save($photo->thumbnail_path()); + $image->resize(800, 600, Image::WIDTH)->save($photo->resize_path()); + return $photo; + } +} |
