From fce4f4cffcd40b473a099e84754ebc93d81616c1 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Fri, 16 Sep 2016 18:30:50 +0200 Subject: [PATCH] fix bug on actions tables --- etc/dbs.php | 5 +++-- etc/dbs/owncloud.php | 13 ++++--------- lib/php/db.php | 2 +- lib/php/nb.php | 5 +++++ lib/php/out.php | 4 ++-- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/etc/dbs.php b/etc/dbs.php index a9e352f6..9e690ca8 100644 --- a/etc/dbs.php +++ b/etc/dbs.php @@ -95,11 +95,12 @@ foreach ($CONF as $id => $db) { ) continue; $fname = basename($db['host'],'.db'); $CONF['all']['types']['exec'][] = "ATTACH DATABASE '".$db['host']."' as ".$fname.""; - conf_merge($CONF[$id],$CONF['all']); + conf_merge($CONF[$fname],$CONF['all']); } -conf_merge($CONF['nb'],$CONF['all']); +#conf_merge($CONF['owncloud'],$CONF['all']); +#conf_merge($CONF['nb'],$CONF['all']); return 1; function conf_merge(&$c1,&$c2) { diff --git a/etc/dbs/owncloud.php b/etc/dbs/owncloud.php index 70abbaa7..fd39f573 100644 --- a/etc/dbs/owncloud.php +++ b/etc/dbs/owncloud.php @@ -18,16 +18,9 @@ $CONF['owncloud'] = [ .",' '," ."(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" + . " FROM oc_cards c GROUP BY c.id HAVING name IS NOT NULL AND name<>''" , 'row_parse_pre' => 'owncloud_row_parse', ], @@ -39,9 +32,11 @@ $CONF['owncloud'] = [ ], ], ]; + function owncloud_row_parse(&$r) { foreach ($r as $k=>$v) { - $r[$k] = str_replace(chr(194).chr(160),' ',$v); + $v = str_replace(chr(194).chr(160),' ',$v); + $r[$k] = $v; } } ?> diff --git a/lib/php/db.php b/lib/php/db.php index a1a167b7..e862fd58 100644 --- a/lib/php/db.php +++ b/lib/php/db.php @@ -552,7 +552,7 @@ class Db extends nb { # Emulate hash pointer _import foreach ($h as $db=>$o) { - foreach ($o as $k => $v) { + foreach ((array)$o as $k => $v) { if ($k != '_import') continue; $import = is_array($v) ? $v : explode(',',$v); diff --git a/lib/php/nb.php b/lib/php/nb.php index e349f95d..ab2f8813 100644 --- a/lib/php/nb.php +++ b/lib/php/nb.php @@ -787,5 +787,10 @@ class NB { } return $rows; } + + public static function mb_str_pad($input, $pad_length, $pad_string=' ', $pad_type=STR_PAD_RIGHT,$encoding='UTF-8'){ + $mb_diff=mb_strlen($input, $encoding)-strlen($input); + return str_pad($input,$pad_length-$mb_diff,$pad_string,$pad_type); + } } # < Class ?> diff --git a/lib/php/out.php b/lib/php/out.php index 6bbceee6..8f6d59dc 100644 --- a/lib/php/out.php +++ b/lib/php/out.php @@ -564,8 +564,8 @@ function out_human_end(&$o) { $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); + #if ($v=='Comunicación') $values[] = str_pad($v, $len[$i]+1, ' ', STR_PAD_LEFT); + $values[] = out::mb_str_pad($v, $len[$i], ' ', STR_PAD_RIGHT); $i++; } -- 2.47.3