MiniMate - Ein Verwaltungswerkzeug fr MiniVend
***********************************************

MiniMate, vormals MaxiVend genannt, ist ein WWW-Frontend fr 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 lschen und hinzufgen 
     [nur fr Version 4.0 gltig])
   * Seiten und andere Dateien (z.B. Bilder) holen und ablegen
   * eigene Benutzerverwaltung und Zugriffskontrolle [nur fr Version 4.0 g
     ltig]
   * ...

Lizenz
******

Fr 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 Verfgung gestellt. Wenn Sie ber
aktuelle Entwicklungen informiert werden mchten, schreiben Sie bitte eine
Email an <racke@linuxia.de>.

Die Version von MiniMate ist z.Z. `3.14.0.3'. 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) (tglich aktualisiert)
heruntergeladen werden und ist fr alle Betriebssysteme geeignet.

MiniVend 3.12 oder aktueller wird fr den Betrieb von MiniMate bentigt.

Zustzlich wird eine Testversion von MiniMate fr die im Alphatest
befindliche 4.0-Serie von MiniVend zur Verfgung gestellt. Diese kann als 
MiniMate-4.0beta2.0.1.tar.gz heruntergeladen werden. Diese enthlt
vermutlich noch diverse Fehler.

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
************

Zunchst 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 -
Luft der Rechner unter Linux oder wird GNU tar verwendet, gengt:

racke@linuxia.de:/tmp > tar -xzf minimate.tar.gz
Nach dem Auspacken des Archivs wechseln Sie in das Verzeichnis `
MiniMate-3.14.0.3'. Dann starten Sie das `install'-Skript mit dem
Installationsverzeichnis von MiniVend als Parameter:

racke@linuxia.de:/tmp/MiniMate-3.14.0.3 > perl install ~/mvend
Das Skript berprft das Verzeichnis auf das Vorhandensein der `
minivend.cfg', erzeugt ein Unterverzeichnis `lib/MiniMate' im
Installationsverzeichnis und kopiert die bentigten Dateien in dieses
Verzeichnis.

Nun editieren Sie `minivend.cfg' und fgen 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 fr 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 (fr 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 zugnglich
sein.

Zugriffsschutz mittels Apache
=============================

Um den Zugriff auf die MiniMate-Seiten ohne Passwort zu unterbinden, wird
zunchst 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 passwortgeschtzt 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' zunchst
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 knnen nur unterhalb des Katalogverzeichnisses abgelegt
werden. Aus Sicherheits- und Datenschutzgrnden verweigert man normalerweise
dem Webserver den Zugriff auf Dateien im Katalogverzeichnis. Um das
Hochladen von Bildern mit MiniMate zu ermglichen, mu man diese goldene
Regel jedoch durchbrechen. Es sollte jedoch nur das Unterverzeichnis mit den
Bildern freigegeben werden.

Zum Hochladen von Bildern whlen Sie auf der Seite `config/menu' "Andere
Dateien holen/ablegen".

Probleme
********

Schnelle binre Suche
=====================

Benutzt man die schnelle binre Suche (vgl. die MiniVend-Dokumentation, Fast
Binary Searching) und editiert man Datenbanktabellen mit MiniMate, wird der
Index fr die binre Suche nicht aktualisiert. Dies ist der Fall fr das `
simple'-Demo. Dort gibt es einen Index `category' fr 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 ' schlgt fehl
====================================

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

Editieren der Datenbanken lst einen Laufzeitfehler aus
=======================================================

Pumin Wuvanich berichtete ber dieses Problem. Ich konnte es leider nicht
reproduzieren. Vielleicht ist es mit Unterkatalogen verknpft.

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 fr Version 4.0 gltig]
*********************************************************************

Konfiguration
=============

