From 8141c8221ea1f50d9842db4986b8906d146f2765 Mon Sep 17 00:00:00 2001 From: Retro_Guy Date: Mon, 21 Feb 2022 04:15:38 +0000 Subject: [PATCH] Search by email address when clicking username for search --- Rocksolid_Light/rocksolid/lib/message.inc.php | 2 +- Rocksolid_Light/rocksolid/lib/thread.inc.php | 26 ++------------ Rocksolid_Light/rocksolid/newsportal.php | 13 ++++--- Rocksolid_Light/rocksolid/overboard.php | 35 +++++++++++-------- Rocksolid_Light/rocksolid/search.php | 22 ++++++------ 5 files changed, 42 insertions(+), 56 deletions(-) diff --git a/Rocksolid_Light/rocksolid/lib/message.inc.php b/Rocksolid_Light/rocksolid/lib/message.inc.php index 59a2e92..dc1aacd 100644 --- a/Rocksolid_Light/rocksolid/lib/message.inc.php +++ b/Rocksolid_Light/rocksolid/lib/message.inc.php @@ -396,7 +396,7 @@ function show_header($head,$group,$local_poster=false) { echo ''; } if ($head->name != "") { - echo create_name_link($head->name); + echo create_name_link($head->name, $head->from); } else { if(isset($CONFIG['hide_email']) && $CONFIG['hide_email'] == true) { echo truncate_email($head->from); diff --git a/Rocksolid_Light/rocksolid/lib/thread.inc.php b/Rocksolid_Light/rocksolid/lib/thread.inc.php index 64071b2..e4f7f64 100644 --- a/Rocksolid_Light/rocksolid/lib/thread.inc.php +++ b/Rocksolid_Light/rocksolid/lib/thread.inc.php @@ -727,7 +727,7 @@ function thread_format_subject($c,$group,$highlightids=false) { $started = $fromoutput[0]; } $return.='
'; - $return.='

By: '.create_name_link($started).' on '.date("D, j M Y",$newdate).'

'; + $return.='

By: '.create_name_link($started, $c->from).' on '.date("D, j M Y",$newdate).'

'; $return.='
'; } return($return); @@ -848,29 +848,7 @@ function thread_format_lastmessage($c,$group='') { } else { $return.='

'.get_date_interval(date("D, j M Y H:i T",$c->date_thread)).'

'; } - $return.='

By: '.create_name_link($poster_name).'

'; -/* - // if the address the anonymous address, only return the name - if($c->from==$anonym_address) - return $c->name; - $return=""; - if($thread_show["authorlink"]) - $return .= ''; - if (trim($c->name)!="") { - $return .= htmlspecialchars(trim($c->name)); - } else { - if (isset($c->username)) { - $s = strpos($c->username,"%"); - if ($s != false) { - $return .= htmlspecialchars(substr($c->username,0,$s)); - } else { - $return .= htmlspecialchars($c->username); - } - } - } - if($thread_show["authorlink"]) - $return .= ""; -*/ + $return.='

By: '.create_name_link($poster_name, $name_from).'

'; return($return); } diff --git a/Rocksolid_Light/rocksolid/newsportal.php b/Rocksolid_Light/rocksolid/newsportal.php index e97783f..ae17eb8 100644 --- a/Rocksolid_Light/rocksolid/newsportal.php +++ b/Rocksolid_Light/rocksolid/newsportal.php @@ -679,7 +679,7 @@ function groups_show($gruppen) { $groupdisplay.=get_date_interval(date("D, j M Y H:i T",$lastarticleinfo->date)); $groupdisplay.='
'; $groupdisplay.='by: '; - $groupdisplay.=create_name_link($lastarticleinfo->name); + $groupdisplay.=create_name_link($lastarticleinfo->name, $lastarticleinfo->from); $groupdisplay.='
'; } $groupdisplay.="\n"; @@ -1275,13 +1275,16 @@ function format_log_date() { return date('M d H:i:s'); } -function create_name_link($name) { +function create_name_link($name, $data=null) { global $CONFIG; $name = preg_replace('/\"/', '', $name); - if(strpos($name, '...@') !== false && (isset($CONFIG['hide_email']) && $CONFIG['hide_email'] == true)) { - $return = ''.substr(htmlspecialchars($name),0,20).''; + if($data) { + $data = urlencode(base64_encode($data)); + } + if (strpos($name, '...@') !== false && (isset($CONFIG['hide_email']) && $CONFIG['hide_email'] == true)) { + $return = ''.substr(htmlspecialchars($name),0,20).''; } else { - $return = ''.substr(htmlspecialchars($name),0,20).''; + $return = ''.substr(htmlspecialchars($name),0,20).''; } return($return); } diff --git a/Rocksolid_Light/rocksolid/overboard.php b/Rocksolid_Light/rocksolid/overboard.php index f497440..a94f3ee 100755 --- a/Rocksolid_Light/rocksolid/overboard.php +++ b/Rocksolid_Light/rocksolid/overboard.php @@ -273,18 +273,25 @@ foreach($files as $article) { $isfrom = explode("From: ", $articlefrom[0]); $articlefrom[0] = $isfrom[1]; } - $fromoutput = explode("<", html_entity_decode($articlefrom[0])); - -// Just an email address? - if(strlen($fromoutput[0]) < 2) { - preg_match("/\<([^\)]*)\@/", html_entity_decode($articlefrom[0]), $fromaddress); - $fromoutput[0] = $fromaddress[1]; - } - if(strpos($fromoutput[0], "(")) { - preg_match("/\(([^\)]*)\)/", html_entity_decode($articlefrom[0]), $fromaddress); - $fromoutput[0] = $fromaddress[1]; - } - + $fromline = address_decode($articlefrom[0],"nirgendwo"); + if (!isset($fromline[0]["host"])) $fromline[0]["host"]=""; + $name_from=$fromline[0]["mailbox"]."@".$fromline[0]["host"]; + $name_username=$fromline[0]["mailbox"]; + if (!isset($fromline[0]["personal"])) { + $poster_name=$fromline[0]["mailbox"]; + } else { + $poster_name=$fromline[0]["personal"]; + } + if(trim($poster_name) == '') { + $fromoutput = explode("<", html_entity_decode($c->name)); + if(strlen($fromoutput[0]) < 1) { + $poster_name = $fromoutput[1]; + } else { + $poster_name = $fromoutput[0]; + } + } + $fromoutput[0] = $poster_name; + if(($results % 2) != 0){ $this_output = ''; } else { @@ -305,9 +312,9 @@ foreach($files as $article) { $poster_name = $fromoutput[0]; } if($local_poster) { - $this_output.= '

Posted: '.$date_interval.' by: '.create_name_link(mb_decode_mimeheader($poster_name)).'

'; + $this_output.= '

Posted: '.$date_interval.' by: '.create_name_link(mb_decode_mimeheader($poster_name), $name_from).'

'; } else { - $this_output.= '

Posted: '.$date_interval.' by: '.create_name_link(mb_decode_mimeheader($poster_name)).'

'; + $this_output.= '

Posted: '.$date_interval.' by: '.create_name_link(mb_decode_mimeheader($poster_name), $name_from).'

'; } # Try to display useful snippet if($stop=strpos($body, "begin 644 ")) diff --git a/Rocksolid_Light/rocksolid/search.php b/Rocksolid_Light/rocksolid/search.php index e8b06ba..d5e48e2 100644 --- a/Rocksolid_Light/rocksolid/search.php +++ b/Rocksolid_Light/rocksolid/search.php @@ -8,6 +8,7 @@ include "newsportal.php"; throttle_hits(); $snippet_size = 100; +//echo $_REQUEST['data']." :: ".base64_decode(urldecode($_REQUEST['data'])); if(!isset($_POST['key']) || !password_verify($CONFIG['thissitekey'], $_POST['key'])) { include "head.inc"; @@ -15,17 +16,7 @@ include "head.inc"; echo '

'; echo ''.basename(getcwd()).' / '; echo 'search

'; -echo ''; -// View Latest button - if (isset($overboard) && ($overboard == true)) { - echo ''; - } else { -// echo htmlspecialchars($CONFIG['title_full']); - } + echo '
'; - echo '
'; - echo ''; - echo '
'; - echo '
'; if(isset($_GET['group'])) { $searching = $_GET['group']; } else { @@ -68,6 +59,9 @@ if ($_GET['searchpoint'] == 'Poster') { echo ''; } echo ''; + if(isset($_GET['data'])) { + echo ''; + } ?> @@ -158,7 +152,11 @@ $results=0; if($_POST['searchpoint'] == 'body') { $overview = get_body_search($group, $_POST['terms']); } else { - $overview = get_header_search($group, $_POST['terms']); + if(isset($_REQUEST['data'])) { + $overview = get_header_search($group, base64_decode(urldecode($_REQUEST['data']))); + } else { + $overview = get_header_search($group, $_POST['terms']); + } } foreach($overview as $overviewline) { /* Find section for links */