X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Futil.php;h=12680112634e444a5aa18b80bbb5b49ec25dee75;hb=b899ff617f757e234d1954d4c71e4d55e739a1dd;hp=7a0d5d11f11d3eb8e7ea208eb95e8a673f347b9e;hpb=56bf6371762a53e3db3cb10e66cc8ea6b9f02da3;p=quix0rs-gnu-social.git diff --git a/lib/util.php b/lib/util.php index 7a0d5d11f1..1268011263 100644 --- a/lib/util.php +++ b/lib/util.php @@ -102,15 +102,15 @@ function common_show_header($pagetitle, $callable=NULL, $data=NULL) { $pagetitle . " - " . $config['site']['name']); common_element('link', array('rel' => 'stylesheet', 'type' => 'text/css', - 'href' => $config['site']['path'] . 'theme/default/style/html.css', + 'href' => common_path('theme/default/style/html.css'), 'media' => 'screen, projection, tv')); common_element('link', array('rel' => 'stylesheet', 'type' => 'text/css', - 'href' => $config['site']['path'] . 'theme/default/style/layout.css', + 'href' => common_path('theme/default/style/layout.css'), 'media' => 'screen, projection, tv')); common_element('link', array('rel' => 'stylesheet', 'type' => 'text/css', - 'href' => $config['site']['path'] . 'theme/default/style/print.css', + 'href' => common_path('theme/default/style/print.css'), 'media' => 'print')); if ($callable) { if ($data) { @@ -238,6 +238,13 @@ function common_input($id, $label, $value=NULL) { common_element_end('p'); } +function common_hidden($id, $value) { + common_element('input', array('name' => $id, + 'type' => 'hidden', + 'id' => $id, + 'value' => $value)); +} + function common_password($id, $label) { common_element_start('p'); common_element('label', array('for' => $id), $label); @@ -349,12 +356,13 @@ function common_canonical_email($email) { return $email; } -function common_render_content($text, $notice=NULL) { +define('URL_REGEX', '^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))'); + +function common_render_content($text, $notice) { $r = htmlspecialchars($text); - if ($notice) { - $id = $notice->profile_id; - $r = preg_replace('/\b@([\w-]+)\b/e', "ATLINK*** \\1 ***", $r); - } + $id = $notice->profile_id; + $r = preg_replace('@https?://\S+@', '\0', $r); + $r = preg_replace('/(^|\b)@([\w-]+)($|\b)/e', "'\\1@'.common_at_link($id, '\\2').'\\3'", $r); # XXX: # tags # XXX: machine tags return $r; @@ -367,7 +375,7 @@ function common_at_link($sender_id, $nickname) { $recipient->whereAdd('EXISTS (SELECT subscribed from subscription where subscriber = '.$sender_id.' and subscribed = id)', 'AND'); $recipient->whereAdd('nickname = "' . trim($nickname) . '"', 'AND'); if ($recipient->find(TRUE)) { - return ''.$nickname.''; + return ''.$nickname.''; } # Try to find profiles that listen to this profile and that have this nickname $recipient = new Profile(); @@ -375,7 +383,7 @@ function common_at_link($sender_id, $nickname) { $recipient->whereAdd('EXISTS (SELECT subscriber from subscription where subscribed = '.$sender_id.' and subscriber = id)', 'AND'); $recipient->whereAdd('nickname = "' . trim($nickname) . '"', 'AND'); if ($recipient->find(TRUE)) { - return ''.$nickname.''; + return ''.$nickname.''; } # If this is a local user, try to find a local user with that nickname. $sender = User::staticGet($sender_id); @@ -383,7 +391,7 @@ function common_at_link($sender_id, $nickname) { $recipient_user = User::staticGet('nickname', $nickname); if ($recipient_user) { $recipient = $recipient->getProfile(); - return ''.$nickname.''; + return ''.$nickname.''; } } # Otherwise, no links. @messages from local users to remote users, @@ -406,12 +414,11 @@ function common_avatar_filename($user, $extension, $size=NULL, $extra=NULL) { function common_avatar_path($filename) { global $config; - return $config['avatar']['directory'] . '/' . $filename; + return INSTALLDIR . '/avatar/' . $filename; } function common_avatar_url($filename) { - global $config; - return "http://".$config['site']['server'].$config['avatar']['path'].'/'.$filename; + return common_path('avatar/'.$filename); } function common_default_avatar($size) { @@ -419,11 +426,11 @@ function common_default_avatar($size) { AVATAR_STREAM_SIZE => 'stream', AVATAR_MINI_SIZE => 'mini'); global $config; - return "http://".$config['site']['server'].$config['site']['path'].'/'.$config['avatar']['default'][$sizenames[$size]]; + + return common_path($config['avatar']['default'][$sizenames[$size]]); } function common_local_url($action, $args=NULL) { - global $config; /* XXX: pretty URLs */ $extra = ''; if ($args) { @@ -431,8 +438,13 @@ function common_local_url($action, $args=NULL) { $extra .= "&${key}=${value}"; } } + return common_path("index.php?action=${action}${extra}"); +} + +function common_path($relative) { + global $config; $pathpart = ($config['site']['path']) ? $config['site']['path']."/" : ''; - return "http://".$config['site']['server'].'/'.$pathpart."index.php?action=${action}${extra}"; + return "http://".$config['site']['server'].'/'.$pathpart.$relative; } function common_date_string($dt) { @@ -487,9 +499,7 @@ function common_mint_tag($extra) { # Should make up a reasonable root URL function common_root_url() { - global $config; - $pathpart = ($config['site']['path']) ? $config['site']['path']."/" : ''; - return "http://".$config['site']['server'].'/'.$pathpart; + return common_path(''); } # returns $bytes bytes of random data as a hexadecimal string @@ -524,6 +534,16 @@ function common_mtrand($bytes) { return $enc; } +function common_set_returnto($url) { + common_ensure_session(); + $_SESSION['returnto'] = $url; +} + +function common_get_returnto() { + common_ensure_session(); + return $_SESSION['returnto']; +} + function common_timestamp() { return date('YmdHis'); }