Schritt für Schritt:
- Download aus dem SVN Directory: http://joomlacode.org/gf/project/docman/scmsvn/ . Hier die Version 87 aus vom 2007-05-07. Befehl zum Download:
svn checkout --username anonymous http://joomlacode.org/svn/docman
- Man packe das Verzeichnis docman/docman/trunk zu einem ZIP-Archiv zusammen und installiere dieses als Komponente in Joomla 1.5.
- Beim Installationsprozess tritt folgende Fehlermeldung in zweifacher Wiederholung auf:
* JInstaller::install: SQL error. DB function failed with error number 1136 Column count doesn't match value count at row 1
SQL=INSERT INTO `mansorg_modules` VALUES ('', 'Latest docs', '', 2, 'dmcpanel', 0, '0000-00-00 00:00:00', 1, 'mod_docman_latest', 0, 99, 1, '', 2, 1)
Das entsprechende SQL-Statement steht in docman/docman/trunk/docman.xml, außerdem weitere Statements die mit »INSERT INTO `#__modules`« beginnen und wohl auch korrigiert werden müssen. Das Problem: während DOCman davon ausgeht dass die Tabelle 15 Spalten hat sind es in Joomla 1.5 16 Spalten. In Mambo 4.5.2 / Joomla 1.0 sind die 15 Spalten in Reihenfolge:
`id` `title` `content` `ordering` `position` `checked_out` `checked_out_time` `published` `module` `numnews` `access` `showtitle` `params` `iscore` `client_id`
In Joomla 1.5 kommt als 16. Spalte am Ende “control” hinzu. Eine Lösung die für beide Versionen funktioniert ist, vollständige INSERT-Statements zu verwenden. Diese haben die Form:
INSERT INTO `mansorgs_modules` ( `id`, `title`, `content`, `ordering`, `position`, `checked_out`, `checked_out_time`, `published`, `module`, `numnews`, `access`, `showtitle`, `params`, `iscore`, `client_id`) VALUES ([...]);
Also muss man die oben gezeigte Klammer mit den 15 Spaltennamen in alle »
INSERT INTO `#__modules`
« Statements in docman/docman/trunk/docman.xml einfügen. - Die Installation gelingt jetzt. Greift man dann aber auf den Menüpunkt »DOCMan -> Home« zu so erscheint die Fehlermeldung »
fatal error: Call to a member function getCfg() on a non-object in [...]/administrator/components/com_docman/includes/docman.html.php on line 76
«. Ein »grep -r -n -C 1 "$_DOCMAN" * | less
« indocman/docman/trunk
zeigt wo das betreffende »non-object« angelegt wird:admin.docman.php:20:$_DOCMAN = new dmMainFrame(_DM_TYPE_ADMIN);
Das Problem liegt genau dort: man füge in der Zeile davor ein »
global $_DOCMAN;
«. Denn sonst ist$_DOCMAN
keine globale Variable, wird doch admin.docman.php von Joomla innerhalb (!) einer Funktion inkludiert. Damit ist dann$_DOCMAN
nur auf derselben Quellcodeebene erreichbar: es ist eine lokale Variable einer Funktion die in weiteren inkludierten Dateien sichtbar ist, aber nicht in darin definierten Funktionen selbst wenn diese »global $_DOCMAN
« einsetzen. - Der GET-Parameter »section« wird noch nicht korrekt beachtet. Es fehlt: in der Datei admin.docman.php im Abschnitt »
// retrieve some expected url (or form) arguments
« die Zeile »$section = mosGetParam($_REQUEST, 'section', '0');
«. - Die Toolbar im Backend wird nicht dargestellt. Es fehlt: »
global $section;
« vor
»$section = mosGetParam($_REQUEST, 'section', '0');
« in admin.docman.php. Grund wie bei$_DOCMAN
. Leider wird die Toolbar so noch ganz zu Beginn der Seite dargestellt. - Problem im Frontend:
Fatal error: Call to a member function getCfg() on a non-object in [...]/administrator/components/com_docman/classes/DOCMAN_user.class.php on line 269
Behebung: man füge in com_docman/docman.php ein »
global $_DOCMAN;
« und »global $_DMUSER;
«. - Problem im Frontend:
Catchable fatal error: Object of class Savant2_Error could not be converted to string in [...]/components/com_docman/themes/default/templates/page_docbrowse.tpl.php on line 45
Behebung: in administrator/components/com_docman/classes/DOCMAN_theme.class.php füge man vor der ersten Verwendung von
$savant_path
ein:global $savant_path; // Joomla includes this code within a function, so first use of $savant_path // makes it a local variable if we do not declare it global here
- Problem im Frontend: ein veralteter Wert des Itemid-Parameters wird als GET-Parameter verwendet
- Problem im Frontend: Icons werden nicht dargestellt, vermutlich ein Problem mit Pfaden das aus fehlender global-Deklaration einer Datei-globalen Variable basiert.
Leave a Reply