MiniMate - Ein Verwaltungswerkzeug für MiniVend

MiniMate, vormals MaxiVend genannt, ist ein WWW-Frontend für MiniVend. Programmiert wurde MaxiVend von Mike Heins, dem Autor von MiniVend. MiniMate erlaubt es, die folgenden Aufgaben auf einfache Art und Weise durchzuführen:

Inhaltsverzeichnis

Lizenz

Für MiniMate gelten die Bedingungen der GPL.

Startseite, Version und Download

Die neuesten Informationen über MiniMate werden auf http://www.linuxia.de/minimate/ zur Verfügung gestellt. Wenn Sie über aktuelle Entwicklungen informiert werden möchten, schreiben Sie bitte eine Email an <racke@linuxia.de>.

Die Version von MiniMate ist z.Z. 4.0.0.1. Ein Archiv mit dieser Version kann von dieser Website und von ftp.minivend.com (täglich aktualisiert) heruntergeladen werden und ist für alle Betriebssysteme geeignet.

MiniVend 4.00 oder aktueller wird für den Betrieb von MiniMate benötigt.

Zusätzlich wird eine ältere Version von MiniMate für die 3.x-Serie von MiniVend zur Verfügung gestellt. Diese kann als MiniMate-3.14.0.3.tar.gz heruntergeladen werden und erfordert mindestens MiniVend Version 3.12.

Demonstration

MiniMate kann getestet werden unter den folgenden Adressen:
http://www.linuxia.de/mmdemo/simple/admin/menu
http://www.linuxia.de/mmdemo/simple/config/menu

Installation

Zunächst packen Sie das Archiv in einem beliebigen Verzeichnis (nicht im Installationsverzeichnis von MiniVend) aus:
racke@linuxia.de:/tmp > gzip -cd minimate.tar.gz | tar -xf -
Läuft der Rechner unter Linux oder wird GNU tar verwendet, genügt:
racke@linuxia.de:/tmp > tar -xzf minimate.tar.gz
Nach dem Auspacken des Archivs wechseln Sie in das Verzeichnis MiniMate-4.0.0.1. Dann starten Sie das install-Skript mit dem Installationsverzeichnis von MiniVend als Parameter:
racke@linuxia.de:/tmp/MiniMate-4.0.0.1 > perl install ~/mvend
Das Skript überprüft das Verzeichnis auf das Vorhandensein der minivend.cfg, erzeugt ein Unterverzeichnis lib/MiniMate im Installationsverzeichnis und kopiert die benötigten Dateien in dieses Verzeichnis.

Nun editieren Sie minivend.cfg und fügen die folgende Zeile hinzu:

#include lib/MiniMate/minimate.cfg
Nach einem Neustart von MiniVend steht nun das Verwaltungswerkzeug zur Verfügung. Es kann von jedem Katalog darauf zugegriffen werden, und zwar über die Seiten admin/menu.html (mit Frames) bzw. config/menu.html (ohne Frames). Lautet die URL für den Zugriff auf den Katalog beispielsweise http://linuxia.de/cgi-bin/simple, ist die einfachere Variante von MiniMate unter http://linuxia.de/cgi-bin/simple/config/menu zu erreichen.

Bitte beachten Sie, daß zur Zeit die Schutz des Verwaltungswerkzeug vor unerlaubten Zugriff Ihnen liegt.

Probleme bei der Installation

Term::ReadKey vermisst resize

Can't exec "resize": No such file or directory at /usr/lib/perl5/site_perl/Term/ReadKey.pm line 305.
Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work.
The COLUMNS and LINES environment variables didn't work.
The resize program didn't work. at /usr/lib/perl5/site_perl/Term/ReadKey.pm line 323.
make: *** No targets.  Stop.
Das ist ein bekanntes Problem mit Perl und MakeMaker unter Solaris. Weitere Berichte gibt es über Linux-Installationen unter X (Slackware und SuSE). Mike Heins hat den folgenden Ausweg vorgeschlagen:
    export LINES=24 COLUMNS=80
oder (für Korn und ähnliche Shells)
    setenv LINES=24
    setenv COLUMNS=80
Eine Alternative ist die Deinstallation von Term::ReadKey.

Sicherheit

Das Verwaltungswerkzeug sollte nur dem jeweiligen Shopbesitzer zugänglich sein.

Zugriffsschutz mittels Apache

