function Installer_object2array($object) { $return = NULL; if (is_array($object)) { foreach ($object as $key => $value) { $return[$key] = Installer_object2array($value); } } else { $var = @get_object_vars($object); if ($var) { foreach ($var as $key => $value) { $return[$key] = Installer_object2array($value); } } else { return strval($object); } // strval and everything is fine } return $return; }
$addon = array(); $module = array(); // Leere Vars, wg, PHP Warning $foundSomething = ''; // leere var für die Suche $moduleList = ''; // Get Search ;) $search_module = rex_request('search_module', 'string'); // Prüfen, ob SESSION der Modules-Liste bereits vorliegt // In diesem Case wird das zurückgelieferte Ergebnis mittels Funktion // von einem Object in ein Array umgewandelt und zusätzlich eine Varriante // als object gespeichert Installer_clearSessionCache(); // Die Session muss jedes mal zerstört werden, da die Daten immer frisch abgerufen werden müssen $getModules = Installer_getAddons($moduleApi . "&vt=" . $search_module); $_SESSION['modulesAsArray'] = Installer_object2array($getModules); $_SESSION['modulesAsObject'] = $getModules; if (is_array($_SESSION['modulesAsArray'])) { foreach ($_SESSION['modulesAsArray'] as $key => $module) { $moduleList .= '<tr data-addon="?page=installer&subpage=modul_installer&pluginpage=install&moduleid=' . $module['id'] . '">'; $moduleList .= '<td>' . $module['name'] . '</td>'; $moduleList .= '<td>' . $module['shortdescription'] . '</td>'; //$moduleList .= '<td><textarea>'.htmlentities($module['module_in']).'</textarea></td>'; $moduleList .= '<td><img src="media/addons/installer/install.gif" alt="Mit Installer laden" title="Mit Installer laden" /></td>'; $moduleList .= '</tr>'; $foundSomething = $module['id']; // Bissi dirty, benötige jedoch einen Wert um zu Prüfen, ob Suche korrekt war, da das Array immer gefüllt ist. } } ?>
<div id="ajax-result"> <?php if ($force == "refreshList") { Installer_clearSessionCache(); echo rex_info('Die Liste wurde aktualisiert'); } ?> </div> <?php // Prüfen, ob SESSION der Addon-Liste bereits vorliegt // In diesem Case wird das zurückgelieferte Ergebnis mittels Funktion // von einem Object in ein Array umgewandelt und zusätzlich eine Varriante // für die installer.inc.php als object gespeichert if (!isset($_SESSION['addonsAsArray'])) { $getAddons = Installer_getAddons($addonApi); $_SESSION['addonsAsArray'] = Installer_object2array($getAddons); $_SESSION['addonsAsObject'] = $getAddons; } else { // Keine erneute Abfrage an Redaxo.de stellen // Array bereits in Session gespeichert } //print_r($result); //print_r($_SESSION['addonsAsObject']); if (is_array($_SESSION['addonsAsArray'])) { foreach (Installer_group_addons_by_id($_SESSION['addonsAsArray']) as $key => $addon) { // Damit nur die neueste Version in der Liste erscheint, müssen wir hier // noch mal eine Sortierungsfunktion aufrufen usort($addon, "cmp"); $addon_status = ''; if (OOAddon::isAvailable($addon[0]['addon_key'])) { $addon_status = '<img src="media/addons/installer/play.gif" title="Installert und aktiviert" alt="Installiert und aktiviert" />';