From 3d5ffebb52e81e4e1f711c17b2b6b3009ea3ab67 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Sat, 24 Nov 2012 20:28:19 +0300 Subject: [PATCH 1/2] Clean KB entries processing code --- lib/ocsclient.php | 59 ++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/lib/ocsclient.php b/lib/ocsclient.php index e730b159af..12e5026a87 100644 --- a/lib/ocsclient.php +++ b/lib/ocsclient.php @@ -214,39 +214,34 @@ class OC_OCSClient{ * This function returns a list of all the knowledgebase entries from the OCS server */ public static function getKnownledgebaseEntries($page, $pagesize, $search='') { - if(OC_Config::getValue('knowledgebaseenabled', true)==false) { - $kbe=array(); - $kbe['totalitems']=0; - return $kbe; + $kbe = array('totalitems' => 0); + if(OC_Config::getValue('knowledgebaseenabled', true)) { + $p = (int) $page; + $s = (int) $pagesize; + $searchcmd = ''; + if ($search) { + $searchcmd = '&search='.urlencode($search); + } + $url = OC_OCSClient::getKBURL().'/knowledgebase/data?type=150&page='. $p .'&pagesize='. $s . $searchcmd; + $xml = OC_OCSClient::getOCSresponse($url); + $data = @simplexml_load_string($xml); + if($data===false) { + OC_Log::write('core', 'Unable to parse knowledgebase content', OC_Log::FATAL); + return null; + } + $tmp = $data->data->content; + for($i = 0; $i < count($tmp); $i++) { + $kbe[] = array( + 'id' => $tmp[$i]->id, + 'name' => $tmp[$i]->name, + 'description' => $tmp[$i]->description, + 'answer' => $tmp[$i]->answer, + 'preview1' => $tmp[$i]->smallpreviewpic1, + 'detailpage' => $tmp[$i]->detailpage + ); + } + $kbe['totalitems'] = $data->meta->totalitems; } - - $p= (int) $page; - $s= (int) $pagesize; - if($search<>'') $searchcmd='&search='.urlencode($search); else $searchcmd=''; - $url=OC_OCSClient::getKBURL().'/knowledgebase/data?type=150&page='.$p.'&pagesize='.$s.$searchcmd; - - $kbe=array(); - $xml=OC_OCSClient::getOCSresponse($url); - - if($xml==false) { - OC_Log::write('core', 'Unable to parse knowledgebase content', OC_Log::FATAL); - return null; - } - $data=simplexml_load_string($xml); - - $tmp=$data->data->content; - for($i = 0; $i < count($tmp); $i++) { - $kb=array(); - $kb['id']=$tmp[$i]->id; - $kb['name']=$tmp[$i]->name; - $kb['description']=$tmp[$i]->description; - $kb['answer']=$tmp[$i]->answer; - $kb['preview1']=$tmp[$i]->smallpreviewpic1; - $kb['detailpage']=$tmp[$i]->detailpage; - $kbe[]=$kb; - } - $total=$data->meta->totalitems; - $kbe['totalitems']=$total; return $kbe; } From 6a211f3fa15e371a6b0981cae1e230ec613734a8 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Sun, 2 Dec 2012 22:24:14 +0300 Subject: [PATCH 2/2] Check if we have an array with data. Fix #487 --- settings/templates/help.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/templates/help.php b/settings/templates/help.php index 9bb46740f5..75201a86a9 100644 --- a/settings/templates/help.php +++ b/settings/templates/help.php @@ -17,7 +17,7 @@ } ?> - +

t('Problems connecting to help database.');?>

t('Go there manually.');?>