예제 #1
0
파일: hook.php 프로젝트: geldarr/hack-space
function plugin_webapplications_install()
{
    global $DB;
    include_once GLPI_ROOT . "/plugins/webapplications/inc/profile.class.php";
    $update = false;
    if (!TableExists("glpi_application") && !TableExists("glpi_plugin_appweb") && !TableExists("glpi_plugin_webapplications_webapplications")) {
        $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/empty-1.8.0.sql");
    } else {
        if (TableExists("glpi_application") && !TableExists("glpi_plugin_appweb")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.1.sql");
        }
        //from 1.1 version
        if (TableExists("glpi_plugin_appweb") && !FieldExists("glpi_plugin_appweb", "location")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.3.sql");
        }
        //from 1.3 version
        if (TableExists("glpi_plugin_appweb") && !FieldExists("glpi_plugin_appweb", "recursive")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.4.sql");
        }
        if (TableExists("glpi_plugin_appweb_profiles") && FieldExists("glpi_plugin_appweb_profiles", "interface")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.5.0.sql");
        }
        if (TableExists("glpi_plugin_appweb") && !FieldExists("glpi_plugin_appweb", "helpdesk_visible")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.5.1.sql");
        }
        if (!TableExists("glpi_plugin_webapplications_webapplications")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.6.0.sql");
        }
        //from 1.6 version
        if (TableExists("glpi_plugin_webapplications_webapplications") && !FieldExists("glpi_plugin_webapplications_webapplications", "users_id_tech")) {
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.8.0.sql");
        }
    }
    if ($update) {
        $query_ = "SELECT *\n                FROM `glpi_plugin_webapplications_profiles` ";
        $result_ = $DB->query($query_);
        if ($DB->numrows($result_) > 0) {
            while ($data = $DB->fetch_array($result_)) {
                $query = "UPDATE `glpi_plugin_webapplications_profiles`\n                      SET `profiles_id` = '" . $data["id"] . "'\n                      WHERE `id` = '" . $data["id"] . "';";
                $result = $DB->query($query);
            }
        }
        $query = "ALTER TABLE `glpi_plugin_webapplications_profiles`\n               DROP `name` ;";
        $result = $DB->query($query);
        Plugin::migrateItemType(array(1300 => 'PluginWebapplicationsWebapplication'), array("glpi_bookmarks", "glpi_bookmarks_users", "glpi_displaypreferences", "glpi_documents_items", "glpi_infocoms", "glpi_logs", "glpi_tickets"), array("glpi_plugin_webapplications_webapplications_items"));
        Plugin::migrateItemType(array(1200 => "PluginAppliancesAppliance"), array("glpi_plugin_webapplications_webapplications_items"));
    }
    PluginWebapplicationsProfile::createFirstAccess($_SESSION['glpiactiveprofile']['id']);
    return true;
}
예제 #2
0
function plugin_webapplications_install()
{
    global $DB;
    include_once GLPI_ROOT . "/plugins/webapplications/inc/profile.class.php";
    $update = false;
    if (!TableExists("glpi_application") && !TableExists("glpi_plugin_appweb") && !TableExists("glpi_plugin_webapplications_webapplications")) {
        $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/empty-2.0.0.sql");
    } else {
        if (TableExists("glpi_application") && !TableExists("glpi_plugin_appweb")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.1.sql");
        }
        //from 1.1 version
        if (TableExists("glpi_plugin_appweb") && !FieldExists("glpi_plugin_appweb", "location")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.3.sql");
        }
        //from 1.3 version
        if (TableExists("glpi_plugin_appweb") && !FieldExists("glpi_plugin_appweb", "recursive")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.4.sql");
        }
        if (TableExists("glpi_plugin_appweb_profiles") && FieldExists("glpi_plugin_appweb_profiles", "interface")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.5.0.sql");
        }
        if (TableExists("glpi_plugin_appweb") && !FieldExists("glpi_plugin_appweb", "helpdesk_visible")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.5.1.sql");
        }
        if (!TableExists("glpi_plugin_webapplications_webapplications")) {
            $update = true;
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.6.0.sql");
        }
        //from 1.6 version
        if (TableExists("glpi_plugin_webapplications_webapplications") && !FieldExists("glpi_plugin_webapplications_webapplications", "users_id_tech")) {
            $DB->runFile(GLPI_ROOT . "/plugins/webapplications/sql/update-1.8.0.sql");
        }
    }
    if (TableExists("glpi_plugin_webapplications_profiles")) {
        $notepad_tables = array('glpi_plugin_webapplications_webapplications');
        foreach ($notepad_tables as $t) {
            // Migrate data
            if (FieldExists($t, 'notepad')) {
                $query = "SELECT id, notepad\n                      FROM `{$t}`\n                      WHERE notepad IS NOT NULL\n                            AND notepad <>'';";
                foreach ($DB->request($query) as $data) {
                    $iq = "INSERT INTO `glpi_notepads`\n                             (`itemtype`, `items_id`, `content`, `date`, `date_mod`)\n                      VALUES ('" . getItemTypeForTable($t) . "', '" . $data['id'] . "',\n                              '" . addslashes($data['notepad']) . "', NOW(), NOW())";
                    $DB->queryOrDie($iq, "0.85 migrate notepad data");
                }
                $query = "ALTER TABLE `glpi_plugin_webapplications_webapplications` DROP COLUMN `notepad`;";
                $DB->query($query);
            }
        }
    }
    if ($update) {
        $query_ = "SELECT *\n                FROM `glpi_plugin_webapplications_profiles` ";
        $result_ = $DB->query($query_);
        if ($DB->numrows($result_) > 0) {
            while ($data = $DB->fetch_array($result_)) {
                $query = "UPDATE `glpi_plugin_webapplications_profiles`\n                      SET `profiles_id` = '" . $data["id"] . "'\n                      WHERE `id` = '" . $data["id"] . "';";
                $result = $DB->query($query);
            }
        }
        $query = "ALTER TABLE `glpi_plugin_webapplications_profiles`\n               DROP `name` ;";
        $result = $DB->query($query);
        Plugin::migrateItemType(array(1300 => 'PluginWebapplicationsWebapplication'), array("glpi_bookmarks", "glpi_bookmarks_users", "glpi_displaypreferences", "glpi_documents_items", "glpi_infocoms", "glpi_logs", "glpi_tickets"), array("glpi_plugin_webapplications_webapplications_items"));
        Plugin::migrateItemType(array(1200 => "PluginAppliancesAppliance"), array("glpi_plugin_webapplications_webapplications_items"));
    }
    PluginWebapplicationsProfile::initProfile();
    PluginWebapplicationsProfile::createFirstAccess($_SESSION['glpiactiveprofile']['id']);
    $migration = new Migration("2.0.0");
    $migration->dropTable('glpi_plugin_webapplications_profiles');
    return true;
}