From ed9f10872240231125007cf32b95007281558cac Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 9 Dec 2013 21:20:55 -0800 Subject: [PATCH] comanchify the savedsearch widget --- doc/Features.md | 4 ++ include/text.php | 14 +++++++ include/widgets.php | 83 +++++++++++++++++++++++++++++++++++++ mod/network.php | 6 +-- view/tpl/saved_searches.tpl | 14 +++++++ 5 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 view/tpl/saved_searches.tpl diff --git a/doc/Features.md b/doc/Features.md index addc57704..184652742 100644 --- a/doc/Features.md +++ b/doc/Features.md @@ -15,6 +15,10 @@ The ability to create multiple profiles which are visible only to specific perso Provides the ability to use web page design feaures and create custom webpages from your own content and also to design the pages with page layouts, custom menus, and content blocks. +**Private Notes** + +On pages where it is available (your matrix page and personal web pages) provide a "widget" to create and store personal reminders and notes. + **Enhanced Photo Albums** Provides a photo album viewer that is a bit prettier than the normal interface. diff --git a/include/text.php b/include/text.php index f425690ba..aa23f96b0 100755 --- a/include/text.php +++ b/include/text.php @@ -741,6 +741,20 @@ function search($s,$id='search-box',$url='/search',$save = false) { } +function searchbox($s,$id='search-box',$url='/search',$save = false) { + $a = get_app(); + $o = '
'; + $o .= '
'; + $o .= ''; + $o .= ''; + $o .= ''; + if(feature_enabled(local_user(),'savedsearch')) + $o .= ''; + $o .= '
'; + return $o; +} + + function valid_email($x){ if(get_config('system','disable_email_validation')) diff --git a/include/widgets.php b/include/widgets.php index 3534c3978..e64920cdc 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -152,3 +152,86 @@ function widget_notes($arr) { )); return $o; } + + +function widget_savedsearch($arr) { + if((! local_user()) || (! feature_enabled(local_user(),'savedsearch'))) + return ''; + + $a = get_app(); + + $search = ((x($_GET,'search')) ? $_GET['search'] : ''); + + if(x($_GET,'searchsave') && $search) { + $r = q("select * from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1", + intval(local_user()), + intval(TERM_SAVEDSEARCH), + dbesc($search) + ); + if(! $r) { + q("insert into `term` ( `uid`,`type`,`term` ) values ( %d, %d, '%s') ", + intval(local_user()), + intval(TERM_SAVEDSEARCH), + dbesc($search) + ); + } + } + + if(x($_GET,'searchremove') && $search) { + q("delete from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1", + intval(local_user()), + intval(TERM_SAVEDSEARCH), + dbesc($search) + ); + $search = ''; + } + + + + $srchurl = $a->query_string; + + $srchurl = rtrim(preg_replace('/searchsave\=[^\&].*?(\&|$)/is','',$srchurl),'&'); + $hasq = ((strpos($srchurl,'?') !== false) ? true : false); + $srchurl = rtrim(preg_replace('/searchremove\=[^\&].*?(\&|$)/is','',$srchurl),'&'); + $hasq = ((strpos($srchurl,'?') !== false) ? true : false); + + $srchurl = rtrim(preg_replace('/search\=[^\&].*?(\&|$)/is','',$srchurl),'&'); + $hasq = ((strpos($srchurl,'?') !== false) ? true : false); + + $o = ''; + + $r = q("select `tid`,`term` from `term` WHERE `uid` = %d and `type` = %d ", + intval(local_user()), + intval(TERM_SAVEDSEARCH) + ); + + $saved = array(); + + if(count($r)) { + foreach($r as $rr) { + + $saved[] = array( + 'id' => $rr['tid'], + 'term' => $rr['term'], + 'dellink' => z_root() . '/' . $srchurl . (($hasq) ? '' : '?f=') . '&searchremove=1&search=' . urlencode($rr['term']), + 'srchlink' => z_root() . '/' . $srchurl . (($hasq) ? '' : '?f=') . '&search=' . urlencode($rr['term']), + 'displayterm' => htmlspecialchars($rr['term']), + 'encodedterm' => urlencode($rr['term']), + 'delete' => t('Remove term'), + 'selected' => ($search==$rr['term']), + ); + } + } + + + $tpl = get_markup_template("saved_searches.tpl"); + $o = replace_macros($tpl, array( + '$title' => t('Saved Searches'), + '$add' => t('add'), + '$searchbox' => searchbox('','netsearch-box',$srchurl . (($hasq) ? '' : '?f='),true), + '$saved' => $saved, + )); + + return $o; + +} diff --git a/mod/network.php b/mod/network.php index 13092d47d..6c9cef11e 100644 --- a/mod/network.php +++ b/mod/network.php @@ -24,7 +24,7 @@ function network_init(&$a) { $search = ((x($_GET,'search')) ? $_GET['search'] : ''); - +/* if(x($_GET,'save') && $search) { $r = q("select * from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1", intval(local_user()), @@ -46,13 +46,13 @@ function network_init(&$a) { dbesc($search) ); } - +*/ require_once('include/widgets.php'); $a->set_widget('collections',widget_collections(array())); $a->set_widget('archives',posted_date_widget($a->get_baseurl() . '/network',local_user(),false)); $a->set_widget('suggestions',widget_suggestions(array())); - $a->set_widget('savedsearch',saved_searches($search)); + $a->set_widget('savedsearch',widget_savedsearch(array())); $a->set_widget('filer',fileas_widget($a->get_baseurl(true) . '/network',(x($_GET, 'file') ? $_GET['file'] : ''))); $a->set_widget('notes',widget_notes(array())); diff --git a/view/tpl/saved_searches.tpl b/view/tpl/saved_searches.tpl new file mode 100644 index 000000000..bdff72ba1 --- /dev/null +++ b/view/tpl/saved_searches.tpl @@ -0,0 +1,14 @@ +
+ + {{$searchbox}} + + +
+