Um den Zugriff auf die MiniMate-Seiten ohne Passwort zu unterbinden, wird zunächst Apache entsprechend konfiguriert:
<LocationMatch /cgi-bin/simple/+(admin|config)>
AuthType Basic
AuthUserFile /home/minivend/users
AuthName "MiniVend Administration"
require valid-user
</LocationMatch>
Das Pluszeichen ist wichtig, da sonst der Zugriff über /cgi-bin/simple//config/menu.html nicht passwortgeschützt ist. Der Benutzername des Shopbesitzers wird in die Katalogkonfigurationsdatei catalog.cfg eingetragen:
RemoteUser minivend
Damit MiniVend dem Shopbesitzer den Zugriff auf die MiniMate-Seiten gestattet, legen wir in den Verzeichnissen config und admin zunächst eine leere Datei .access an:
racke@linuxia.de:~ > rm -f /home/minivend/lib/MiniMate/pages/config/.access
racke@linuxia.de:~ > touch /home/minivend/lib/MiniMate/pages/config/.access
racke@linuxia.de:~ > rm -f /home/minivend/lib/MiniMate/pages/admin/.access    
racke@linuxia.de:~ > touch /home/minivend/lib/MiniMate/pages/admin/.access
In den gleichen Verzeichnissen legen wir eine Datei .access_gate an, die dem durch Apache authentifizierten Benutzer den Zugriff gestattet:
*: [perl arg="config" interpolate=1]
        return 1 if $Safe{config}{RemoteUser} eq q{[data session user]};
        return 0;
    [/perl]

Zugriff über den internen Webserver

Eine nichtleere Datei mit dem Namen .access wird in allen Verzeichnissen, die MiniMate-Seiten enthalten, angelegt und signalisiert MiniVend Seiten in diesen Verzeichnissen nur dem jeweiligen Shopbesitzer anzuzeigen.Der Shopbesitzer wird durch die Direktiven RemoteUser und Password in der Katalogkonfiguration festgelegt:
Variable    MV_NO_CRYPT 1
RemoteUser  demo
Password    Gu3109n
Der Shopbesitzer greift auf die MiniMate-Seiten über den internen Webserver von MiniVend zu:
http://www.linuxia.de:7786/simple/config/menu

Benutzung von MiniMate

Bilder hochladen

Hochgeladene Dateien können nur unterhalb des Katalogverzeichnisses abgelegt werden. Aus Sicherheits- und Datenschutzgründen verweigert man normalerweise dem Webserver den Zugriff auf Dateien im Katalogverzeichnis. Um das Hochladen von Bildern mit MiniMate zu ermöglichen, muß man diese goldene Regel jedoch durchbrechen. Es sollte jedoch nur das Unterverzeichnis mit den Bildern freigegeben werden.

Zum Hochladen von Bildern wählen Sie auf der Seite config/menu "Andere Dateien holen/ablegen".

Probleme

Schnelle binäre Suche

Benutzt man die schnelle binäre Suche (vgl. die MiniVend-Dokumentation, Fast Binary Searching) und editiert man Datenbanktabellen mit MiniMate, wird der Index für die binäre Suche nicht aktualisiert. Dies ist der Fall für das simple-Demo. Dort gibt es einen Index category für die products-Datenbank. Als Abhilfe greift man nach dem Bearbeiten mit MiniMate einfach auf eine MiniVend-Seite, die der folgenden entspricht, zu:
<HTML><HEAD><TITLE>Index Update</TITLE></HEAD>
<BODY>
[index table=products
        extension=category
        spec="rf=category,0
              ra=yes
              tf=category"
]
</BODY>

Eingabe von Daten mit ' schlägt fehl

Dieser Fehler tritt bei der Verwendung von MiniVend 3.11 auf. Bitte eine aktuellere Version von MiniVend installieren.

Editieren der Datenbanken löst einen Laufzeitfehler aus

Pumin Wuvanich berichtete über dieses Problem. Ich konnte es leider nicht reproduzieren. Vielleicht ist es mit Unterkatalogen verknüpft.
206.111.118.118 4pedfCqg:206.111.118.118 - [30/June/1999:12:30:14 -0700] 
test01 /cgi-bin/simple/config/dbedit Runtime error: Can't use string 
("2ndDayAir") as a HASH ref while "strict refs" in use at (eval 68) line 22.
>
206.111.118.118 4pedfCqg:206.111.118.118 - [30/June/1999:12:30:31 -0700] 
test01 /cgi-bin/simple/config/dbedit Runtime error: Can't use string 
("Ground") as a HASH ref while "strict refs" in use at (eval 68) line 22.
>
206.111.118.118 4pedfCqg:206.111.118.118 - [30/June/1999:12:31:00 -0700] 
test01 /cgi-bin/simple/config/dbedit Runtime error: Can't use string 
("locale") as a HASH ref while "strict refs" in use at (eval 68) line 22.
>

