#'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) {
],
],
];
+function owncloud_row_parse(&$r) {
+ foreach ($r as $k=>$v) {
+ $r[$k] = str_replace(chr(194).chr(160),' ',$v);
+ }
+}
?>
'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); } },
],
],
];
#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',''
$this->fields = array();
$conf = str_replace('<NAME>',$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);
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);
}
}
-function argv2request() { return nb::argv2request(); }
+function argv2request($args=null) { return nb::argv2request($args); }
function html_select_array($data,$opt=array()) {
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);
}
$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])
function out_human_end(&$o) {
#debug($GLOBALS['_human_len']);
$len = $GLOBALS['_human_len'];
- #debug($len);
+ #bye($len);
fseek($o['tmpfile'], 0);
$sep_line = '';
$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++;
}