aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2010-11-08 14:37:58 -0800
committerFriendika <info@friendika.com>2010-11-08 14:37:58 -0800
commit01f171bce71126f60cf0ef9b447006b34c5a3891 (patch)
tree2017a67a9ff9dee10e2ef2b4283da7db6cc31945
parentefcff9145605847f794009b0fe6c8bb4879a86a3 (diff)
downloadvolse-hubzilla-01f171bce71126f60cf0ef9b447006b34c5a3891.tar.gz
volse-hubzilla-01f171bce71126f60cf0ef9b447006b34c5a3891.tar.bz2
volse-hubzilla-01f171bce71126f60cf0ef9b447006b34c5a3891.zip
ability to remove individual photo tags
-rw-r--r--mod/photos.php2
-rw-r--r--mod/tagrm.php99
-rw-r--r--view/theme/default/style.css18
3 files changed, 118 insertions, 1 deletions
diff --git a/mod/photos.php b/mod/photos.php
index 8957751cf..97587cbb5 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -850,6 +850,8 @@ function photos_content(&$a) {
$tag_str .= bbcode($t);
}
$o .= $tag_str . '</div>';
+ if($cmd === 'edit')
+ $o .= '<div id="tag-remove"><a href="' . $a->get_baseurl() . '/tagrm/' . $link_item['id'] . '">' . t('[Remove any tag]') . '</a></div>';
}
diff --git a/mod/tagrm.php b/mod/tagrm.php
new file mode 100644
index 000000000..99d22f3d2
--- /dev/null
+++ b/mod/tagrm.php
@@ -0,0 +1,99 @@
+<?php
+
+require_once('bbcode.php');
+
+function tagrm_post(&$a) {
+
+ if(! local_user())
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+
+ if((x($_POST,'submit')) && ($_POST['submit'] === t('Cancel')))
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ $tag = ((x($_POST,'tag')) ? hex2bin(notags(trim($_POST['tag']))) : '');
+ $item = ((x($_POST,'item')) ? intval($_POST['item']) : 0 );
+
+ $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($item),
+ intval(local_user())
+ );
+
+ if(! count($r))
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ $arr = explode(',', $r[0]['tag']);
+ for($x = 0; $x < count($arr); $x ++) {
+ if($arr[$x] === $tag) {
+ unset($arr[$x]);
+ break;
+ }
+ }
+
+ $tag_str = implode(',',$arr);
+
+ q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ dbesc($tag_str),
+ intval($item),
+ intval(local_user())
+ );
+
+ notice( t('Tag removed') . EOL );
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ // NOTREACHED
+
+}
+
+
+
+function tagrm_content(&$a) {
+
+ $o = '';
+
+ if(! local_user()) {
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+ // NOTREACHED
+ }
+
+ $item = (($a->argc > 1) ? intval($a->argv[1]) : 0);
+ if(! $item) {
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+ // NOTREACHED
+ }
+
+
+ $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($item),
+ intval(local_user())
+ );
+
+ if(! count($r))
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ $arr = explode(',', $r[0]['tag']);
+
+ if(! count($arr))
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ $o .= '<h3>' . t('Remove Item Tag') . '</h3>';
+
+ $o .= '<p id="tag-remove-desc">' . t('Select a tag to remove: ') . '</p>';
+
+ $o .= '<form id="tagrm" action="tagrm" method="post" >';
+ $o .= '<input type="hidden" name="item" value="' . $item . '" />';
+ $o .= '<ul>';
+
+
+ foreach($arr as $x) {
+ $o .= '<li><input type="checkbox" name="tag" value="' . bin2hex($x) . '" >' . bbcode($x) . '</input></li>';
+ }
+
+ $o .= '</ul>';
+ $o .= '<input id="tagrm-submit" type="submit" name="submit" value="' . t('Remove') .'" />';
+ $o .= '<input id="tagrm-cancel" type="submit" name="submit" value="' . t('Cancel') .'" />';
+ $o .= '</form>';
+
+ return $o;
+
+} \ No newline at end of file
diff --git a/view/theme/default/style.css b/view/theme/default/style.css
index 5f82bff62..249fb2a95 100644
--- a/view/theme/default/style.css
+++ b/view/theme/default/style.css
@@ -1796,4 +1796,20 @@ a.mail-list-link {
}
.contact-block-link {
float: left;
-} \ No newline at end of file
+}
+
+#tag-remove {
+ margin-bottom: 15px;
+}
+
+#tagrm li {
+ margin-bottom: 10px;
+}
+
+#tagrm-submit, #tagrm-cancel {
+ margin-top: 25px;
+}
+
+#tagrm-cancel {
+ margin-left: 15px;
+}