From 4e0a2093525c022e5ce7320a6b0739efe45ded47 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 02 Oct 2012 11:19:40 -0400
Subject: [PATCH] Fixed: FS#2431 - APS list update failed.

---
 interface/lib/classes/aps_crawler.inc.php |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/interface/lib/classes/aps_crawler.inc.php b/interface/lib/classes/aps_crawler.inc.php
index 99e675f..25a700f 100644
--- a/interface/lib/classes/aps_crawler.inc.php
+++ b/interface/lib/classes/aps_crawler.inc.php
@@ -200,11 +200,12 @@
      * A method to build query URLs out of a list of vendors
      *
     */
-    private function formatVendorCallback($array_item, $key)
+    private function formatVendorCallback($array_item)
     {
         $array_item = str_replace(' ', '%20', $array_item);
         $array_item = str_replace('http://', '', $array_item);
         $array_item = '/'.$this->aps_version.'.atom?vendor='.$array_item.'&pageSize=100';
+		return($array_item);
     }
     
     /**
@@ -227,7 +228,12 @@
             if(!$vendors) throw new Exception('Unable to fetch vendors. Aborting');
 
             // Format all vendors for further processing (i.e. typo3.org -> /1.atom?vendor=typo3.org&pageSize=100
-            array_walk($vendors, array($this, 'formatVendorCallback'));
+            //array_walk($vendors, array($this, 'formatVendorCallback'));
+			if(is_array($vendors)) {
+				foreach($vendors as $key => $array_item) {
+					$vendors[$key] = $this->formatVendorCallback($array_item);
+				}
+			}
             
             // Process all vendors in chunks of 50 entries
             $vendor_chunks = array_chunk($vendors, 50);
@@ -273,9 +279,16 @@
                         
                         // Find out a (possibly) existing package version
                         $ex_ver = '';
+						/*
                         array_walk($existing_apps, 
-                            create_function('$v, $k, $ex_ver', 'if($v["Name"] == "'.$app_name.'") $ex_ver = $v["CurrentVersion"];'), $ex_ver);
-                        
+                            create_function('$v, $k, $ex_ver', 'if($v["Name"] == "'.$app_name.'") $ex_ver = $v["CurrentVersion"];'), &$ex_ver);
+                        */
+						if(is_array($existing_apps)) {
+							foreach($existing_apps as $k => $v) {
+								if($v["Name"] == $app_name) $ex_ver = $v["CurrentVersion"];
+							}
+						}
+						
                         $new_ver = $app_version.'-'.$app_release;
                         $local_intf_folder = $this->interface_pkg_dir.'/'.$app_name.'-'.$new_ver.'.app.zip/';
 

--
Gitblit v1.9.1