📄 general.php
字号:
} return $array; }function tidylist($list) { # Takes a value as returned from a check-list field type and reformats to be more display-friendly. # Check-list fields have a leading comma. $list=trim($list); if (strpos($list,",")===false) {return $list;} $list=explode(",",$list); if (trim($list[0])=="") {array_shift($list);} # remove initial comma used to identify item is a list $op=join(", ",trim_array($list)); #if (strpos($op,".")!==false) {$op=str_replace(", ","<br/>",$op);} return $op; }function tidy_trim($text,$length) { # Trims $text to $length if necessary. Tries to trim at a space if possible. Adds three full stops # if trimmed... $text=trim($text); if (strlen($text)>$length) { $text=substr($text,0,$length-3); # Trim back to the last space $t=strrpos($text," "); $c=strrpos($text,","); if ($c!==false) {$t=$c;} if ($t>5) { $text=substr($text,0,$t); } $text=$text . "..."; } return $text; }function get_related_resources($ref) { # Return an array of resource references that are related to resource $ref return sql_array("select related value from resource_related where resource='$ref' union select resource value from resource_related where related='$ref'"); } function average_length($array) { # Returns the average length of the strings in an array $total=0; for ($n=0;$n<count($array);$n++) { $total+=strlen(i18n_get_translated($array[$n])); } return ($total/count($array)); } function get_field_options($ref) { # For the field with reference $ref, return a sorted array of options. $options=sql_value("select options value from resource_type_field where ref='$ref'",""); $options=trim_array(explode(",",$options)); sort($options); return $options; } function get_data_by_field($resource,$field) { # Return the resource data for field $field in resource $resource return sql_value("select value from resource_data where resource='$resource' and resource_type_field='$field'",""); } function get_users($group=0,$find="",$order_by="u.username",$usepermissions=false,$fetchrows=-1) { # Returns a user list. Group or search tearm is optional. $sql=""; if ($group>0) {$sql="where usergroup='$group'";} if (strlen($find)>1) {$sql="where (username like '%$find%' or fullname like '%$find%' or email like '%$find%')";} if (strlen($find)==1) {$sql="where username like '$find%'";} if ($usepermissions && checkperm("U")) { # Only return users in children groups to the user's group global $usergroup; if ($sql=="") {$sql="where ";} else {$sql.=" and ";} $sql.="g.parent='" . $usergroup . "'"; } return sql_query ("select u.*,g.name groupname,g.ref groupref,g.parent groupparent from user u left outer join usergroup g on u.usergroup=g.ref $sql order by $order_by",false,$fetchrows); }function get_usergroups($usepermissions=false) { # Returns a list of user groups. Put anything starting with 'General Staff Users' at the top (e.g. General Staff) $sql=""; if ($usepermissions && checkperm("U")) { # Only return users in children groups to the user's group global $usergroup; if ($sql=="") {$sql="where ";} else {$sql.=" and ";} $sql.="(ref='$usergroup' or parent='$usergroup')"; } return sql_query("select * from usergroup $sql order by (name like 'General%') desc,name"); } function get_user($ref) { # Return a user's credentials. $return=sql_query("select * from user where ref='$ref'"); if (count($return)>0) {return $return[0];} else {return false;} } function save_user($ref) { # Save user details, data is taken from the submitted form. if (getval("deleteme","")!="") { sql_query("delete from user where ref='$ref'"); } else { # Username or e-mail address already exists? $c=sql_value("select count(*) value from user where ref<>'$ref' and (username='" . getvalescaped("username","") . "' or email='" . getvalescaped("email","") . "')",0); if (($c>0) && (getvalescaped("email","")!="")) {return false;} $password=getvalescaped("password",""); if (getval("suggest","")!="") {$password=make_password(8,5);} $expires="'" . getvalescaped("account_expires","") . "'"; if ($expires=="''") {$expires="null";} $passsql=""; global $lang; if ($password!=$lang["hidden"]) { # Save password. if (getval("suggest","")=="") {$password=md5("RS" . getvalescaped("username","") . $password);} $passsql=",password='" . $password . "'"; } sql_query("update user set username='" . getvalescaped("username","") . "'" . $passsql . ",fullname='" . getvalescaped("fullname","") . "',email='" . getvalescaped("email","") . "',usergroup='" . getvalescaped("usergroup","") . "',account_expires=$expires,ip_restrict='" . getvalescaped("ip_restrict","") . "',comments='" . getvalescaped("comments","") . "' where ref='$ref'"); } if (getval("emailme","")!="") { global $applicationname,$email_from,$baseurl; $message="Your login details for the $applicationname system are as follows:\n\nUsername: " . getval("username","") . "\nPassword: " . getval("password","") . "\n\nVisit the below URL to access ths system.\n$baseurl"; send_mail(getval("email",""),$applicationname . ": Login Details",$message); } }function email_reminder($email) { if ($email=="") {return false;} $details=sql_query("select username from user where email like '$email'"); if (count($details)==0) {return false;} $details=$details[0]; global $applicationname,$email_from,$baseurl; $password=make_password(8,5); $password_hash=md5("RS" . $details["username"] . $password); sql_query("update user set password='$password_hash' where username='" . escape_check($details["username"]) . "'"); $message="Your login details for the $applicationname system are as follows:\n\nUsername: " . $details["username"] . "\nPassword: " . $password . "\n\nVisit the below URL to access ths system.\n$baseurl"; send_mail($email,$applicationname . ": Password Reminder",$message); return true; }function new_user($newuser) { # Username already exists? $c=sql_value("select count(*) value from user where username='$newuser'",0); if ($c>0) {return false;} # Create a new user with username $newuser. Returns the created user reference. sql_query("insert into user(username) values ('" . escape_check($newuser) . "')"); $newref=sql_insert_id(); # Create a collection for this user global $lang; $new=create_collection($newref,$lang["mycollection"],0,1); # set this to be the user's current collection sql_query("update user set current_collection='$new' where ref='$newref'"); return $newref; }function get_stats_activity_types() { # Returns a list of activity types for which we have stats data (Search, User Session etc.) return sql_array("select distinct activity_type value from daily_stat order by activity_type"); }function get_stats_years() { # Returns a list of years for which we have statistics. return sql_array("select distinct year value from daily_stat order by year"); }function email_resource_request($ref,$details) { # E-mails a resource request (posted) to the team global $applicationname,$email_from,$baseurl,$email_notify,$username,$useremail,$lang; $message=$lang["username"] . ": " . $username . "\n"; reset ($_POST); foreach ($_POST as $key=>$value) { if (strpos($key,"_label")!==false) { # Add custom field $message.=$value . ": " . $_POST[str_replace("_label","",$key)] . "\n"; } } if (trim($details)!="") {$message.=$lang["message"] . ":\n" . newlines($details) . "\n\n";} $message.=$lang["clicktoviewresource"] . "\n$baseurl/?r=$ref"; send_mail($email_notify,$applicationname . ": " . $lang["researchrequest"] . " - $ref",$message,$useremail); }function newlines($text) { # Replace escaped newlines with real newlines. $text=str_replace("\\n","\n",$text); $text=str_replace("\\r","\r",$text); return $text; }function email_user_request() { # E-mails the submitted user request form to the team. global $applicationname,$email_from,$baseurl,$email_notify; $message="The User Login Request form has been completed with the following details:\n\nName: " . getval("name","") . "\nE-mail: " . getval("email","") . "\nComment: " . getval("userrequestcomment","") . "\nIP Address: '" . $_SERVER["REMOTE_ADDR"] . "'\n\nIf this is a valid request, please visit the system at the URL below and create an account for this user.\n$baseurl"; send_mail($email_notify,$applicationname . ": Login Request - " . getval("name",""),$message); }function get_active_users() { # Returns a list of active users, i.e. users still logged on with a last-active time within the last 2 hours. return sql_query("select username,round((unix_timestamp(now())-unix_timestamp(last_active))/60,0) t from user where logged_in=1 and unix_timestamp(now())-unix_timestamp(last_active)<(3600*2) order by t;"); }function get_all_site_text($find="") { # Returns a list of all available editable site text (content). # If $find is specified a search is performed across page, name and text fields. global $defaultlanguage; $sql=""; if ($find!="") {$sql="where (page like '%$find%' or name like '%$find%' or text like '%$find%')";} return sql_query ("select distinct page,name,(select text from site_text where name=s.name and page=s.page order by (language='$defaultlanguage') desc limit 1) text from site_text s $sql order by (page='all') desc,page,name"); }function get_site_text($page,$name,$language,$group) { # Returns a specific site text entry. if ($group=="") {$g="null";$gc="is";} else {$g="'" . $group . "'";$gc="=";} $text=sql_query ("select * from site_text where page='$page' and name='$name' and language='$language' and specific_to_group $gc $g"); if (count($text)==0) { $existing=escape_check(sql_value("select text value from site_text where page='$page' and name='$name' limit 1","")); return $existing; } return $text[0]["text"]; }function save_site_text($page,$name,$language,$group) { # Saves the submitted site text changes to the database. if ($group=="") {$g="null";$gc="is";} else {$g="'" . $group . "'";$gc="=";} if (getval("deleteme","")!="") { sql_query("delete from site_text where page='$page' and name='$name' and specific_to_group $gc $g"); } elseif (getval("copyme","")!="") { sql_query("insert into site_text(page,name,text,language,specific_to_group) values ('$page','$name','" . getvalescaped("text","") . "','$language',$g)"); } else { $text=sql_query ("select * from site_text where page='$page' and name='$name' and language='$language' and specific_to_group $gc $g"); if (count($text)==0) { # Insert a new row for this language/group. sql_query("insert into site_text(page,name,language,specific_to_group,text) values ('$page','$name','$language',$g,'" . getvalescaped("text","") . "')"); } else { # Update existing row sql_query("update site_text set text='" . getvalescaped("text","") . "' where page='$page' and name='$name' and language='$language' and specific_to_group $gc $g"); } } } function string_similar($string1,$string2) { # Returns an integer score based on how similar the two strings are. # This was used when importing data for "fuzzy" keyword/option matching. $score=0; $string1=trim(strtolower($string1));$string2=trim(strtolower($string2)); if ($string1==$string2) {return 9999;} if (substr($string1,0,1)==substr($string2,0,1)) {$score+=10;} for ($n=0;$n<strlen($string1)-1;$n++) { $pair=substr($string1,$n,2); for ($m=0;$m<strlen($string2)-1;$m++) { if ($pair==substr($string2,$m,2)) {$score++;} } } return $score; }function formatfilesize($bytes) { # Return a human-readable string representing $bytes in either KB or MB. if ($bytes<pow(1024,2)) { return number_format(floor($bytes/1024)) . "KB"; } elseif ($bytes<pow(1024,3)) { return number_format($bytes/pow(1024,2),1) . "MB"; } elseif ($bytes<pow(1024,4)) { return number_format($bytes/pow(1024,3),1) . "GB"; } else { return number_format($bytes/pow(1024,4),1) . "TB";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -