From 0436907060c37fb3214dff2f5dcb0c58bae73cf7 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Fri, 16 Sep 2016 01:10:14 +0100 Subject: [PATCH] Bed --- etc/dbs/owncloud.php | 29 +++++++++++++++++++++++++++++ etc/dbs/wp.php | 6 +----- lib/php/config.php | 19 +++++++++++++------ lib/php/db/table.php | 1 - lib/php/functions.php | 3 ++- lib/php/out.php | 20 +++++++++++--------- 6 files changed, 56 insertions(+), 22 deletions(-) diff --git a/etc/dbs/owncloud.php b/etc/dbs/owncloud.php index 3f5952ba..2d4a7fab 100644 --- a/etc/dbs/owncloud.php +++ b/etc/dbs/owncloud.php @@ -7,6 +7,30 @@ $CONF['owncloud'] = [ #'default_table' => 'oc_users', 'default_table' => 'last_files', 'tables' => [ + 'view_contact' => [ + #'sql' => "SELECT * FROM oc_contacts_cards_properties", + 'sql' => "SELECT c.id" + #.",org.value as org" + #.",name.value as name" + #.",tel.value as tel" + .",TRIM(CONCAT(" + ."(SELECT value FROM oc_cards_properties p WHERE p.name='ORG' AND p.cardid=c.id AND p.addressbookid=c.addressbookid)" + .",' '," + ."(SELECT value FROM oc_cards_properties p WHERE p.name='FN' AND p.cardid=c.id AND p.addressbookid=c.addressbookid)" + .")) as name" + #.",(SELECT value FROM oc_cards_properties p WHERE p.name='ORG' AND p.cardid=c.id AND p.addressbookid=c.addressbookid) as org" + #.",(SELECT value FROM oc_cards_properties p WHERE p.name='FN' AND p.cardid=c.id AND p.addressbookid=c.addressbookid) as name" + .",(SELECT value FROM oc_cards_properties p WHERE p.name='TEL' AND p.cardid=c.id AND p.addressbookid=c.addressbookid ORDER BY preferred DESC LIMIT 1) as tel" + #.",(SELECT GROUP_CONCAT(',',value) FROM oc_cards_properties p WHERE p.name='EMAIL' AND p.cardid=c.id AND p.addressbookid=c.addressbookid) as emails" + .",(SELECT value FROM oc_cards_properties p WHERE p.name='EMAIL' AND p.cardid=c.id AND p.addressbookid=c.addressbookid ORDER BY preferred DESC LIMIT 1) as email" + . " FROM oc_cards c" + #." LEFT JOIN oc_cards_properties name ON name.name='FN' AND name.cardid=c.id AND name.addressbookid=c.addressbookid" + #." LEFT JOIN oc_cards_properties tel ON tel.name='TEL' AND tel.cardid=c.id AND tel.addressbookid=c.addressbookid" + #." LEFT JOIN oc_cards_properties org ON org.name='ORG' AND org.cardid=c.id AND org.addressbookid=c.addressbookid" + #." GROUP BY c.id" + , + 'row_parse_pre' => 'owncloud_row_parse', + ], 'last_files' => [ 'sql' => "SELECT path,mtime FROM oc_filecache WHERE path NOT LIKE 'files_versions/%' ORDER BY fileid DESC LIMIT 10", 'row_parse_pre' => function(&$r) { @@ -15,4 +39,9 @@ $CONF['owncloud'] = [ ], ], ]; +function owncloud_row_parse(&$r) { + foreach ($r as $k=>$v) { + $r[$k] = str_replace(chr(194).chr(160),' ',$v); + } +} ?> diff --git a/etc/dbs/wp.php b/etc/dbs/wp.php index 97ca1dd9..8940b04b 100644 --- a/etc/dbs/wp.php +++ b/etc/dbs/wp.php @@ -7,11 +7,7 @@ $CONF['wp'] = [ 'default_table' => 'wp_blogs', 'tables' => [ 'wp_options' => [ - 'row_parse_pre' => function(&$r) { - foreach ($r as $k=>$v) { - $r[$k] = str_replace("\0",'',$v); - } - }, + 'row_parse_pre' => function(&$r) { foreach ($r as $k=>$v) { $r[$k] = str_replace("\0",'',$v); } }, ], ], ]; diff --git a/lib/php/config.php b/lib/php/config.php index 324f5ee9..6f259fb2 100644 --- a/lib/php/config.php +++ b/lib/php/config.php @@ -9,16 +9,23 @@ #define('NB_EOL',''); #define('NB_PROD',true); require(dirname(__FILE__).'/nb.php'); -if (nb::php_cli()) argv2request(); +if (nb::php_cli()) { + argv2request(); + if (nb::p('txt_errors')) ini_set('html_errors', false); +} -if (!empty($_SERVER['PROD'])) return; +ini_set('display_errors', + empty($_SERVER['PROD']) + && !nb::php_cli() +); -error_reporting(E_ALL | E_STRICT | E_NOTICE); -if (!nb::php_cli()) ini_set('display_errors', 1); -if (nb::php_cli() or nb::p('txt_errors')) ini_set('html_errors', false); +if (!ini_get('UTC')) date_default_timezone_set('UTC'); +if (empty($_SERVER['PROD'])) error_reporting(E_ALL | E_STRICT | E_NOTICE); // Should be done in php.ini for performance -date_default_timezone_set('Europe/London'); +#bye(date_default_timezone_get()); +#if (!date_default_timezone_get()) date_default_timezone_set('Europe/London'); +#bye(ini_get('date.timezone')); # NB 05.03.16 ini_set('include_path', realpath(dirname(__FILE__).'/../lib').':'.realpath(dirname(__FILE__)).':'.ini_get('include_path')); ini_set('include_path','' diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 1a0d0ba6..a856b80e 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -271,7 +271,6 @@ Class Table extends nb { $this->fields = array(); $conf = str_replace('',$this->name,$this->db()->type('table.fields',true)); if (is_scalar($conf)) $conf = array('sql'=>$conf); - #debug($conf); $rows = $this->db()->conn->query($conf['sql']); $rows->setFetchMode(PDO::FETCH_ASSOC); diff --git a/lib/php/functions.php b/lib/php/functions.php index 6a2c4482..19f3326e 100644 --- a/lib/php/functions.php +++ b/lib/php/functions.php @@ -63,6 +63,7 @@ function txt2md($txt) { function bye($msg='__bye__',$backtrace_deep=0) { #if ($msg) err($msg,'bye',$backtrace_deep === 0 ? 1 : $backtrace_deep); if ($msg!=='__bye__') { + #throw new Exception($msg); err($msg,'bye',( $backtrace_deep !== false ? (1+-1+$backtrace_deep) : $backtrace_deep )); exit(1); } @@ -181,7 +182,7 @@ function cmd2str($cmd,$write=null) { } -function argv2request() { return nb::argv2request(); } +function argv2request($args=null) { return nb::argv2request($args); } function html_select_array($data,$opt=array()) { diff --git a/lib/php/out.php b/lib/php/out.php index fb56deb7..6bbceee6 100644 --- a/lib/php/out.php +++ b/lib/php/out.php @@ -147,21 +147,21 @@ Class Out extends Nb { if (is_scalar($v)) return $v; #if (is_array($v) and !self::is_hash($v)) return join(', ',$v); #return var_export($v,true); - return trim(preg_replace(array( + return trim(preg_replace([ '/^\s*\'(.*?)\' => \'?(.*?)\'?,$/m', # hash '/^\s*(array \(|\),?)$/m', # sub array '/ *\'(.*?)\' =>\s*$\r?\n/m', # sub hash '/\s*\d+ => \'(.*?)\'(,)?\r?\n/m', # aray '/,\s*$/m', # last , '/$(\r?\n)+$/m', # blank lines - ),array( + ],[ '$1=$2', '', '$1=', '$1 ', #'$1$2 ', '', '', - ),var_export($v,true))); + ],var_export($v,true))); return var_export($v,true); return is_scalar($v) ? $v : json_encode($v); } @@ -525,11 +525,11 @@ function out_human(&$row,&$o) { $line = out_csv($row,$o); $i = 0; foreach (explode($o['sep'],$line) as $v) { -# NB 07.09.16 if (out::$charset == 'utf-8') { -# NB 07.09.16 $len = strlen(utf8_decode($v)); -# NB 07.09.16 } else { -# NB 07.09.16 $len = mb_strlen($v,out::$charset); -# NB 07.09.16 } +# NB 16.09.16 if (preg_match('/^utf-?8$/i',out::$charset)) { +# NB 16.09.16 $len = strlen( utf8_decode( $v ) ); +# NB 16.09.16 } else { +# NB 16.09.16 $len = mb_strlen($v,out::$charset); +# NB 16.09.16 } $len = mb_strlen($v,out::$charset); if (0 or empty($GLOBALS['_human_len'][$i]) @@ -545,7 +545,7 @@ function out_human(&$row,&$o) { function out_human_end(&$o) { #debug($GLOBALS['_human_len']); $len = $GLOBALS['_human_len']; - #debug($len); + #bye($len); fseek($o['tmpfile'], 0); $sep_line = ''; @@ -560,9 +560,11 @@ function out_human_end(&$o) { $header = empty($o['_human']['head']) ? 0 : 1; $count = 0; while (($line = fgets($o['tmpfile'])) !== false) { + $values = []; $i = 0; foreach (explode($o['sep'],rtrim($line,"\n")) as $v) { + #if ($v=='00 33 6 10 18 22 21') $v.=$len[$i]; $values[] = sprintf("%".'-'.$len[$i]."s",$v); $i++; } -- 2.47.3