diff options
Diffstat (limited to 'modules/gallery/helpers/gallery_quick.php')
| -rw-r--r-- | modules/gallery/helpers/gallery_quick.php | 146 | 
1 files changed, 146 insertions, 0 deletions
| diff --git a/modules/gallery/helpers/gallery_quick.php b/modules/gallery/helpers/gallery_quick.php new file mode 100644 index 00000000..19ed23dc --- /dev/null +++ b/modules/gallery/helpers/gallery_quick.php @@ -0,0 +1,146 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2009 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. + */ +class gallery_quick_Core { +  static function get_quick_buttons($item, $page_type) { +    $buttons = self::buttons($item, $page_type); +    foreach (module::active() as $module) { +      if ($module->name == "gallery") { +        continue; +      } +      $class_name = "{$module->name}_quick"; +      if (method_exists($class_name, "buttons")) { +        $module_buttons = call_user_func(array($class_name, "buttons"), $item, $page_type); +        foreach (array("left", "center", "right", "additional") as $position) { +          if (!empty($module_buttons[$position])) { +            $buttons[$position] = array_merge($buttons[$position], $module_buttons[$position]); +          } +        } +      } +    } + +    $sorted_buttons->main = array(); +    foreach (array("left", "center", "right") as $position) { +      $sorted_buttons->main = array_merge($sorted_buttons->main, $buttons[$position]); +    } + +    $sorted_buttons->additional = $buttons["additional"]; +    $max_display = empty($sorted_buttons->additional) ? 6 : 5; +    if (count($sorted_buttons->main) >= $max_display) { +      $to_move = array_slice($sorted_buttons->main, 5); +      $sorted_buttons->additional = array_merge($to_move, $sorted_buttons->additional); +      for ($i = count($sorted_buttons->main); $i >= 5; $i--) { +        unset($sorted_buttons->main[$i]); +      } +    } + +    Kohana::log("error", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); +    Kohana::log("error", Kohana::debug($sorted_buttons)); +    Kohana::log("error", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"); +    return $sorted_buttons; +  } + +  static function buttons($item, $page_type) { +    $elements = array("left" => array(), "center" => array(), "right" => array(), +                      "additional"  => array()); +    switch ($item->type) { +    case "movie": +      $edit_title = t("Edit this movie"); +      $move_title = t("Move this movie to another album"); +      $cover_title = t("Choose this movie as the album cover"); +      $delete_title = t("Delete this movie"); +      break; +    case "album": +      $edit_title = t("Edit this album"); +      $move_title = t("Move this album to another album"); +      $cover_title = t("Choose this album as the album cover"); +      $delete_title = t("Delete this album"); +      break; +    default: +      $edit_title = t("Edit this photo"); +      $move_title = t("Move this photo to another album"); +      $cover_title = t("Choose this photo as the album cover"); +      $delete_title = t("Delete this photo"); +      break; +    } + +    $csrf = access::csrf_token(); +    $elements["left"][] = (object)array( +      "title" => $edit_title, +      "class" => "gDialogLink gButtonLink", +      "icon" => "ui-icon-pencil", +      "href" => url::site("quick/form_edit/$item->id?page_type=$page_type")); +    if ($item->is_photo() && graphics::can("rotate")) { +      $elements["left"][] = +        (object)array( +          "title" => t("Rotate 90 degrees counter clockwise"), +          "class" => "gButtonLink", +          "icon" => "ui-icon-rotate-ccw", +          "href" => url::site("quick/form_edit/$item->id/ccw?csrf=$csrf&?page_type=$page_type")); +      $elements["left"][] = +        (object)array( +          "title" => t("Rotate 90 degrees clockwise"), +          "class" => "gButtonLink", +          "icon" => "ui-icon-rotate-cw", +          "href" => url::site("quick/form_edit/$item->id/cw?csrf=$csrf&page_type=$page_type")); +    } + +    // Don't move photos from the photo page; we don't yet have a good way of redirecting after move +    if ($page_type == "album") { +      $elements["left"][] = (object)array( +        "title" => $move_title, +        "class" => "gDialogLink gButtonLink", +        "icon" => "ui-icon-folder-open", +        "href" => url::site("move/browse/$item->id")); +    } + +    if (access::can("edit", $item->parent())) { +      $disabledState = +        $item->type == "album" && empty($item->album_cover_item_id) ? " ui-state-disabled" : ""; +      $elements["right"][] = (object)array( +        "title" => $cover_title, +        "class" => "gButtonLink{$disabledState}", +        "icon" => "ui-icon-star", +        "href" => url::site("quick/make_album_cover/$item->id?csrf=$csrf&page_type=$page_type")); + +      $elements["right"][] = (object)array( +        "title" => $delete_title, +        "class" => "gButtonLink", +        "icon" => "ui-icon-trash", +        "id" => "gQuickDelete", +        "href" => url::site("quick/form_delete/$item->id?csrf=$csrf&page_type=$page_type")); +    } + +    if ($item->is_album()) { +      $elements["additional"][] = (object)array( +        "title" => t("Add a photo"), +        "class" => "add_item gDialogLink", +        "href" => url::site("simple_uploader/app/$item->id")); +      $elements["additional"][] = (object)array( +        "title" => t("Add an album"), +        "class" => "add_album gDialogLink", +        "href" => url::site("form/add/albums/$item->id?type=album")); +      $elements["additional"][] = (object)array( +        "title" => t("Edit permissions"), +        "class" => "permissions gDialogLink", +        "href" => url::site("permissions/browse/$item->id")); +    } +    return $elements; +  } +} | 
