From 4b066e04f619c2c6f8d383daee9ceab49f39acdc Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 9 Jul 2012 22:08:25 -0700 Subject: making tags work --- mod/filer.php | 18 ++++++++++++------ mod/filerm.php | 14 ++++++++++---- mod/network.php | 15 ++++++++++++++- mod/profile.php | 16 ++++++++++++++-- mod/tagrm.php | 4 ++-- 5 files changed, 52 insertions(+), 15 deletions(-) (limited to 'mod') diff --git a/mod/filer.php b/mod/filer.php index c0cca9e6d..adc6245e1 100644 --- a/mod/filer.php +++ b/mod/filer.php @@ -18,12 +18,18 @@ function filer_content(&$a) { if($item_id && strlen($term)){ // file item - file_tag_save_file(local_user(),$item_id,$term); - } else { - // return filer dialog - $filetags = get_pconfig(local_user(),'system','filetags'); - $filetags = file_tag_file_to_list($filetags,'file'); - $filetags = explode(",", $filetags); + store_item_tag(local_user(),$item_id,TERM_OBJ_POST,TERM_FILE,$term,''); + } + else { + $filetags = array(); + $r = q("select distinct(term) from term where uid = %d and type = %d order by term asc", + intval(local_user()), + intval(TERM_FILE) + ); + if(count($r)) { + foreach($r as $rr) + $filetags[] = $rr['term']; + } $tpl = get_markup_template("filer_dialog.tpl"); $o = replace_macros($tpl, array( '$field' => array('term', t("Save to Folder:"), '', '', $filetags, t('- select -')), diff --git a/mod/filerm.php b/mod/filerm.php index d2b57d447..f70816266 100644 --- a/mod/filerm.php +++ b/mod/filerm.php @@ -6,8 +6,8 @@ function filerm_content(&$a) { killme(); } - $term = unxmlify(trim($_GET['term'])); - $cat = unxmlify(trim($_GET['cat'])); + $term = trim($_GET['term']); + $cat = trim($_GET['cat']); $category = (($cat) ? true : false); if($category) @@ -17,8 +17,14 @@ function filerm_content(&$a) { logger('filerm: tag ' . $term . ' item ' . $item_id); - if($item_id && strlen($term)) - file_tag_unsave_file(local_user(),$item_id,$term, $category); + if($item_id && strlen($term)) { + $r = q("delete from term where uid = %d and type = %d and oid = %d and $term = '%s' limit 1", + intval(local_user()), + intval(($category) ? FILE_CATEGORY : FILE_HASHTAG), + intval($item_id), + dbesc($term) + ); + } if(x($_SESSION,'return_url')) goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); diff --git a/mod/network.php b/mod/network.php index 35a981512..5ce7a9b57 100644 --- a/mod/network.php +++ b/mod/network.php @@ -643,7 +643,20 @@ function network_content(&$a, $update = 0) { dbesc($parents_str) ); - $items = conv_sort($items,$ordering); + $tag_finder = array(); + if(count($items)) + foreach($items as $item) + if(! in_array($item['item_id'],$tag_finder)) + $tag_finder[] = $item['item_id']; + $tag_finder_str = implode(', ', $tag_finder); + + $tags = q("select * from term where oid in ( %s ) and otype = %d", + dbesc($tag_finder_str), + intval(TERM_OBJ_POST) + ); + + $items = conv_sort($items,$tags,$ordering); + } else { $items = array(); diff --git a/mod/profile.php b/mod/profile.php index 24e03d6ea..b53639c35 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -279,8 +279,20 @@ function profile_content(&$a, $update = 0) { intval($a->profile['profile_uid']), dbesc($parents_str) ); - - $items = conv_sort($items,'created'); + + $tag_finder = array(); + if(count($items)) + foreach($items as $item) + if(! in_array($item['item_id'],$tag_finder)) + $tag_finder[] = $item['item_id']; + $tag_finder_str = implode(', ', $tag_finder); + $tags = q("select * from term where oid in ( '%s' ) and otype = %d", + dbesc($tag_finder), + intval(TERM_OBJ_POST) + ); + + $items = conv_sort($items,$tags,'created'); + } else { $items = array(); } diff --git a/mod/tagrm.php b/mod/tagrm.php index 5041145cc..957cf0d71 100644 --- a/mod/tagrm.php +++ b/mod/tagrm.php @@ -11,8 +11,8 @@ function tagrm_post(&$a) { 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 ); + $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), -- cgit v1.2.3