ilch Forum » Allgemein » HTML, PHP, SQL,... » uninstaller einbinden in install.php

Geschlossen
  1. #1
    User Pic
    Maretz Hall Of Fame
    Registriert seit
    28.02.2009
    Beiträge
    740
    Beitragswertungen
    74 Beitragspunkte
    Hallo.

    Bin eben dabei mein erstes Modul zu entwickeln.Soweit klappt alles recht gut.
    Auch wird vor der install geprüft, ob es die Tabelle schon gibt.
    Nur würde ich gerne die Option eines uninstaller mit einsetzen, um ggf. die Einträge in der DB wieder löschen zu können.
    Nur fehlt mir jeglicher Ansatz ... lächeln
    Würde mich über Info´s zu diesem Thema freuen.
    Hier mal die aktuelle install.php :

    <?php
    
    if ( empty ($_POST['step']) ) { ?>
    <html>
      <head><title>[ I n s t a l l ] XXXXXXXXXXX</title>
      <link href="http://holdirbootstrap.de/dist/css/bootstrap.min.css" rel="stylesheet">
        <link href="http://holdirbootstrap.de/examples/jumbotron-narrow/jumbotron-narrow.css" rel="stylesheet">
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
    
    </head>
      <body style="background:#141414">
    		<form action="install.php" method="POST">
    <input type="hidden" name="step" value="3">
     <div class="container">
    <div class="panel panel-warning" style="margin-top:20%">
      <div class="panel-body">
        <legend><h4><img style="float:left;margin-right:7px;" src="http://www.maretz.eu/icon.ico">  XXXXXXXXX <small>by <a href="http://www.maretz.eu" target="_blank"><strong>Maretz.eu</strong></a></small></h4></legend>
    <p>Hier ein kleiner text zu dem Modul</p>
    <p><i class="fa fa-exclamation-triangle" style="color:#ff0000"></i> Lege dir zuerst eine <strong><a href="admin.php?backup" target="_blank"><i class="fa fa-external-link"></i> Sicherheits Kopie der Datenbank</a></strong> an.</p>
    <p>Dr&uuml;cke auf Installieren, um die MySQL Datenbank zu erweitern.</p>
    <br><br>
    <p class="text-center"><input class="btn btn-default" type="submit" value="Installieren"> <a class="btn btn-warning" href="index.php?">Installation abbrechen</a></p>
      </div>
    </div>
    </div>
    </form>
     </body>
    </html>
    <?php
    
    } elseif ($_POST['step'] == '3') {
    define ( 'main' , TRUE );
    require_once('include/includes/config.php');
    require_once('include/includes/func/db/mysql.php');
    db_connect();
    $check_dc = db_query("SHOW TABLES LIKE 'prefix_XXXXXX'");
    if (db_num_rows($check_dc)) {
    echo "
    <html>
      <head><title>[ I n s t a l l ] XXXXXXXXXXX</title>
      <link href=\"http://holdirbootstrap.de/dist/css/bootstrap.min.css\" rel=\"stylesheet\">
        <link href=\"http://holdirbootstrap.de/examples/jumbotron-narrow/jumbotron-narrow.css\" rel=\"stylesheet\">
    <link href=\"//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\" rel=\"stylesheet\">
    
    </head>
      <body style=\"background:#141414\">
     <div class=\"container\">
            <div class=\"alert alert-danger\" style=\"margin-top:20%\"><h3><i class=\"fa fa-exclamation-triangle\"></i> Installation abgebrochen</h3>
       <p>Das Modul wurde bereits installiert!</p><br><p class=\"text-right\"><a class=\"btn btn-default\" href=\"index.php\">Zur Startseite</a></p></div>
    </div>
    </div>
     </body>
    </html>
    ";
    } 
    else {
    $sql_file = implode('',file('install.sql'));
    $sql_file = preg_replace ("/(\015\012|\015|\012)/", "\n", $sql_file);
    $sql_statements = explode(";\n",$sql_file);
    foreach ( $sql_statements as $sql_statement ) {
       if ( trim($sql_statement) != '' ) {
          #echo '<pre>'.$sql_statement.'</pre><hr>';
          db_query($sql_statement) OR die(
          '<span style="color:#FF0000;font-size:bold;">Bei der Installation ist ein Fehler aufgetreten. Bitte benachrigen Sie umgehend den Entwickler</span><br><br>Fehler: '.mysql_error());
       }
    }
    
    ?>
    <html>
      <head><title>[ I n s t a l l ] XXXXXXXXXXX</title>
      <link href="http://holdirbootstrap.de/dist/css/bootstrap.min.css" rel="stylesheet">
        <link href="http://holdirbootstrap.de/examples/jumbotron-narrow/jumbotron-narrow.css" rel="stylesheet">
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
    
    </head>
      <body style="background:#141414">
     <div class="container">
            <div class="alert alert-success" style="margin-top:20%"><h3><i class="fa fa-check-square-o"></i> Installation abgeschlossen</h3>
       <p>Sofern keine Fehler aufgetreten sind ist die Installation abgeschlo&szlig;en.</p>
    <p class="text-danger"></strong>Bitte unbedingt <u>install.sql</u> und <u>install.php</u> l&ouml;schen!</strong></p><br>
    <p class="text-right"><a class="btn btn-default" href="index.php">Zur Startseite</a></p></div>
    </div>
     </body>
    </html>
    <?php
    }
    }
    ?>


    Mfg Maretz lächeln

    Edit:

    Habe den uninstaller mittels

    $loeschen = "DROP TABLE prefix_XXX";
    $loesch = db_query($loeschen);
    $clear = "DELETE FROM prefix_modules WHERE url= 'XXX'";
    $loesch = db_query($clear);


    erstellen können.In Verbindung mit der install klappt dies nun ohne Probleme. lächeln




    Zuletzt modifiziert von Maretz am 23.11.2014 - 13:18:59
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Weisst du was jetzt richtig cool wäre?

    Bei vielen Mods werden ja einige Standart-Dateien überschrieben. Ein richtig guter Modentwickler würde jetzt folgendes machen:

    Alte Dateien, die überschrieben werden, in ein Verzeichnis kopieren. Wenn die Mod deinstalliert wird, werden die überschriebenen Standard-Dateien zurückkopiert.

    Sowas wäre echt nice, ist mir gerade durch Zufall eingefallen, als ich deinen Post hier gelesen habe glücklich
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Maretz Hall Of Fame
    Registriert seit
    28.02.2009
    Beiträge
    740
    Beitragswertungen
    74 Beitragspunkte
    Ich befinde mich ja noch am Start zum Thema PHP/MySQL .
    Ich bin froh erstmal die install und uninstaller erstellt zu haben .:D
    Das geplante Modul ersetzt ja keine Dateien.
    Deine Idee ist allerdings gut, sofern das nötige Wissen vorhanden ist . schockiert

    Mfg Maretz
    1 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Dann lass uns mal dieses Thema als neuen Feature-Request an alle Modersteller vorschlagen zwinker
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten