diff options
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 61 |
1 files changed, 27 insertions, 34 deletions
@@ -1176,48 +1176,41 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history) | |||
1176 | die('Wrong token.'); | 1176 | die('Wrong token.'); |
1177 | } | 1177 | } |
1178 | 1178 | ||
1179 | $count = 0; | ||
1180 | // Delete a tag: | ||
1181 | if (isset($_POST['deletetag']) && !empty($_POST['fromtag'])) { | 1179 | if (isset($_POST['deletetag']) && !empty($_POST['fromtag'])) { |
1182 | $needle = trim($_POST['fromtag']); | 1180 | $delete = true; |
1183 | // True for case-sensitive tag search. | 1181 | } else if (isset($_POST['renametag']) && !empty($_POST['fromtag']) && !empty($_POST['totag'])) { |
1184 | $linksToAlter = $LINKSDB->filterSearch(array('searchtags' => $needle), true); | 1182 | $delete = false; |
1185 | foreach($linksToAlter as $key=>$value) | 1183 | } else { |
1186 | { | 1184 | $PAGE->renderPage('changetag'); |
1187 | $tags = explode(' ',trim($value['tags'])); | ||
1188 | if (($pos = array_search($needle,$tags)) !== false) { | ||
1189 | unset($tags[$pos]); // Remove tag. | ||
1190 | $value['tags']=trim(implode(' ',$tags)); | ||
1191 | $LINKSDB[$key]=$value; | ||
1192 | $history->updateLink($LINKSDB[$key]); | ||
1193 | ++$count; | ||
1194 | } | ||
1195 | } | ||
1196 | $LINKSDB->save($conf->get('resource.page_cache')); | ||
1197 | echo '<script>alert("Tag was removed from '.$count.' links.");document.location=\'?do=changetag\';</script>'; | ||
1198 | exit; | 1185 | exit; |
1199 | } | 1186 | } |
1200 | 1187 | ||
1201 | // Rename a tag: | 1188 | $count = 0; |
1202 | if (isset($_POST['renametag']) && !empty($_POST['fromtag']) && !empty($_POST['totag'])) { | 1189 | $needle = trim($_POST['fromtag']); |
1203 | $needle = trim($_POST['fromtag']); | 1190 | // True for case-sensitive tag search. |
1204 | // True for case-sensitive tag search. | 1191 | $linksToAlter = $LINKSDB->filterSearch(array('searchtags' => $needle), true); |
1205 | $linksToAlter = $LINKSDB->filterSearch(array('searchtags' => $needle), true); | 1192 | foreach($linksToAlter as $key => $value) |
1206 | foreach($linksToAlter as $key=>$value) { | 1193 | { |
1207 | $tags = preg_split('/\s+/', trim($value['tags'])); | 1194 | $tags = explode(' ',trim($value['tags'])); |
1208 | // Replace tags value. | 1195 | if (($pos = array_search($needle,$tags)) !== false) { |
1209 | if (($pos = array_search($needle,$tags)) !== false) { | 1196 | if ($delete) { |
1197 | unset($tags[$pos]); // Remove tag. | ||
1198 | } else { | ||
1210 | $tags[$pos] = trim($_POST['totag']); | 1199 | $tags[$pos] = trim($_POST['totag']); |
1211 | $value['tags'] = implode(' ', array_unique($tags)); | ||
1212 | $LINKSDB[$key] = $value; | ||
1213 | $history->updateLink($LINKSDB[$key]); | ||
1214 | ++$count; | ||
1215 | } | 1200 | } |
1201 | $value['tags'] = trim(implode(' ', array_unique($tags))); | ||
1202 | $LINKSDB[$key]=$value; | ||
1203 | $history->updateLink($LINKSDB[$key]); | ||
1204 | ++$count; | ||
1216 | } | 1205 | } |
1217 | $LINKSDB->save($conf->get('resource.page_cache')); // Save to disk. | ||
1218 | echo '<script>alert("Tag was renamed in '.$count.' links.");document.location=\'?searchtags='.urlencode(escape($_POST['totag'])).'\';</script>'; | ||
1219 | exit; | ||
1220 | } | 1206 | } |
1207 | $LINKSDB->save($conf->get('resource.page_cache')); | ||
1208 | $redirect = $delete ? 'do=changetag' : 'searchtags='. urlencode(escape($_POST['totag'])); | ||
1209 | $alert = $delete | ||
1210 | ? sprintf(t('The tag was removed from %d links.'), $count) | ||
1211 | : sprintf(t('The tag was renamed in %d links.'), $count); | ||
1212 | echo '<script>alert("'. $alert .'");document.location=\'?'. $redirect .'\';</script>'; | ||
1213 | exit; | ||
1221 | } | 1214 | } |
1222 | 1215 | ||
1223 | // -------- User wants to add a link without using the bookmarklet: Show form. | 1216 | // -------- User wants to add a link without using the bookmarklet: Show form. |