comanchify mod_search - we've got three modules left to Comanchify: admin, directory and message - each of which introduces "interesting challenges"

This commit is contained in:
friendica 2013-12-20 01:39:42 -08:00
parent 916f3e9afc
commit a084a3fa47
4 changed files with 1121 additions and 1260 deletions

View File

@ -1,76 +1,8 @@
<?php
function search_saved_searches() {
if(! feature_enabled(local_user(),'savedsearch'))
return '';
$o = '';
$r = q("select `tid`,`term` from `term` WHERE `uid` = %d and type = %d",
intval(local_user()),
intval(TERM_SAVEDSEARCH)
);
if(count($r)) {
$o .= '<div id="saved-search-list" class="widget">';
$o .= '<h3>' . t('Saved Searches') . '</h3>' . "\r\n";
$o .= '<ul id="saved-search-ul">' . "\r\n";
foreach($r as $rr) {
$o .= '<li class="saved-search-li clear"><a href="search/?f=&remove=1&search=' . rawurlencode($rr['term']) . '" title="' . t('Remove term') . '" onclick="return confirmDelete();"><i class="icon-remove drop-icons"></i></a> <a href="search/?f=&search=' . $rr['term'] . '" class="savedsearchterm" >' . htmlspecialchars($rr['term'], ENT_COMPAT,'UTF-8') . '</a></li>' . "\r\n";
}
$o .= '</ul><div class="clear"></div></div>' . "\r\n";
}
return $o;
}
function search_init(&$a) {
$search = ((x($_GET,'search')) ? trim(rawurldecode($_GET['search'])) : '');
if(local_user()) {
if(x($_GET,'save') && $search) {
$r = q("select `tid` from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1",
intval(local_user()),
intval(TERM_SAVEDSEARCH),
dbesc($search)
);
if(! count($r)) {
q("insert into `term` ( `uid`,`type`,`term` ) values ( %d, %d, '%s') ",
intval(local_user()),
intval(TERM_SAVEDSEARCH),
dbesc($search)
);
}
}
if(x($_GET,'remove') && $search) {
q("delete from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1",
intval(local_user()),
intval(TERM_SAVEDSEARCH),
dbesc($search)
);
}
$a->page['aside'] .= search_saved_searches();
}
else {
unset($_SESSION['theme']);
unset($_SESSION['mobile_theme']);
}
}
function search_post(&$a) {
if(x($_POST,'search'))
$a->data['search'] = $_POST['search'];
if(x($_REQUEST,'search'))
$a->data['search'] = $_REQUEST['search'];
}
@ -133,10 +65,7 @@ function search_content(&$a,$update = 0, $load = false) {
);
}
else {
if (get_config('system','use_fulltext_engine'))
$sql_extra = sprintf(" AND MATCH (`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) ", dbesc(protect_sprintf($search)));
else
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}
// Here is the way permissions work in the search module...
@ -144,9 +73,6 @@ function search_content(&$a,$update = 0, $load = false) {
// OR your own posts if you are a logged in member
// No items will be shown if the member has a blocked profile wall.
if((! $update) && (! $load)) {
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
@ -223,54 +149,12 @@ function search_content(&$a,$update = 0, $load = false) {
}
if($r) {
// $parents_str = ids_to_querystr($r,'item_id');
// $items = q("SELECT `item`.*, `item`.`id` AS `item_id`
// FROM `item`
// WHERE item_restrict = 0
// $sql_extra and parent in ( $parents_str ) "
// );
xchan_query($r);
$items = fetch_post_tags($r,true);
// $items = conv_sort($items,'created');
} else {
$items = array();
}
//logger('mod_search: items ' . count($items));
// $r = q("SELECT distinct(`item`.`mid`), `item`.*, `item`.`id` AS `item_id`,
// `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
// `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
// `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
// `user`.`nickname`
// FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
// LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
// WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
// AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 )
// OR `item`.`uid` = %d )
// AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
// $sql_extra
// group by `item`.`mid`
// ORDER BY `received` DESC LIMIT %d , %d ",
// intval(local_user()),
// intval($a->pager['start']),
// intval($a->pager['itemspage'])
// );
// $a = fetch_post_tags($a,true);
// if(! $items) {//
// info( t('No results.') . EOL);
// return $o;
// }
if($tag)
$o .= '<h2>Items tagged with: ' . htmlspecialchars($search, ENT_COMPAT,'UTF-8') . '</h2>';
else
@ -278,8 +162,6 @@ function search_content(&$a,$update = 0, $load = false) {
$o .= conversation($a,$items,'search',$update,'client');
// $o .= alt_pager($a,count($r));
return $o;
}

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
2013-12-19.531
2013-12-20.532

3
view/pdl/mod_search.pdl Normal file
View File

@ -0,0 +1,3 @@
[region=aside]
[widget=savedsearch][/widget]
[/region]