Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1675)
+++ branches/2.8.x/CHANGELOG	(revision 1676)
@@ -12,8 +12,10 @@
 ===============================================================================
 
 
-
-
+24 Apr-2012 Build 1676 Dietmar Woellbrink (Luisehahne)
+# fixed backup_droplets working with php as Apache Module (Tks to Ruebenwurzel)
+! update function rm_full_dir in /framework/functions.php
+! To disable Run-time notices and receive warnings
 24 Apr-2012 Build 1675 Dietmar Woellbrink (Luisehahne)
 # fixed /framework/functions.php missing global $MESSAGE in function rebuildFolderProtectFile
 18 Apr-2012 Build 1674 Dietmar Woellbrink (Luisehahne)
@@ -149,7 +151,7 @@
 # Droplet [SectionPiocker] fixed
 + Added new droplets [ShowWysiwyg] and [ShowRandomWysiwyg]
 24 Feb-2012 Build 1620 Dietmar Woellbrink (Luisehahne)
-# fixed FCKeditor lang files to utf-8 (Tks to Ruebenwurzel
+# fixed FCKeditor lang files to utf-8 (Tks to Ruebenwurzel)
 24 Feb-2012 Build 1619 Dietmar Woellbrink (Luisehahne)
 ! forgot info.php
 24 Feb-2012 Build 1618 Dietmar Woellbrink (Luisehahne)
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1675)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1676)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.3');
-if(!defined('REVISION')) define('REVISION', '1675');
+if(!defined('REVISION')) define('REVISION', '1676');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/functions.php
===================================================================
--- branches/2.8.x/wb/framework/functions.php	(revision 1675)
+++ branches/2.8.x/wb/framework/functions.php	(revision 1676)
@@ -30,21 +30,21 @@
  * @param string $directory :
  * @param bool $empty : true if you want the folder just emptied, but not deleted
  *                      false, or just simply leave it out, the given directory will be deleted, as well
- * @return boolean: list of ro-dirs
+ * @return boolean: true/false
  * @from http://www.php.net/manual/de/function.rmdir.php#98499
  */
