X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Ftext.php;h=a877d5cca52a680fa8db59fc7f16291f594586a0;hb=56ee734b00aead633d5d213a6b140b75bc17ba96;hp=4a23b7ac37fa35b96e6c79c105ebc50399cc764b;hpb=4665cda00e1614ef1c152e1d5bf070036616b005;p=friendica.git diff --git a/include/text.php b/include/text.php index 4a23b7ac37..a877d5cca5 100644 --- a/include/text.php +++ b/include/text.php @@ -6,7 +6,6 @@ require_once("include/Smilies.php"); require_once("include/map.php"); require_once("mod/proxy.php"); - if(! function_exists('replace_macros')) { /** * This is our template processor @@ -753,6 +752,72 @@ function logger($msg, $level = 0) { $a->save_timestamp($stamp1, "file"); }} +/** + * @brief An alternative logger for development. + * Works largely as logger() but allows developers + * to isolate particular elements they are targetting + * personally without background noise + * + * log levels: + * LOGGER_NORMAL (default) + * LOGGER_TRACE + * LOGGER_DEBUG + * LOGGER_DATA + * LOGGER_ALL + * + * @global App $a + * @global dba $db + * @global array $LOGGER_LEVELS + * @param string $msg + * @param int $level + */ + +function dlogger($msg, $level = 0) { + $a = get_app(); + global $db; + + // turn off logger in install mode + if ( + $a->module == 'install' + || ! ($db && $db->connected) + ) { + return; + } + + $logfile = get_config('system','dlogfile'); + + if (! $logfile) { + return; + } + + if (count($LOGGER_LEVELS) == 0) { + foreach (get_defined_constants() as $k => $v) { + if (substr($k, 0, 7) == "LOGGER_") { + $LOGGER_LEVELS[$v] = substr($k, 7, 7); + } + } + } + + $process_id = session_id(); + + if ($process_id == '') { + $process_id = get_app()->process_id; + } + + $callers = debug_backtrace(); + $logline = sprintf("%s@\t%s:\t%s:\t%s\t%s\t%s\n", + datetime_convert(), + $process_id, + basename($callers[0]['file']), + $callers[0]['line'], + $callers[1]['function'], + $msg + ); + + $stamp1 = microtime(true); + @file_put_contents($logfile, $logline, FILE_APPEND); + $a->save_timestamp($stamp1, "file"); +} if(! function_exists('activity_match')) { /** @@ -2125,47 +2190,48 @@ function format_network_name($network, $url = 0) { * @param string $lang Programming language * @return string Formated html */ -function text_highlight($s,$lang) { - if($lang === 'js') +function text_highlight($s, $lang) { + if ($lang === 'js') { $lang = 'javascript'; - - if(! strpos('Text_Highlighter',get_include_path())) { - set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter'); } - require_once('library/Text_Highlighter/Text/Highlighter.php'); - require_once('library/Text_Highlighter/Text/Highlighter/Renderer/Html.php'); + // @TODO: Replace Text_Highlighter_Renderer_Html by scrivo/highlight.php + + // Autoload the library to make constants available + class_exists('Text_Highlighter_Renderer_Html'); + $options = array( 'numbers' => HL_NUMBERS_LI, 'tabsize' => 4, - ); + ); $tag_added = false; - $s = trim(html_entity_decode($s,ENT_COMPAT)); - $s = str_replace(" ","\t",$s); + $s = trim(html_entity_decode($s, ENT_COMPAT)); + $s = str_replace(' ', "\t", $s); // The highlighter library insists on an opening php tag for php code blocks. If // it isn't present, nothing is highlighted. So we're going to see if it's present. // If not, we'll add it, and then quietly remove it after we get the processed output back. - if($lang === 'php') { - if(strpos('setRenderer($renderer); $o = $hl->highlight($s); - $o = str_replace([" ","\n"],["    ",''],$o); + $o = str_replace("\n", '', $o); + - if($tag_added) { - $b = substr($o,0,strpos($o,'
  • ')); - $e = substr($o,strpos($o,'
  • ')); + if ($tag_added) { + $b = substr($o, 0, strpos($o, '
  • ')); + $e = substr($o, strpos($o, '
  • ')); $o = $b . $e; } - return('' . $o . ''); + return '' . $o . ''; }