diff options
author | redmatrix <git@macgirvin.com> | 2016-04-18 20:38:38 -0700 |
---|---|---|
committer | redmatrix <git@macgirvin.com> | 2016-04-18 20:38:38 -0700 |
commit | 2a4e8972e0edfa3156d9ce54d68ce0e54c0ec289 (patch) | |
tree | 2376d950ba2bdc7753336a3e2b94865c95c238f2 /Zotlabs/Module/Tagrm.php | |
parent | 2a61817bad96526994c0499f1fc0a843a9cc9405 (diff) | |
download | volse-hubzilla-2a4e8972e0edfa3156d9ce54d68ce0e54c0ec289.tar.gz volse-hubzilla-2a4e8972e0edfa3156d9ce54d68ce0e54c0ec289.tar.bz2 volse-hubzilla-2a4e8972e0edfa3156d9ce54d68ce0e54c0ec289.zip |
module updates
Diffstat (limited to 'Zotlabs/Module/Tagrm.php')
-rw-r--r-- | Zotlabs/Module/Tagrm.php | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/Zotlabs/Module/Tagrm.php b/Zotlabs/Module/Tagrm.php new file mode 100644 index 000000000..81ae30aa5 --- /dev/null +++ b/Zotlabs/Module/Tagrm.php @@ -0,0 +1,147 @@ +<?php +namespace Zotlabs\Module; + +require_once('include/bbcode.php'); + + +class Tagrm extends \Zotlabs\Web\Controller { + + function post() { + + if(! local_channel()) + goaway(z_root() . '/' . $_SESSION['photo_return']); + + + if((x($_POST,'submit')) && ($_POST['submit'] === t('Cancel'))) + goaway(z_root() . '/' . $_SESSION['photo_return']); + + $tag = ((x($_POST,'tag')) ? 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_channel()) + ); + + if(! $r) + goaway(z_root() . '/' . $_SESSION['photo_return']); + + $r = fetch_post_tags($r,true); + + $item = $r[0]; + $new_tags = array(); + + if($item['term']) { + for($x = 0; $x < count($item['term']); $x ++) { + if($item['term'][$x]['term'] !== hex2bin($tag)) + $new_tags[] = $item['term'][$x]; + } + } + + if($new_tags) + $item['term'] = $new_tags; + else + unset($item['term']); + + item_store_update($item); + + info( t('Tag removed') . EOL ); + goaway(z_root() . '/' . $_SESSION['photo_return']); + + // NOTREACHED + + } + + + + function get() { + + if(! local_channel()) { + goaway(z_root() . '/' . $_SESSION['photo_return']); + // NOTREACHED + } + + // remove tag on the fly if item and tag are provided + if((argc() == 4) && (argv(1) === 'drop') && intval(argv(2))) { + + $item = intval(argv(2)); + $tag = argv(3); + + $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval($item), + intval(local_channel()) + ); + + if(! $r) + goaway(z_root() . '/' . $_SESSION['photo_return']); + + $r = fetch_post_tags($r,true); + + $item = $r[0]; + + $new_tags = array(); + + if($item['term']) { + for($x = 0; $x < count($item['term']); $x ++) { + if($item['term'][$x]['term'] !== hex2bin($tag)) + $new_tags[] = $item['term'][$x]; + } + } + + if($new_tags) + $item['term'] = $new_tags; + else + unset($item['term']); + + item_store_update($item); + + info( t('Tag removed') . EOL ); + goaway(z_root() . '/' . $_SESSION['photo_return']); + + } + + //if we got only the item print a list of tags to select + if((argc() == 3) && (argv(1) === 'drop') && intval(argv(2))) { + + $o = ''; + + $item = intval(argv(2)); + + $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval($item), + intval(local_channel()) + ); + + if(! $r) + goaway(z_root() . '/' . $_SESSION['photo_return']); + + $r = fetch_post_tags($r,true); + + if(! count($r[0]['term'])) + goaway(z_root() . '/' . $_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($r[0]['term'] as $x) { + $o .= '<li><input type="checkbox" name="tag" value="' . bin2hex($x['term']) . '" >' . bbcode($x['term']) . '</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; + + } + + } + +} |