Benutzerverwaltung und Zugriffskontrolle [nur für Version 4.0 gültig]

Zunächst wird eine Benutzerdatenbank (userdb) für den Katalog benötigt, der mit MiniMate verwaltet werden soll.

Konfiguration

Die Datenbank, in der die Informationen für Benutzerverwaltung und Zugriffskontrolle gespeichert werden, ist in die Katalogkonfiguration aufzunehmen:
Database minimate minimate.asc TAB
Die Datenbank kann auch einen anderen Namen haben, wenn die Variable MINIMATE_TABLE in der Katalogkonfiguration entsprechend gesetzt ist:
Variable MINIMATE_TABLE mmcontrol
Database mmcontrol mmcontrol.asc TAB

Datenbankbeschreibung

MiniMate speichert alle Daten für Benutzerverwaltung und Zugriffskontrolle in der Datenbank minimate.

Internationalisierung

Die Internationalisierung von MiniMate ist in Arbeit. Zusätzliche Freiwillige werden jedoch noch benötigt.

Eine russische, eine deutsche und eine französische Übersetzung liegt bereits vor.

Verzeichnis der MiniMate-Seiten

config/db_column [nur für Version 4.0 gültig]
Add or delete columns of MiniVend databases.
config/menu
Startseite der Version ohne Frames
config/upload_other
Upload/Download von beliebigen Dateien

MiniMate für Entwickler

MiniMate-Erweiterungen zur MML

directive_value NAME [PARSEVARS]
Ergibt den Wert der Konfigurationsdirektive NAME. Hat PARSEVARS einen wahren Wert, werden Variablen innerhalb des Wertes durch den Wert der Variablen ersetzt.

Undokumentierte Tags

MiniMate::CfgMgr

mm_acl_enabled
Liefert einen Wahrheitswert zurück, wenn die Zugriffskontrolle von MiniMate aktiviert ist.

Makefile

localefiles
Bringt die Lokalisierungsdateien im locales Unterverzeichnis auf den neuesten Stand.

TODO-Liste

Bug Fixes

Diverses

Internationalisierung

Saubere HTML-Ausgabe

Änderungen

12. December 99
Neues Makefile-Target localefiles.
8. August 99
Deutsche Übersetzung von Birgitt Funk hinzugefügt.
5. August 99
Russische Übersetzung von Alexei Yakimovich hinzugefügt.
28.Juli 99
MiniMate-Seiten für Lokalisierung vorbereitet.
26.Juli 99
Fehler beim Suchen nach Datensätzen behoben (config/dbedit).
13.Juli 99
Hilfe für Konfigurationsdirektiven wird nun angezeigt.
6.Juli 99
Makefile.PL an Win32-Systeme angepaßt und das install -Skript neu geschrieben.
29.Juni 99
Überflüssigen Import von Data::Dumper entfernt.
16.Juni 99
Unterstützung für Internationalisierung hinzugefügt.

Danksagungen

Bedanken möchte ich mich bei Mike Heins als Originalautor von MaxiVend und als unerschöpfliche Quelle für Hinweise und Bugfixes.

Betty Chung für die Vorbereitung der Lokalisierung der MiniMate-Seiten.

Alexei Yakimovich für die russische Übersetzung.

Birgitt Funk für die deutsche Übersetzung.

Stephen M. LaBar, Jr. für seine Hilfe bei der Anpassung von Makefile.PL an Win32-Systeme.

Kaare Rasmussen und Robert Hutchinson für den Bericht über das resize-Problem und Mike Heins für einen Ausweg.

Bob Jordan für den Bericht über das Data::Dumper-Problem.

Marc Infield für den Bericht über einen Fehler in der Dokumentation (20000103).

Waldemar Gerr für seinen Vorschlag zur Dokumentation der Installation.

Marci Beedle für seine Berichte über die Schwierigkeiten, die passende URL für MiniMate der Dokumentation zu entnehmen.

Historisches

28. February 2000
Version 4.0.0.1 freigegeben
12. Juli 99
Version 3.14.0.3 freigegeben
30. Juni 99
Version 3.14.0.2 freigegeben
29. Juni 99
Version 3.14.0.1 freigegeben

Index der Direktiven

Index


© 1999,2000 by Stefan Hornburg <racke@linuxia.de>
Letzte Änderung 09. März 2000