Die Datenbank, in der die Informationen fr 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 fr Benutzerverwaltung und Zugriffskontrolle
in der Datenbank `minimate'.

Internationalisierung
*********************

Die Internationalisierung von MiniMate ist in Arbeit. Zustzliche
Freiwillige werden jedoch noch bentigt.

Eine russische, eine deutsche und eine franzsische bersetzung liegt
bereits vor.

Verzeichnis der MiniMate-Seiten
*******************************


`config/db_column' [nur fr Version 4.0 gltig]
     
        Add or delete columns of MiniVend databases.

`config/menu'
     
     Startseite der Version ohne Frames

`config/upload_other'
     
       Upload/Download von beliebigen Dateien


MiniMate fr 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 fr Version 4.0 gltig]
   * global-value
   * grep-mm [nur fr Version 4.0 gltig]
   * if-key-exists
   * if-mm [nur fr Version 4.0 gltig]
   * if-sql
   * ifdef [nur fr Version 4.0 gltig]
   * ifndef [nur fr Version 4.0 gltig]
   * import_fields
   * list-databases [nur fr Version 4.0 gltig]
   * list_directives
   * list_glob [nur fr Version 4.0 gltig]
   * list-keys [nur fr Version 4.0 gltig]
   * list_pages
   * mm-value [nur fr Version 4.0 gltig]
   * 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 fr Version 4.0 gltig]
   * version
   * widget
   * with [nur fr Version 4.0 gltig]
   * write_config

`MiniMate::CfgMgr'
==================


`mm_acl_enabled'
     
     Liefert einen Wahrheitswert zurck, wenn die Zugriffskontrolle von
     MiniMate aktiviert ist.


Makefile
========


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


TODO-Liste
**********

Bug Fixes
=========

   * Index fr binre Suchen aktualisieren
   * Editieren der Datenbanken lst einen Laufzeitfehler aus

Diverses
========

   * Hilfeseiten zugnglich machen
   * Sichere Installation von Anfang an
   * Untersttzung fr 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)
   * Bercksichtigung von Versionskontrollsysteme beim Hochladen von Seiten
   * Vergleich mit ShopAdmin

Internationalisierung
=====================

   * nur gewnschte 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 <H?>
   * Benutzung von Stylesheets anstatt von <FONT>-Tags und Farbattributen.
   * HTML-Ausgabe berprfen

nderungen
**********


12. December 99
     
     Neues Makefile-Target `localefiles'.

8. August 99
     
     Deutsche bersetzung von Birgitt Funk hinzugefgt.

5. August 99
     
     Russische bersetzung von Alexei Yakimovich hinzugefgt.

28.Juli 99
     
     MiniMate-Seiten fr Lokalisierung vorbereitet.

26.Juli 99
     
     Fehler beim Suchen nach Datenstzen behoben (`config/dbedit').

13.Juli 99
     
     Hilfe fr Konfigurationsdirektiven wird nun angezeigt.

6.Juli 99
     
     `Makefile.PL' an Win32-Systeme angepat und das `install'-Skript neu
     geschrieben.

29.Juni 99
     
     berflssigen Import von `Data::Dumper' entfernt.

16.Juni 99
     
     Untersttzung fr Internationalisierung hinzugefgt.


Danksagungen
************

Bedanken mchte ich mich bei Mike Heins als Originalautor von MaxiVend und
als unerschpfliche Quelle fr Hinweise und Bugfixes.

Betty Chung fr die Vorbereitung der Lokalisierung der MiniMate-Seiten.

Alexei Yakimovich fr die russische bersetzung.

Birgitt Funk fr die deutsche bersetzung.

Stephen M. LaBar, Jr. fr seine Hilfe bei der Anpassung von `Makefile.PL'
an Win32-Systeme.

Kaare Rasmussen und Robert Hutchinson fr den Bericht ber das `resize'
-Problem und Mike Heins fr einen Ausweg.

Bob Jordan fr den Bericht ber das `Data::Dumper'-Problem.

Marc Infield fr den Bericht ber einen Fehler in der Dokumentation
(20000103).

Waldemar Gerr fr seinen Vorschlag zur Dokumentation der Installation.

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

Historisches
************


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

