<?php
+use Friendica\App;
+
require_once("include/template_processor.php");
require_once("include/friendica_smarty.php");
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
$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')) {
/**
intval($shown)
);
if (dbm::is_result($r)) {
- $contacts = "";
- foreach ($r AS $contact)
+ $contacts = array();
+ foreach ($r AS $contact) {
$contacts[] = $contact["id"];
-
+ }
$r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `thumb`, `network` FROM `contact` WHERE `id` IN (%s)",
dbesc(implode(",", $contacts)));
* @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('<?php',$s) !== 0) {
+ if ($lang === 'php') {
+ if (strpos($s, '<?php') !== 0) {
$s = '<?php' . "\n" . $s;
$tag_added = true;
}
}
- $renderer = new Text_Highlighter_Renderer_HTML($options);
+ $renderer = new Text_Highlighter_Renderer_Html($options);
$hl = Text_Highlighter::factory($lang);
$hl->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,'<li>'));
- $e = substr($o,strpos($o,'</li>'));
+ if ($tag_added) {
+ $b = substr($o, 0, strpos($o, '<li>'));
+ $e = substr($o, strpos($o, '</li>'));
$o = $b . $e;
}
- return('<code>' . $o . '</code>');
+ return '<code>' . $o . '</code>';
}