Пример #1
0
         $attributes = rex_setAttributes('ctype', $ctypes, $attributes);
         $attributes = rex_setAttributes('modules', $modules, $attributes);
         $attributes = rex_setAttributes('categories', $categories, $attributes);
         $TPL->setWhere("id='{$template_id}'");
         $TPL->setValue('attributes', addslashes($attributes));
         $TPL->addGlobalUpdateFields();
         if ($TPL->update()) {
             $info = $I18N->msg('template_updated');
         } else {
             $warning = $TPL->getError();
         }
     }
     // werte werden direkt wieder ausgegeben
     $templatename = stripslashes($templatename);
     $content = stripslashes($content);
     rex_deleteDir($REX['GENERATED_PATH'] . '/templates', 0);
     if ($goon != '') {
         $function = 'edit';
         $save = 'nein';
     } else {
         $function = '';
     }
 }
 if (!isset($save) or $save != 'ja') {
     echo '<a name="edit"></a>';
     // Ctype Handling
     $ctypes = rex_getAttributes('ctype', $attributes);
     $modules = rex_getAttributes('modules', $attributes);
     $categories = rex_getAttributes('categories', $attributes);
     if (!is_array($modules)) {
         $modules = array();
 function delete($addonName)
 {
     // zuerst deinstallieren
     // bei erfolg, komplett löschen
     $state = TRUE;
     $state = $state && $this->uninstall($addonName);
     $state = $state && rex_deleteDir($this->baseFolder($addonName), TRUE);
     $state = $state && $this->generateConfig();
     return $state;
 }
Пример #3
0
<?php

/**
 * TinyMCE Addon
 *  
 * @author staab[at]public-4u[dot]de Markus Staab
 * @author <a href="http://www.public-4u.de">www.public-4u.de</a>
 * 
 * @author Dave Holloway
 * @author <a href="http://www.GN2-Netwerk.de">www.GN2-Netwerk.de</a>s
 * 
 * @package redaxo4
 * @version $Id: uninstall.inc.php,v 1.5 2007/10/13 13:52:01 kills Exp $
 */
rex_deleteDir('../files/tmp_/tinymce', true);
$REX['ADDON']['install']['tinymce'] = 0;
/**
 * Importiert das Tar-Archiv $filename in den Ordner /files
 *
 * @param string Pfad + Dateinamen zum Tar-Archiv
 *
 * @return array Gibt ein Assoc. Array zurück.
 *               'state' => boolean (Status ob fehler aufgetreten sind)
 *               'message' => Evtl. Status/Fehlermeldung
 */
function rex_a1_import_files($filename)
{
    global $REX, $I18N_IM_EXPORT;
    $return = array();
    $return['state'] = false;
    if ($filename == '' || substr($filename, -7, 7) != ".tar.gz") {
        $return['message'] = $I18N_IM_EXPORT->msg("no_import_file_chosen") . "<br>";
        return $return;
    }
    // Ordner /files komplett leeren
    rex_deleteDir($REX['INCLUDE_PATH'] . "/../../files");
    $tar = new rex_tar();
    // ----- EXTENSION POINT
    $tar = rex_register_extension_point('A1_BEFORE_FILE_IMPORT', $tar);
    $tar->openTAR($filename);
    if (!$tar->extractTar()) {
        $msg = $I18N_IM_EXPORT->msg('problem_when_extracting') . '<br />';
        if (count($tar->message) > 0) {
            $msg .= $I18N_IM_EXPORT->msg('create_dirs_manually') . '<br />';
            foreach ($tar->message as $_message) {
                $msg .= rex_absPath($_message) . '<br />';
            }
        }
    } else {
        $msg = $I18N_IM_EXPORT->msg('file_imported') . '<br />';
    }
    // ----- EXTENSION POINT
    $tar = rex_register_extension_point('A1_AFTER_FILE_IMPORT', $tar);
    $return['state'] = true;
    $return['message'] = $msg;
    return $return;
}
/**
 * Löscht einen Ordner/Datei mit Unterordnern
 *
 * @param $file Zu löschender Ordner/Datei
 * @param $delete_folders Ordner auch löschen? false => nein, true => ja
 */
function rex_deleteDir($file, $delete_folders = false)
{
    $state = true;
    if (file_exists($file)) {
        // Fehler unterdrücken, falls keine Berechtigung
        if (@is_dir($file)) {
            $handle = opendir($file);
            if (!$handle) {
                return false;
            }
            while ($filename = readdir($handle)) {
                if ($filename == '.' || $filename == '..') {
                    continue;
                }
                if (!rex_deleteDir($file . '/' . $filename, $delete_folders) && $state === true) {
                    $state = false;
                }
            }
            closedir($handle);
            if ($state !== true) {
                return false;
            }
            // Ordner auch löschen?
            if ($delete_folders) {
                // Fehler unterdrücken, falls keine Berechtigung
                if (!@rmdir($file)) {
                    return false;
                }
            }
        } else {
            // Datei löschen
            // Fehler unterdrücken, falls keine Berechtigung
            if (!@unlink($file)) {
                return false;
            }
        }
    } else {
        // Datei/Ordner existiert nicht
        return false;
    }
    return true;
}
/**
 * Löscht einen Ordner/Datei mit Unterordnern
 * 
 * @param $file Zu löschender Ordner/Datei 
 * @param $delete_folders Ordner auch löschen? false => nein, true => ja 
 */
function rex_deleteDir($file, $delete_folders = false)
{
    $state = true;
    if (file_exists($file)) {
        // Fehler unterdrücken, falls keine Berechtigung
        if (@is_dir($file)) {
            $handle = opendir($file);
            if (!$handle) {
                return false;
            }
            while ($filename = readdir($handle)) {
                if ($filename == '.' || $filename == '..') {
                    continue;
                }
                if (($state = rex_deleteDir($file . "/" . $filename, $delete_folders)) !== true) {
                    // Schleife abbrechen, dir_hanlde schließen und danach erst false zurückgeben
                    break;
                }
            }
            closedir($handle);
            if ($state !== true) {
                return false;
            }
            // Ordner auch löschen?
            if ($delete_folders) {
                // Fehler unterdrücken, falls keine Berechtigung
                if (!@rmdir($file)) {
                    return false;
                }
            }
        } else {
            // Datei löschen
            // Fehler unterdrücken, falls keine Berechtigung
            if (!@unlink($file)) {
                return false;
            }
        }
    } else {
        // Datei/Ordner existiert nicht
        return false;
    }
    return true;
}
<?php

/**
 * markitup Addon
 *
 * @author markus[dot]staab[at]redaxo[dot]de Markus Staab
 *
 * @package redaxo4
 * @version $Id: uninstall.inc.php,v 1.2 2008/03/12 14:54:12 kills Exp $
 */
rex_deleteDir('../files/tmp_/markitup', true);
$REX['ADDON']['install']['markitup'] = 0;
Пример #8
0
<?php

/**
 * Redaxo Addon: REX_Ajax
 * Version: 1.0, 20.07.2010
 * 
 * Autor: Andreas Eberhard, andreas.eberhard@gmail.com
 *        http://rex.andreaseberhard.de
 */
// Name des Addons
//$myself = '_rex_ajax_';
include dirname(__FILE__) . '/config.inc.php';
if ($rxa[$myself]['rexversion'] < 32) {
    return;
}
// REDAXO 3.2.3, 4.0.x, 4.1.x - Dateien in Ordner files/addons/ kopieren
if ($rxa[$myself]['rexversion'] == '32' or $rxa[$myself]['rexversion'] == '40' or $rxa[$myself]['rexversion'] == '41') {
    $addon_filesdir = $REX['MEDIAFOLDER'] . '/addons/' . $myself;
    if (is_dir($addon_filesdir)) {
        if (!rex_deleteDir($addon_filesdir, true)) {
            $REX['ADDON']['installmsg'][$myself] = 'Verzeichnis ' . $addon_filesdir . ' konnte nicht gel�scht werden!';
            $REX['ADDON']['install'][$myself] = 1;
        }
    }
}
$REX['ADDON']['install'][$myself] = 0;
Пример #9
0
title($I18N->msg("title_templates"), "");
$OUT = TRUE;
if (isset($function) and $function == "delete") {
    $del = new sql();
    $del->setQuery("SELECT rex_article.id,rex_template.name FROM rex_article \r\n      LEFT JOIN rex_template ON rex_article.template_id=rex_template.id \r\n      WHERE rex_article.template_id='{$template_id}' LIMIT 0,10");
    if ($template_id == 1) {
        $message = $I18N->msg("cant_delete_default_template");
    } else {
        if ($del->getRows() > 0) {
            $message = $I18N->msg("cant_delete_template_because_its_in_use", htmlspecialchars($del->getValue("rex_template.name")));
        } else {
            $del->query("DELETE FROM rex_template WHERE id = '{$template_id}' LIMIT 1");
            // max. ein Datensatz darf loeschbar sein
            $message = $I18N->msg("template_deleted");
            rex_deleteDir($REX['INCLUDE_PATH'] . "/generated/templates/" . $template_id . ".template", 0);
        }
    }
}
if (isset($function) and ($function == "add" or $function == "edit")) {
    if (isset($save) and $save == "ja") {
        if ($function == "add") {
            $ITPL = new sql();
            $ITPL->setTable("rex_template");
            $ITPL->setValue("name", $templatename);
            $ITPL->setValue("active", $active);
            $ITPL->setValue("content", $content);
            $ITPL->insert();
            $template_id = $ITPL->last_insert_id;
            $message = $I18N->msg("template_added");
        } else {
Пример #10
0
         $attributes = rex_setAttributes("ctype", $ctypes, $attributes);
         $attributes = rex_setAttributes("modules", $modules, $attributes);
         $attributes = rex_setAttributes("categories", $categories, $attributes);
         $TPL->setWhere("id='{$template_id}'");
         $TPL->setValue("attributes", addslashes($attributes));
         $TPL->addGlobalUpdateFields();
         if ($TPL->update()) {
             $info = $I18N->msg("template_updated");
         } else {
             $warning = $TPL->getError();
         }
     }
     // werte werden direkt wieder ausgegeben
     $templatename = stripslashes($templatename);
     $content = stripslashes($content);
     rex_deleteDir($REX['INCLUDE_PATH'] . "/generated/templates", 0);
     if ($goon != "") {
         $function = "edit";
         $save = "nein";
     } else {
         $function = "";
     }
 }
 if (!isset($save) or $save != "ja") {
     echo '<a name="edit"></a>';
     // Ctype Handling
     $ctypes = rex_getAttributes("ctype", $attributes);
     $modules = rex_getAttributes("modules", $attributes);
     $categories = rex_getAttributes("categories", $attributes);
     if (!is_array($modules)) {
         $modules = array();
Пример #11
0
function Installer_clean_addon_setup($includeDir, $file = false)
{
    if ($file) {
        // Temporäre ZIP-Datei nach dem Entpacken wieder löschen!
        unlink($includeDir . "/" . $file);
    }
    // Prüft, ob Versteckte Verzeichnisse von MACOSX im ZIP abgelegt worden sind
    // TODO: Windows thumbs.db ebenfalls löschen
    // TODO: SVN Dateien löschen
    // Dafür muss eine rekrusive Funktion geschrieben werden
    if (is_dir($includeDir . '/addons/__MACOSX')) {
        // Wenn Mac-Ordner existieren, werden diese gelöscht.
        // Rufe Redaxos deleteDir Funktion auf
        rex_deleteDir($includeDir . '/addons/__MACOSX', true);
    } else {
        // return
        return false;
    }
}
<?php

$image_dir = $REX['MEDIAFOLDER'] . '/quixexplorer';
if (rex_deleteDir($image_dir)) {
    $REX['ADDON']['install']['quixexplorer'] = 0;
} else {
    $REX['ADDON']['installmsg']['quixexplorer'] = 'Der Ordner "' . $image_dir . '" konnte nicht gel�scht werden';
}
/**
 * Importiert das Tar-Archiv $filename in den Ordner /files
 * 
 * @param string Pfad + Dateinamen zum Tar-Archiv
 * 
 * @return array Gibt ein Assoc. Array zurück.
 *               'state' => boolean (Status ob fehler aufgetreten sind)
 *               'message' => Evtl. Status/Fehlermeldung  
 */
function rex_a1_import_files($filename)
{
    global $REX, $I18N_IM_EXPORT;
    $return = array();
    $return['state'] = false;
    if ($filename == '') {
        $return['message'] = $I18N_IM_EXPORT->msg("no_import_file_chosen") . "<br>";
        return $return;
    }
    // Ordner /files komplett leeren
    rex_deleteDir($REX['INCLUDE_PATH'] . "/../../files");
    $tar = new tar();
    $tar->openTAR($filename);
    if (!$tar->extractTar()) {
        $msg = $I18N_IM_EXPORT->msg("problem_when_extracting") . "<br>";
        if (count($tar->message) > 0) {
            $msg .= $I18N_IM_EXPORT->msg("create_dirs_manually") . "<br>";
            reset($tar->message);
            for ($fol = 0; $fol < count($tar->message); $fol++) {
                $msg .= rex_absPath(str_replace("'", "", key($tar->message))) . "<br>";
                next($tar->message);
            }
        }
    } else {
        $msg = $I18N_IM_EXPORT->msg("file_imported") . "<br>";
    }
    $return['state'] = true;
    $return['message'] = $msg;
    return $return;
}
function rex_deleteDir($file, $what = 0)
{
    if (file_exists($file)) {
        // @chmod($file,0775);
        if (is_dir($file)) {
            $handle = opendir($file);
            while ($filename = readdir($handle)) {
                if ($filename == '_readme.txt' || $filename == '.cvsignore') {
                    return;
                }
                if ($filename != "." && $filename != "..") {
                    rex_deleteDir($file . "/" . $filename);
                }
            }
            closedir($handle);
            if ($what == 1) {
                rmdir($file);
            } else {
                echo "";
            }
            // do nothing;
        } else {
            unlink($file);
        }
    }
}
<?php

/**
 * Addon Framework Classes
 * @author staab[at]public-4u[dot]de Markus Staab
 * @author <a href="http://www.public-4u.de">www.public-4u.de</a>
 * @package redaxo3
 * @version $Id: uninstall.inc.php,v 1.4 2007/09/09 10:23:29 kills Exp $
 */
rex_deleteDir('../files/addon_framework', true);
$REX['ADDON']['install']['addon_framework'] = 0;
// ERRMSG IN CASE: $REX['ADDON']['installmsg']['addon_framework'] = "Deinstallation fehlgeschlagen weil...";
function rex_delete_addon($addons, $addonname)
{
    global $REX, $I18N;
    $state = true;
    // zuerst deinstallieren
    $state = rex_uninstall_addon($addons, $addonname, false);
    if ($state === true) {
        // bei erfolg, komplett löschen
        rex_deleteDir($REX['INCLUDE_PATH'] . "/addons/{$addonname}", true);
        // regenerate Addons file
        $state = rex_generateAddons($addons);
    }
    return $state;
}
function rex_delete_addon($addons, $addonname)
{
    global $REX, $I18N;
    // System AddOns dürfen nicht gelöscht werden!
    if (in_array($addonname, $REX['SYSTEM_ADDONS'])) {
        return $I18N->msg('addon_systemaddon_delete_not_allowed');
    }
    // zuerst deinstallieren
    $state = rex_uninstall_addon($addons, $addonname, false);
    if ($state === true) {
        // bei erfolg, komplett löschen
        rex_deleteDir($REX['INCLUDE_PATH'] . "/addons/{$addonname}", true);
        // regenerate Addons file
        $state = rex_generateAddons($addons);
    }
    return $state;
}
function rex_deleteDir($file, $what = 0)
{
    if (file_exists($file)) {
        // @chmod($file,0775);
        if (is_dir($file)) {
            $handle = opendir($file);
            while ($filename = readdir($handle)) {
                if ($filename != "." && $filename != "..") {
                    rex_deleteDir($file . "/" . $filename);
                }
            }
            closedir($handle);
            if ($what == 1) {
                rmdir($file);
            } else {
                echo "";
            }
            // do nothing;
        } else {
            unlink($file);
        }
    }
    // recache all
    $Cache = new Cache();
    $Cache->removeAllCacheFiles();
}
 function rex_deleteDir($file, $delete_folders = FALSE)
 {
     $debug = FALSE;
     $state = TRUE;
     $file = rtrim($file, DIRECTORY_SEPARATOR);
     if (file_exists($file)) {
         // Fehler unterdrücken, falls keine Berechtigung
         if (@is_dir($file)) {
             $handle = opendir($file);
             if (!$handle) {
                 if ($debug) {
                     echo "Unable to open dir '{$file}'<br />\n";
                 }
                 return FALSE;
             }
             while ($filename = readdir($handle)) {
                 if ($filename == '.' || $filename == '..') {
                     continue;
                 }
                 if (!rex_deleteDir($file . DIRECTORY_SEPARATOR . $filename, $delete_folders)) {
                     $state = FALSE;
                 }
             }
             closedir($handle);
             if ($state !== TRUE) {
                 return FALSE;
             }
             // Ordner auch löschen?
             if ($delete_folders) {
                 // Fehler unterdrücken, falls keine Berechtigung
                 if (!@rmdir($file)) {
                     if ($debug) {
                         echo "Unable to delete folder '{$file}'<br />\n";
                     }
                     return FALSE;
                 }
             }
         } else {
             // Datei löschen
             // Fehler unterdrücken, falls keine Berechtigung
             if (!@unlink($file)) {
                 if ($debug) {
                     echo "Unable to delete file '{$file}'<br />\n";
                 }
                 return FALSE;
             }
         }
     } else {
         if ($debug) {
             echo "file '{$file}'not found!<br />\n";
         }
         // Datei/Ordner existiert nicht
         return FALSE;
     }
     return TRUE;
 }
Пример #20
0
 protected function createTemplate($params)
 {
     global $REX, $I18N;
     $function = 'add';
     $active = Watson::arrayCastVar($params, 'active', 'int', 0);
     $templatename = Watson::arrayCastVar($params, 'templatename', 'string', '');
     $content = Watson::arrayCastVar($params, 'content', 'string', '');
     $ctypes = Watson::arrayCastVar($params, 'ctype', 'array', array());
     $categories = Watson::arrayCastVar($params, 'categories', 'array', array());
     $modules = Watson::arrayCastVar($params, 'modules', 'array', array());
     /*
      * following Code is from REDAXO
      * include/pages/template.inc.php
      * 
      * change rex_sql > \rex_sql
      */
     $num_ctypes = count($ctypes);
     if ($ctypes[$num_ctypes] == "") {
         unset($ctypes[$num_ctypes]);
         if (isset($ctypes[$num_ctypes - 1]) && $ctypes[$num_ctypes - 1] == '') {
             unset($ctypes[$num_ctypes - 1]);
         }
     }
     // Daten wieder in den Rohzustand versetzen, da für serialize()/unserialize()
     // keine Zeichen escaped werden dürfen
     for ($i = 1; $i < count($ctypes) + 1; $i++) {
         $ctypes[$i] = stripslashes($ctypes[$i]);
     }
     // leerer eintrag = 0
     if (count($categories) == 0 || !isset($categories["all"]) || $categories["all"] != 1) {
         $categories["all"] = 0;
     }
     // leerer eintrag = 0
     if (count($modules) == 0) {
         $modules[1]["all"] = 0;
     }
     foreach ($modules as $k => $module) {
         if (!isset($module["all"]) || $module["all"] != 1) {
             $modules[$k]["all"] = 0;
         }
     }
     $TPL = \rex_sql::factory();
     $TPL->setTable($REX['TABLE_PREFIX'] . "template");
     $TPL->setValue("name", $templatename);
     $TPL->setValue("active", $active);
     $TPL->setValue("content", $content);
     $attributes = rex_setAttributes("ctype", $ctypes, "");
     $attributes = rex_setAttributes("modules", $modules, "");
     $attributes = rex_setAttributes("categories", $categories, "");
     $TPL->setValue("attributes", addslashes($attributes));
     $TPL->addGlobalCreateFields();
     if ($function == "add") {
         $attributes = rex_setAttributes("ctype", $ctypes, "");
         $attributes = rex_setAttributes("modules", $modules, $attributes);
         $attributes = rex_setAttributes("categories", $categories, $attributes);
         $TPL->setValue("attributes", addslashes($attributes));
         $TPL->addGlobalCreateFields();
         if ($TPL->insert()) {
             $template_id = $TPL->getLastId();
             $info = $I18N->msg("template_added");
         } else {
             $warning = $TPL->getError();
         }
     } else {
         $attributes = rex_setAttributes("ctype", $ctypes, $attributes);
         $attributes = rex_setAttributes("modules", $modules, $attributes);
         $attributes = rex_setAttributes("categories", $categories, $attributes);
         $TPL->setWhere("id='{$template_id}'");
         $TPL->setValue("attributes", addslashes($attributes));
         $TPL->addGlobalUpdateFields();
         if ($TPL->update()) {
             $info = $I18N->msg("template_updated");
         } else {
             $warning = $TPL->getError();
         }
     }
     // werte werden direkt wieder ausgegeben
     $templatename = stripslashes($templatename);
     $content = stripslashes($content);
     rex_deleteDir($REX['GENERATED_PATH'] . "/templates", 0);
     if ($goon != "") {
         $function = "edit";
         $save = "nein";
     } else {
         $function = "";
     }
     return array('success' => $info, 'error' => $warning);
 }