aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/edit.php87
-rw-r--r--actions/photos/album/sort.php (renamed from actions/sortalbum.php)2
-rw-r--r--languages/en.php2
-rw-r--r--lib/tidypics.php50
-rw-r--r--start.php14
-rw-r--r--views/default/forms/photos/album/sort.php2
-rw-r--r--views/default/object/album/full.php4
7 files changed, 66 insertions, 95 deletions
diff --git a/actions/edit.php b/actions/edit.php
deleted file mode 100644
index df65448c8..000000000
--- a/actions/edit.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/**
- * Tidypics edit album/image action
- *
- */
-
-// Make sure we're logged in
-gatekeeper();
-
-// Get input data
-$guid = (int) get_input('guid'); // guid of image or album
-$title = get_input('tidypicstitle');
-$body = get_input('tidypicsbody');
-$access = get_input('access_id');
-$tags = get_input('tidypicstags');
-$subtype = get_input('subtype');
-$cover = get_input('cover');
-if (is_array($cover)) {
- $cover = $cover[0];
-}
-
-$container_guid = get_input('container_guid');
-
-// Make sure we actually have permission to edit
-$entity = get_entity($guid);
-if (!$entity->canEdit()) {
- forward();
-}
-
-// Get owning user/group
-$owner = get_entity($entity->getOwner());
-
-// change access only if access is different from current
-if ($subtype == 'album' && $entity->access_id != $access) {
- $entity->access_id = $access;
-
- //get images from album and update access on image entities
- $images = elgg_get_entities(array(
- "type" => "object",
- "subtype" => "image",
- "container_guid" => $guid,
- "limit" => ELGG_ENTITIES_NO_VALUE,
- ));
- foreach ($images as $im) {
- $im->access_id = $access;
- $im->save();
- }
-}
-
-
-// Set its title and description appropriately
-$entity->title = $title;
-$entity->description = $body;
-
-// Before we can set metadata, we need to save the entity
-if (!$entity->save()) {
- register_error(elgg_echo("album:error"));
- $entity->delete();
- forward($_SERVER['HTTP_REFERER']); //failed, so forward to previous page
-}
-
-// Now let's add tags
-$tagarray = string_to_tag_array($tags);
-$entity->clearMetadata('tags');
-if (is_array($tagarray)) {
- $entity->tags = $tagarray;
-}
-
-//if cover meta is sent from image save as metadata
-if ($subtype == 'image' && $cover == elgg_echo('album:cover')) {
- $album = get_entity($container_guid);
- $album->setCoverImageGuid($entity->guid);
-}
-
-// Success message
-if ($subtype == 'album') {
- system_message(elgg_echo("album:edited"));
- // plugins can register to be told when a Tidypics album has been updated
- trigger_elgg_event('update', 'tp_album', $entity);
-} else {
- system_message(elgg_echo('images:edited'));
- // plugins can register to be told when a Tidypics image has been updated
- trigger_elgg_event('update', 'tp_image', $entity);
-}
-
-forward($entity->getURL());
diff --git a/actions/sortalbum.php b/actions/photos/album/sort.php
index 1aa0e052f..613747784 100644
--- a/actions/sortalbum.php
+++ b/actions/photos/album/sort.php
@@ -14,5 +14,5 @@ $guids = explode(',', $guids);
$album->setImageList($guids);
-system_message(sprintf(elgg_echo('tidypics:album:sorted'), $album->title));
+system_message(elgg_echo('tidypics:album:sorted', array($album->title)));
forward($album->getURL()); \ No newline at end of file
diff --git a/languages/en.php b/languages/en.php
index 2276e4b12..6f3de51ef 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -96,7 +96,7 @@ $english = array(
'album:addpix' => "Add photos to album",
'album:edit' => "Edit album",
'album:delete' => "Delete album",
- 'album:sort' => "Sort album",
+ 'album:sort' => "Sort",
'image:edit' => "Edit image",
'image:delete' => "Delete image",
'image:download' => "Download image",
diff --git a/lib/tidypics.php b/lib/tidypics.php
index 4e56ae829..7426a048e 100644
--- a/lib/tidypics.php
+++ b/lib/tidypics.php
@@ -141,6 +141,56 @@ function tidypics_is_upgrade_available() {
}
}
+/**
+ * This lists the photos in an album as sorted by metadata
+ *
+ * @param array $options
+ * @return string
+ */
+function tidypics_list_photos(array $options = array()) {
+ global $autofeed;
+ $autofeed = true;
+
+ $defaults = array(
+ 'offset' => (int) max(get_input('offset', 0), 0),
+ 'limit' => (int) max(get_input('limit', 10), 0),
+ 'full_view' => true,
+ 'list_type_toggle' => false,
+ 'pagination' => true,
+ );
+
+ $options = array_merge($defaults, $options);
+
+ $options['count'] = true;
+ $count = elgg_get_entities($options);
+
+ $album = get_entity($options['container_guid']);
+ if ($album) {
+ $guids = $album->getImageList();
+ $guids = array_slice($guids, $options['offset'], $options['limit']);
+ $options['guids'] = $guids;
+ unset($options['container_guid']);
+ }
+ $options['count'] = false;
+ $entities = elgg_get_entities($options);
+
+ $keys = array();
+ foreach ($entities as $entity) {
+ $keys[] = $entity->guid;
+ }
+ $entities = array_combine($keys, $entities);
+
+ $sorted_entities = array();
+ foreach ($guids as $guid) {
+ if (isset($entities[$guid])) {
+ $sorted_entities[] = $entities[$guid];
+ }
+ }
+
+ return elgg_view_entity_list($sorted_entities, $options);
+}
+
+
/*********************************************************************
* the functions below replace broken core functions or add functions
* that could/should exist in the core
diff --git a/start.php b/start.php
index 1df04876a..cebd033b0 100644
--- a/start.php
+++ b/start.php
@@ -88,13 +88,13 @@ function tidypics_init() {
// Register actions
$base_dir = elgg_get_plugins_path() . 'tidypics/actions/photos';
elgg_register_action("photos/album/save", "$base_dir/album/save.php");
+ elgg_register_action("photos/album/sort", "$base_dir/album/sort.php");
elgg_register_action("photos/delete", "$base_dir/delete.php");
elgg_register_action("photos/image/upload", "$base_dir/image/upload.php");
elgg_register_action("photos/image/save", "$base_dir/image/save.php");
elgg_register_action("photos/batch/edit", "$base_dir/batch/edit.php");
//register_action("tidypics/ajax_upload", true, "$base_dir/ajax_upload.php");
//register_action("tidypics/ajax_upload_complete", true, "$base_dir/ajax_upload_complete.php");
- //register_action("tidypics/sortalbum", false, "$base_dir/sortalbum.php");
elgg_register_action("photos/image/tag", "$base_dir/image/tag.php");
//register_action("tidypics/deletetag", false, "$base_dir/deletetag.php");
@@ -317,9 +317,19 @@ function tidypics_entity_menu_setup($hook, $type, $return, $params) {
'name' => 'slideshow',
'text' => elgg_echo('album:slideshow'),
'href' => $slideshow_link,
- 'priority' => 90,
+ 'priority' => 80,
);
$return[] = ElggMenuItem::factory($options);
+
+ if ($entity->canEdit()) {
+ $options = array(
+ 'name' => 'sort',
+ 'text' => elgg_echo('album:sort'),
+ 'href' => "photos/sort/" . $entity->getGUID(),
+ 'priority' => 90,
+ );
+ $return[] = ElggMenuItem::factory($options);
+ }
}
return $return;
diff --git a/views/default/forms/photos/album/sort.php b/views/default/forms/photos/album/sort.php
index 524112e0c..49bd016aa 100644
--- a/views/default/forms/photos/album/sort.php
+++ b/views/default/forms/photos/album/sort.php
@@ -21,7 +21,7 @@ echo '<ul id="tidypics-sort" class="elgg-gallery">';
foreach ($image_guids as $image_guid) {
$image = get_entity($image_guid);
$img = elgg_view('output/img', array(
- 'src' => $image->getSrcURL(),
+ 'src' => $image->getIconURL(),
));
echo "<li class=\"mam\" id=\"$image_guid\">$img</li>";
}
diff --git a/views/default/object/album/full.php b/views/default/object/album/full.php
index e350d2327..ceb8b97aa 100644
--- a/views/default/object/album/full.php
+++ b/views/default/object/album/full.php
@@ -48,9 +48,7 @@ if ($album->description) {
'class' => 'mbm',
));
}
-$body .= elgg_list_entities(array(
- 'type' => 'object',
- 'subtype' => 'image',
+$body .= tidypics_list_photos(array(
'container_guid' => $album->getGUID(),
'limit' => 16,
'full_view' => false,