-function rm_full_dir($directory, $empty = false) {
-    
+function rm_full_dir($directory, $empty = false)
+{
 	if(substr($directory,-1) == "/") {
         $directory = substr($directory,0,-1);
     }
    // If suplied dirname is a file then unlink it
-    if (is_file( $directory )) {
+    if (is_file( $directory )&& is_writable( $directory )) {
 	  $retval = unlink($directory);
 	  clearstatcache();
       return $retval;
     }
-    if(!file_exists($directory) || !is_dir($directory)) {
+    if(!is_writable($directory) || !is_dir($directory)) {
         return false;
     } elseif(!is_readable($directory)) {
         return false;
@@ -65,8 +65,10 @@
         }
         closedir($directoryHandle);
         if($empty == false) {
-            if(!rmdir($directory)) {
-                return false;
+            if(is_dir($directory) && is_writable(dirname($directory))) {
+                return rmdir($directory);
+            } else {
+				return false;
             }
         }
         return true;
@@ -419,7 +421,7 @@
  * the function also prevents the owner to loose rw-rights
  * @param string $sName
  * @param int rights in dec-value. 0= use wb-defaults
- * @return bool 
+ * @return bool
  */
 function change_mode($sName, $iMode = 0)
 {
Index: branches/2.8.x/wb/modules/droplets/tool.php
===================================================================
--- branches/2.8.x/wb/modules/droplets/tool.php	(revision 1675)
+++ branches/2.8.x/wb/modules/droplets/tool.php	(revision 1676)
@@ -42,8 +42,9 @@
 	echo "\n</style>\n";
 }
 
+$temp_dir = '/temp/droplets/';
 // Get userid for showing admin only droplets or not
-$loggedin_user = ($admin->ami_group_member('1') ? 1 : $admin->user_id());
+$loggedin_user = ($admin->ami_group_member('1') ? 1 : $admin->get_user_id());
 $loggedin_group = $admin->get_groups_id();
 $admin_user = ( ($admin->get_home_folder() == '') && ($admin->ami_group_member('1') ) || ($loggedin_user == '1'));
 
@@ -61,6 +62,10 @@
 if( !$database->get_one($sql) ) {
 	include('install.php');
 }
+// delete backup folder if possible
+if(is_writeable(dirname(WB_PATH.$temp_dir))) {
+ 	rm_full_dir ( WB_PATH.$temp_dir );
+}
 ?><br />
 <table summary="" cellpadding="0" cellspacing="0" border="0" width="100%">
 <tr>
Index: branches/2.8.x/wb/modules/droplets/backup_droplets.php
===================================================================
--- branches/2.8.x/wb/modules/droplets/backup_droplets.php	(revision 1675)
+++ branches/2.8.x/wb/modules/droplets/backup_droplets.php	(revision 1676)
@@ -5,8 +5,7 @@
  * @package         droplet
  * @author          Ruud Eisinga (Ruud) John (PCWacht)
  * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @copyright       2009-2012, Website Baker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -26,7 +25,6 @@
 $admin = new admin('admintools', 'admintools');
 $admintool_link = ADMIN_URL .'/admintools/index.php';
 $module_edit_link = ADMIN_URL .'/admintools/tool.php?tool=droplets';
-$template_edit_link = ADMIN_URL .'/admintools/tool.php?tool=templateedit';
 $sOverviewDroplets = $TEXT['LIST_OPTIONS'];
 
 // protect from CSRF
@@ -43,53 +41,60 @@
 </h4>
 <?php
 
-$temp_dir = WB_PATH.'/temp/droplets/';
-$temp_file = '/modules/droplets/backup-droplets.zip';
-// make the temporary working directory
-mkdir($temp_dir);
-$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'mod_droplets`  ';
-$sql .= 'ORDER BY `modified_when` DESC';
-$query_droplets = $database->query($sql);
-while($droplet = $query_droplets->fetchRow()) {
-	echo 'Saving: '.$droplet["name"].'.php<br />';
-	$sFile = $temp_dir.$droplet["name"].'.php';
-	$fh = fopen($sFile, 'w') ;
-	fwrite($fh, '//:'.$droplet['description']."\n");
-	fwrite($fh, '//:'.str_replace("\n"," ",$droplet['comments'])."\n");
-	fwrite($fh, $droplet['code']);
-	fclose($fh);
+$OK  = ' <span style="color:#006400; font-weight:bold;">OK</span> ';
+$FAIL = ' <span style="color:#ff0000; font-weight:bold;">FAILED</span> ';
+
+$temp_dir = '/temp/droplets/';
+$temp_file = $temp_dir.'backup-droplets.zip';
+
+if(is_writeable(dirname(WB_PATH.$temp_dir))) {
+ 	rm_full_dir ( WB_PATH.$temp_dir );
 }
+
+$msg = createFolderProtectFile(rtrim( WB_PATH.$temp_dir,'/') );
+if(sizeof($msg)) {
+	print '<h4 class="warning">';
+	echo implode('<br />',$msg).'<br />'.$MESSAGE['MEDIA_DIR_NOT_MADE'].'<br />';
+	print '</h4>';
+}
+
+	$sFilesToZip = '';
+	$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'mod_droplets`  ';
+	$sql .= 'ORDER BY `modified_when` DESC';
+
+	$query_droplets = $database->query($sql);
+	while($droplet = $query_droplets->fetchRow()) {
+		echo 'Saving: /temp/droplets/'.$droplet["name"].'.php';
+		$sFile = $droplet["name"].'.php';
+		if($fh = fopen(WB_PATH.$temp_dir.$sFile, 'w'))
+		{
+			fwrite($fh, '//:'.$droplet['description']."\n");
+			fwrite($fh, '//:'.str_replace("\n"," ",$droplet['comments'])."\n");
+			fwrite($fh, $droplet['code']);
+			fclose($fh);
+			echo " $OK<br />";
+		} else {
+			echo " $FAIL<br />";		}
+	$sFilesToZip .= WB_PATH.$temp_dir.$sFile.',';
+	}
+
+$sFilesToZip = rtrim($sFilesToZip,',');
+
 echo '<br />Create archive: backup-droplets.zip<br />';
 
 require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
 $archive = new PclZip(WB_PATH.$temp_file);
-$file_list = $archive->create($temp_dir, PCLZIP_OPT_REMOVE_ALL_PATH);
+
+$file_list = $archive->create($sFilesToZip , PCLZIP_OPT_ADD_PATH, WB_PATH.$temp_dir );
 if ($file_list == 0){
 	echo "Packaging error: '.$archive->errorInfo(true).'";
 	die("Error : ".$archive->errorInfo(true));
 }
-else {
+elseif(is_readable(WB_PATH.$temp_file)) {
 	echo '<br /><br />Backup created - <a href="'.WB_URL.$temp_file.'">Download</a>';
 }
-
-delete_directory ( $temp_dir );
-
-function delete_directory($dirname) {
-    if (is_dir($dirname))
-        $dir_handle = opendir($dirname);
-    if (!$dir_handle)
-        return false;
-    while($file = readdir($dir_handle)) {
-        if ($file != "." && $file != "..") {
-            if (!is_dir($dirname."/".$file))
-                unlink($dirname."/".$file);
-            else
-                delete_directory($dirname.'/'.$file);          
-        }
-    }
-    closedir($dir_handle);
-    rmdir($dirname);
-    return true;
+else {
+	echo '<br /><br />Backup not created - <a href="'.$module_edit_link.'">'.$TEXT['BACK'].'</a>';
 }
 
 $admin->print_footer();
Index: branches/2.8.x/DEVINFOS
===================================================================
--- branches/2.8.x/DEVINFOS	(revision 1675)
+++ branches/2.8.x/DEVINFOS	(revision 1676)
@@ -4,10 +4,18 @@
 $Id$
 
 
+
+
+24 Apr-2012 Build 1676
+----------------------
+If you use function rm_full_dir
+now disable Run-time notices and return boolean: 
+create your own error messages
+
 17 Apr-2012 Build 1665
 ----------------------
 add developer informations in advanced settings 
-info will be shown in footer only for system admins
+info will be shown in footer only for system admin
 
 add page_icon_dir in advanced settings
 default directory /templates/*/title_images
