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 <[email protected]>.

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:

[email protected]:/tmp > gzip -cd minimate.tar.gz | tar -xf -
L�uft der Rechner unter Linux oder wird GNU tar verwendet, gen�gt:

[email protected]:/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:

[email protected]:/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:

[email protected]:~ > rm -f /home/minivend/lib/MiniMate/pages/config/.access
[email protected]:~ > touch /home/minivend/lib/MiniMate/pages/config/.access
[email protected]:~ > rm -f /home/minivend/lib/MiniMate/pages/admin/.access
[email protected]:~ > 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
--------------------

  * 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 <H?>
  * Benutzung von Stylesheets anstatt von <FONT>-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