diff options
author | Simon L'nu <simon.lnu@gmail.com> | 2012-05-05 20:08:19 -0400 |
---|---|---|
committer | Simon L'nu <simon.lnu@gmail.com> | 2012-05-05 20:08:19 -0400 |
commit | 0c4099966a5ac1f1ff5dc568a600aa57776fb752 (patch) | |
tree | f6c8a337eeae8ecc1848e319c9e5beb8c338d973 /include | |
parent | 250bf57e1e69670b956c1365dcb9ffa90800c05c (diff) | |
parent | e1ab3a93cc450ca52c7651ecca8cad8334e5f1ce (diff) | |
download | volse-hubzilla-0c4099966a5ac1f1ff5dc568a600aa57776fb752.tar.gz volse-hubzilla-0c4099966a5ac1f1ff5dc568a600aa57776fb752.tar.bz2 volse-hubzilla-0c4099966a5ac1f1ff5dc568a600aa57776fb752.zip |
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
* remotes/upstream/master:
diabook-theme: small fix
diabook-theme: twitter-box-update at right_aside
diabook-theme: can now set the twitter search term in theme-settings & small fixes
consolidate item deletion so we can fix orphaned categories and file_as tags.
DE: new email templates translated
workaround to clean up orphaned filetags
only show remove category to item owner
Option to set theme width added. Minor layout changes
* master:
Diffstat (limited to 'include')
-rw-r--r-- | include/items.php | 59 | ||||
-rw-r--r-- | include/text.php | 5 |
2 files changed, 35 insertions, 29 deletions
diff --git a/include/items.php b/include/items.php index a1dcdb6d8..e9df9b00c 100644 --- a/include/items.php +++ b/include/items.php @@ -3029,32 +3029,7 @@ function item_expire($uid,$days) { if($expire_items==0 && $item['type']!='note') continue; - - $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1", - dbesc(datetime_convert()), - dbesc(datetime_convert()), - intval($item['id']) - ); - - $r = q("DELETE FROM item_id where iid in (select id from item where parent = %d) and uid = %d", - intval($item['id']), - intval($uid) - ); - - $r = q("DELETE FROM sign where iid in (select id from item where parent = %d) and uid = %d", - intval($item['id']), - intval($uid) - ); - - // kill the kids - - $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ", - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc($item['parent-uri']), - intval($item['uid']) - ); - + drop_item($item['id'],false); } proc_run('php',"include/notifier.php","expire","$uid"); @@ -3116,6 +3091,25 @@ function drop_item($id,$interactive = true) { intval($item['id']) ); + // clean up categories and tags so they don't end up as orphans + + $matches = false; + $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true); + } + } + + $matches = false; + + $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false); + } + } + // If item is a link to a photo resource, nuke all the associated photos // (visitors will not have photo resources) // This only applies to photos uploaded from the photos page. Photos inserted into a post do not @@ -3139,6 +3133,17 @@ function drop_item($id,$interactive = true) { // ignore the result } + // clean up item_id and sign meta-data tables + + $r = q("DELETE FROM item_id where iid in (select id from item where parent = %d and uid = %d)", + intval($item['id']), + intval($item['uid']) + ); + + $r = q("DELETE FROM sign where iid in (select id from item where parent = %d and uid = %d)", + intval($item['id']), + intval($item['uid']) + ); // If it's the parent of a comment thread, kill all the kids @@ -3171,7 +3176,7 @@ function drop_item($id,$interactive = true) { } } $drop_id = intval($item['id']); - + // send the notification upstream/downstream as the case may be if(! $interactive) diff --git a/include/text.php b/include/text.php index 4ae5d1333..1b5b0afd4 100644 --- a/include/text.php +++ b/include/text.php @@ -930,7 +930,8 @@ function prepare_body($item,$attach = false) { foreach($matches as $mtch) { if(strlen($x)) $x .= ','; - $x .= xmlify(file_tag_decode($mtch[1])) . ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>'; + $x .= xmlify(file_tag_decode($mtch[1])) + . ((local_user() == $item['uid']) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : ''); } if(strlen($x)) $s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>'; @@ -1490,7 +1491,7 @@ function file_tag_unsave_file($uid,$item,$file,$cat = false) { intval($uid) ); - $r = q("select file from item where uid = %d " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')), + $r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')), intval($uid) ); |