making tags work

This commit is contained in:
friendica
2012-07-09 22:08:25 -07:00
parent 8855cb9c28
commit 4b066e04f6
9 changed files with 163 additions and 76 deletions

View File

@@ -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 -')),

View File

@@ -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']);

View File

@@ -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();

View File

@@ -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();
}

View File

@@ -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),