Installation IT-Recht Modul in self-hosted Shop

Thema wurde von Tobi (Sun-side-store), 15. Juni 2024 erstellt.

  1. Tobi (Sun-side-store)

    Registriert seit:
    27. Februar 2015
    Beiträge:
    20
    Danke erhalten:
    2
    Danke vergeben:
    9
    Hallo zusammen.
    Wir sind gerade dabei einen Teil unseres bestehenden Shops komplett aus zu lagern da die Produkte sich etwas "beißen". Für den neuen Shop haben die aktuellste Version 4.9.4 installiert was soweit auch alles passt. Die Rechtstexte möchten wir wie auch unserem bestehendne Shop von der IT-Recht Kanzlei einbinden.
    Mit großer Verwunderung mussten wir aber feststellen dass das Modul hierfür nicht mehr von Haus aus in der aktuellen Gambio Version für self-hosted Shops integriert ist. Rückfrage bei Gambio ergab dass das so nicht weiter gewünscht ist mit dem Verweis das wir doch auf Protected-Shops wechseln sollen. Zum Download bei der IT-Recht Kanzlei konnten wir nur eine uralte Version finden. Rückfrage hier ergab aber dass das Modul auch mit den aktuellen Versionen von Gambio läuft. Nun, das war anscheinen so nicht ganz richtig.
    Beim Versuch das Modul zu installieren bekam ich folgende Fehlermeldung:

    Erzeuge neue Admin-Rechte ...
    <h1>Unexpected error occurred...</h1>SQL Error!
    Table 'unserdatenbankname.admin_access' doesn't exist
    Query: show columns from admin_access like 'itrecht_config'

    Kurzer Blick in die Datenbank ergab das es die Tabelle ganz offensichtlich nicht mehr gibt. Beim stöbern im Forum bin ich drauf gestoßen das die Tabelle wohl umgezogen ist zu access_admin_roles. Bin mir aber nicht ganz sicher.

    Nachfolgend mal die Installationsdatei für das IT-Recht-Modul:

    PHP:
    <?php
    /* --------------------------------------------------------------
        itrecht_installer.php 2014 gm
        Gambio GmbH
        http://www.gambio.de
        Copyright (c) 2014 Gambio GmbH
        Released under the GNU General Public License (Version 2)
        [http://www.gnu.org/licenses/gpl-2.0.html]
        --------------------------------------------------------------
    */

    require 'includes/application_top.php';
    header('Content-Type: text/plain');

    if(!(isset(
    $_SESSION['customers_status']['customers_status_id']) && $_SESSION['customers_status']['customers_status_id'] == 0)) {
        die(
    'unauthorized');
    }

    $sql = array();
    $dirs = array();
    $fileperms = array();
    $orders_status = array();

    /* ================================================================================================= */


    $admin_access = array('itrecht_config');


    /* ================================================================================================= */


    function addOrdersStatus($orders_status_id$statusname$language_id) {
        if((
    $insert_id ordersStatusExists($statusname$language_id)) === false) {
            
    xtc_db_query("INSERT INTO orders_status (orders_status_id, language_id, orders_status_name) VALUES (".(int)$orders_status_id.", ".(int)$language_id.", '".$statusname."')");
            
    $insert_id xtc_db_insert_id();
        }
        return 
    $insert_id;
    }

    function 
    ordersStatusExists($statusname$language_id) {
        
    $query "SELECT orders_status_id FROM orders_status WHERE language_id = ".(int)$language_id." AND orders_status_name LIKE '%".$statusname."%'";
        
    $result xtc_db_query($query);
        
    $orders_status_id false;
        while(
    $row xtc_db_fetch_array($result)) {
            
    $orders_status_id $row['orders_status_id'];
        }
        return 
    $orders_status_id;
    }

    function 
    findNextOrdersStatusId() {
        
    $query "SELECT ((FLOOR(MAX(orders_status_id) / 10) + 1) * 10) AS next_id FROM `orders_status`";
        
    $result xtc_db_query($query);
        
    $row xtc_db_fetch_array($result);
        return 
    $row['next_id'];
    }


    function 
    addAdminAccess($entity$allow_all true) {
        
    $col_exists_query "show columns from admin_access like ':colname'";
        
    $col_exists_query strtr($col_exists_query, array(':colname' => $entity));
        
    $ce_result xtc_db_query($col_exists_query);
        if(
    xtc_db_num_rows($ce_result) > 0) {
            
    // columns already exists, don't do anything
            
    return false;
        }
        
    $add_col_query "ALTER TABLE `admin_access` ADD `:colname` INT( 1 ) NOT NULL DEFAULT '0';";
        
    $add_col_query strtr($add_col_query, array(':colname' => $entity));
        
    xtc_db_query($add_col_query);
        if(
    $allow_all) {
            
    $allow_query "UPDATE admin_access SET `:colname` = 1;";
            
    $allow_query strtr($allow_query, array(':colname' => $entity));
            
    xtc_db_query($allow_query);
        }
        return 
    true;
    }


    if(!empty(
    $sql)) {
        echo 
    "Fuehre Datenbankanpassungen durch ...\n";
        foreach(
    $sql as $query) {
            
    xtc_db_query($query);
        }
    }

    if(!empty(
    $admin_access)) {
        echo 
    "Erzeuge neue Admin-Rechte ...\n";
        foreach(
    $admin_access as $entity) {
            
    addAdminAccess($entity);
      }
    }

    if(!empty(
    $orders_status)) {
        echo 
    "Lege Bestellstatus an ...\n";
        
    $next_id findNextOrdersStatusId();
        foreach(
    $orders_status as $os) {
            foreach(
    $os as $lang_id => $osname) {
                
    addOrdersStatus($next_id$osname$lang_id);
            }
            
    $next_id++;
        }
    }


    if(!empty(
    $dirs)) {
        echo 
    "Erzeuge Verzeichnisse ...\n";
        foreach(
    $dirs as $dirdata) {
            if(!
    is_dir($dirdata['dirname'])) {
                
    $dir_made mkdir($dirdata['dirname'], $dirdata['mode'], $dirdata['recursive']);
                if(
    $dir_made !== true) {
                    echo 
    "FEHLER: "$dirdata['dirname'] ." konnte nicht erzeugt werden!\n";
                }
            }
        }
    }

    if(!empty(
    $fileperms)) {
        echo 
    "Ueberpruefe Datei-/Verzeichnisrechte ...\n";
        foreach(
    $fileperms as $fp) {
            if(
    $fp['access'] == 'write') {
                if(
    is_writeable($fp['file'])) {
                    echo 
    $fp['file'] . " - OK\n";
                }
                else {
                    echo 
    $fp['file'] ." - FEHLER: muss beschreibbar sein!\n";
                }
            }
        }
    }

    echo 
    "\n\nFertig.\n";
    Ich hatte gehofft anfang kommender Woche mit dem Shop Live zu gehen. Support seitens Gambio erhoffe ich mir da nicht und bei der IT-Recht Kanzlei wird sich da auf die schnelle vermutlich auch keine Lösung finden. Wäre super wenn mir hier jemand sagen könnte in wie fern ich die installations datei anpassen muss um das Modul installieren zu können.

    Grüße Tobi
     
  2. Tobi (Sun-side-store)

    Registriert seit:
    27. Februar 2015
    Beiträge:
    20
    Danke erhalten:
    2
    Danke vergeben:
    9
    Wir haben Dank @Dominik Späte eine Lösung gefunden.

    Vielen Dank Dominik!
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.475
    Danke erhalten:
    433
    Danke vergeben:
    158
    Ich stehe auch jetzt vor dem Problem das das Modul nicht mehr vorhanden ist.
    Ist jetzt nach dem Verkauf von Gambio das IT-Recht Modul rausgeflogen?
    Fände ich Schade da ich bereits Kunde bin von ITR und ganz sicher kein PS nutzen werde...
     
  4. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    12. November 2015
    Beiträge:
    187
    Danke erhalten:
    50
    Danke vergeben:
    50
    Ich bin und bleibe auch bei der ITR und hoffe, dass das Modul weiterhin nutzbar bleibt.