aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-03-11 20:19:56 -0700
committerfriendica <info@friendica.com>2012-03-11 20:19:56 -0700
commit93058af4fcfa0c1dbe8398271c60513dea16338c (patch)
treec8f863d19bee59fb858c6daccde93ea567666fd0
parent18ef942f6213c43fdef98caad4b42f7015eca20c (diff)
downloadvolse-hubzilla-93058af4fcfa0c1dbe8398271c60513dea16338c.tar.gz
volse-hubzilla-93058af4fcfa0c1dbe8398271c60513dea16338c.tar.bz2
volse-hubzilla-93058af4fcfa0c1dbe8398271c60513dea16338c.zip
backend for "save to file" feature
-rw-r--r--include/text.php19
-rwxr-xr-xmod/network.php21
2 files changed, 33 insertions, 7 deletions
diff --git a/include/text.php b/include/text.php
index 5ad0154d7..08b2b8487 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1235,4 +1235,23 @@ function item_post_type($item) {
return t('post');
}
+// post categories and "save to file" use the same item.file table for storage.
+// We will differentiate the different uses by wrapping categories in angle brackets
+// and save to file categories in square brackets.
+// To do this we need to escape these characters if they appear in our tag.
+function file_tag_encode($s) {
+ return str_replace(array('<','>','[',']'),array('%3c','%3e','%5b','%5d'),$s);
+}
+
+function file_tag_decode($s) {
+ return str_replace(array('%3c','%3e','%5b','%5d'),array('<','>','[',']'),$s);
+}
+
+function file_tag_file_query($table,$s,$type = 'file') {
+ if($type == 'file')
+ $str = preg_quote( '[' . file_tag_encode($s) . ']' );
+ else
+ $str = preg_quote( '<' . file_tag_encode($s) . '>' );
+ return " AND " . (($table) ? dbesc($table) . '.' : '') . "file regexp '" . dbesc($str) . "' ";
+} \ No newline at end of file
diff --git a/mod/network.php b/mod/network.php
index b04a7b489..861b5ab73 100755
--- a/mod/network.php
+++ b/mod/network.php
@@ -52,13 +52,15 @@ function network_init(&$a) {
function saved_searches($search) {
$srchurl = '/network?f='
- . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
- . ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
+ . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
+ . ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
- . ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
- . ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
- . ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
- . ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '');
+ . ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
+ . ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
+ . ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
+ . ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
+ . ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '');
+ ;
$o = '';
@@ -226,6 +228,7 @@ function network_content(&$a, $update = 0) {
$nets = ((x($_GET,'nets')) ? $_GET['nets'] : '');
$cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0);
$cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
+ $file = ((x($_GET,'file')) ? $_GET['file'] : '');
if(($a->argc > 2) && $a->argv[2] === 'new')
$nouveau = true;
@@ -239,7 +242,7 @@ function network_content(&$a, $update = 0) {
}
}
- if(x($_GET,'search'))
+ if(x($_GET,'search') || x($_GET,'file'))
$nouveau = true;
if($cid)
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
@@ -358,6 +361,7 @@ function network_content(&$a, $update = 0) {
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
+ . ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
@@ -371,6 +375,9 @@ function network_content(&$a, $update = 0) {
dbesc('\\]' . preg_quote($search) . '\\[')
);
}
+ if(strlen($file)) {
+ $sql_extra .= file_tag_file_query('item',$file);
+ }
if($conv) {
$myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname'];