From f35109827bd2e6184974989ac65bf3bd305f2fa0 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 2 Jan 2012 20:09:25 +0100 Subject: datetime: new field_timezone() function, new template field_select_raw.tpl returns a timezone select like select_timezone() but using template field_select_raw.tpl. field_select_raw get options html as forth argument, instead of array value=>label like field_select --- include/datetime.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/datetime.php b/include/datetime.php index 087e6cb20..d44e995cf 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -15,7 +15,6 @@ function timezone_cmp($a, $b) { }} // emit a timezone selector grouped (primarily) by continent - if(! function_exists('select_timezone')) { function select_timezone($current = 'America/Los_Angeles') { @@ -55,6 +54,23 @@ function select_timezone($current = 'America/Los_Angeles') { return $o; }} +// return a select using 'field_select_raw' template, with timezones +// groupped (primarily) by continent +// arguments follow convetion as other field_* template array: +// 'name', 'label', $value, 'help' +if (!function_exists('field_timezone')){ +function field_timezone($name='timezone', $label='', $current = 'America/Los_Angeles', $help){ + $options = select_timezone($current); + $options = str_replace('','', $options); + + $tpl = get_markup_template('field_select_raw.tpl'); + return replace_macros($tpl, array( + '$field' => array($name, $label, $current, $help, $options), + )); + +}} + // General purpose date parse/convert function. // $from = source timezone // $to = dest timezone @@ -446,4 +462,4 @@ function update_contact_birthdays() { } } -} \ No newline at end of file +} -- cgit v1.2.3 From 85fbdb00acf5ab1308f6d0da42d2a61e3f3ff074 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 2 Jan 2012 20:10:23 +0100 Subject: dba: leave unconnected if $server and $user are not defined --- include/dba.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/dba.php b/include/dba.php index b89cf5376..782c279d5 100644 --- a/include/dba.php +++ b/include/dba.php @@ -18,7 +18,7 @@ class dba { private $db; public $mysqli = true; public $connected = false; - + public $error = false; function __construct($server,$user,$pass,$db,$install = false) { @@ -27,10 +27,16 @@ class dba { $pass = trim($pass); $db = trim($db); + if (!(strlen($server) && strlen($user))){ + $this->connected = false; + $this->db = null; + return; + } + if($install) { if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { - notice( sprintf( t('Cannot locate DNS info for database server \'%s\''), $server)); + $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); $this->connected = false; $this->db = null; return; @@ -152,10 +158,11 @@ class dba { } function __destruct() { - if($this->mysqli) - @$this->db->close(); - else - @mysql_close($this->db); + if ($this->db) + if($this->mysqli) + $this->db->close(); + else + mysql_close($this->db); } }} @@ -186,6 +193,7 @@ function dbesc($str) { }} + // Function: q($sql,$args); // Description: execute SQL query with printf style args. // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d", @@ -209,7 +217,6 @@ function q($sql) { * session data after abnormal program termination * */ - logger('dba: no database: ' . print_r($args,true)); return false; -- cgit v1.2.3 From 1fbffc76b18e94ecda86452fe16609295976c619 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 2 Jan 2012 20:11:06 +0100 Subject: text: "turn off" logger() if module is "install" --- include/text.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/text.php b/include/text.php index d6b3ceeab..f32aaad07 100644 --- a/include/text.php +++ b/include/text.php @@ -426,6 +426,10 @@ function attribute_contains($attr,$s) { if(! function_exists('logger')) { function logger($msg,$level = 0) { + // turn off logger in install mode + global $a; + if ($a->module == 'install') return; + $debugging = get_config('system','debugging'); $loglevel = intval(get_config('system','loglevel')); $logfile = get_config('system','logfile'); -- cgit v1.2.3 From 4c35a6b0d7e2f2431571d63888816ecff446d258 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 2 Jan 2012 16:54:37 -0800 Subject: conversation sql optimisations --- include/conversation.php | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'include') diff --git a/include/conversation.php b/include/conversation.php index fae57c565..d40b2ea7e 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -884,3 +884,62 @@ function status_editor($a,$x, $notes_cid = 0) { return $o; } + + +function conv_sort($arr,$order) { + + if((!(is_array($arr) && count($arr)))) + return array(); + + $parents = array(); + + foreach($arr as $x) + if($x['id'] == $x['parent']) + $parents[] = $x; + + if(stristr($order,'created')) + usort($parents,'sort_thr_created'); + elseif(stristr($order,'commented')) + usort($parents,'sort_thr_commented'); + + foreach($parents as $x) + $x['children'] = array(); + + foreach($arr as $x) { + if($x['id'] != $x['parent']) { + $p = find_thread_parent_index($parents,$x); + $parents[$p]['children'][] = $x; + } + } + foreach($parents as $x) + if(count($x['children'])) + usort($x['children'],'sort_thr_created_rev'); + + $ret = array(); + foreach($parents as $x) { + $ret[] = $x; + foreach($x['children'] as $y) + $ret[] = $y; + } + + return $ret; +} + + +function sort_thr_created($a,$b) { + return strcmp($b['created'],$a['created']); +} + +function sort_thr_created_rev($a,$b) { + return strcmp($a['created'],$b['created']); +} + +function sort_thr_commented($a,$b) { + return strcmp($b['commented'],$a['commented']); +} + +function find_thread_parent_index($arr,$x) { + foreach($arr as $k => $v) + if($v['id'] == $x['parent']) + return $k; +} \ No newline at end of file -- cgit v1.2.3 From f4b1d335a571365748ee348ed2b8ac6e1c6670db Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 2 Jan 2012 18:40:38 -0800 Subject: sql optimisation cont. --- include/bbcode.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/bbcode.php b/include/bbcode.php index 5218a06e8..6b733c8f4 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -27,7 +27,7 @@ function tryoembed($match){ // BBcode 2 HTML was written by WAY2WEB.net - // extended to work with Mistpark/Friendika - Mike Macgirvin + // extended to work with Mistpark/Friendica - Mike Macgirvin function bbcode($Text,$preserve_nl = false) { -- cgit v1.2.3 From 184230e06826117b1d87241e3acdf19935470e8f Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 2 Jan 2012 22:58:09 -0800 Subject: check count before foreach --- include/conversation.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/conversation.php b/include/conversation.php index d40b2ea7e..f4432bfd9 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -918,8 +918,9 @@ function conv_sort($arr,$order) { $ret = array(); foreach($parents as $x) { $ret[] = $x; - foreach($x['children'] as $y) - $ret[] = $y; + if(count($x['children'])) + foreach($x['children'] as $y) + $ret[] = $y; } return $ret; -- cgit v1.2.3