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: * MiniVend-Datenbanken editieren (z.B. Spalten löschen und hinzufügen [nur für Version 4.0 gültig]) * Seiten und andere Dateien (z.B. Bilder) holen und ablegen * eigene Benutzerverwaltung und Zugriffskontrolle [nur für Version 4.0 gü ltig] * ... Lizenz ****** Für MiniMate gelten die Bedingungen der GPL (URL: http://www.gnu.org/copyleft/gpl.html). 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 . Die Version von MiniMate ist z.Z. `4.0.0.1'. Ein Archiv mit dieser Version kann von dieser Website (URL: minimate.tar.gz) und von ftp.minivend.com (URL: ftp://ftp.minivend.com/pub/minimate/minimate.tar.gz) (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 (URL: http://www.linuxia.de/mmdemo/simple/admin/menu) http://www.linuxia.de/mmdemo/simple/config/menu (URL: 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: AuthType Basic AuthUserFile /home/minivend/users AuthName "MiniVend Administration" require valid-user 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: Index Update [index table=products extension=category spec="rf=category,0 ra=yes tf=category" ] 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 -------------------- * base-url * check-upload * counter * db_columns * dbinfo * display * display_directive * e * export-database * field_label [nur für Version 4.0 gültig] * global-value * grep-mm [nur für Version 4.0 gültig] * if-key-exists * if-mm [nur für Version 4.0 gültig] * if-sql * ifdef [nur für Version 4.0 gültig] * ifndef [nur für Version 4.0 gültig] * import_fields * list-databases [nur für Version 4.0 gültig] * list_directives * list_glob [nur für Version 4.0 gültig] * list-keys [nur für Version 4.0 gültig] * list_pages * mm-value [nur für Version 4.0 gültig] * newer * quick_table * read_serial * reconfigure * rotate-database * rotate-table * rotate_file * row-edit * send-help * set-alias * set-click * substitute * title-bar * unconfigure * uneval [nur für Version 4.0 gültig] * version * widget * with [nur für Version 4.0 gültig] * write_config * write_relative_file [nur für Version 4.0 gültig] `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 ========= * Index für binäre Suchen aktualisieren * Editieren der Datenbanken löst einen Laufzeitfehler aus Diverses ======== * Hilfeseiten zugänglich machen * Sichere Installation von Anfang an * Unterstützung für MiniMate komplett vom `https:'-Server * Ersetzen des externen `mv_upload'-Programms durch Benutzung von MiniVend-Tags beim Hochladen von Dateien via `admin/menu' * Durchsehen von vorhandenen Dateien (andere Dateien hochladen) * Berücksichtigung von Versionskontrollsysteme beim Hochladen von Seiten * Vergleich mit ShopAdmin Internationalisierung ===================== * nur gewünschte Sprachen verwenden * Benutzung eines neuen Tag, daß mit dem globalen Locale-Feld arbeitet, damit Speicher gespart mit. Saubere HTML-Ausgabe ==================== * Ersetzen von Font-Tags durch * Benutzung von Stylesheets anstatt von -Tags und Farbattributen. * HTML-Ausgabe überprüfen Ä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 .