]> git.mxchange.org Git - friendica.git/commitdiff
backend for "save to file" feature
authorfriendica <info@friendica.com>
Mon, 12 Mar 2012 03:19:56 +0000 (20:19 -0700)
committerfriendica <info@friendica.com>
Mon, 12 Mar 2012 03:19:56 +0000 (20:19 -0700)
include/text.php
mod/network.php

index 5ad0154d7a3e3fc3aeb257cab83d53231d818144..08b2b8487604c2d5d2a6351514a89888c3b272d0 100644 (file)
@@ -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
index b04a7b489013153999a8a9d47c21d7458580e8c3..861b5ab73d9e1cadc985b098532ab3542601bc68 100755 (executable)
@@ -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'];