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]); } } 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/rotate/$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/rotate/$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" => "gDialogLink 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; } }