Gemeinsam zu mehr Effizienz in der Anwendungserstellung
Die Access Code Library besteht aus
Dieser Artikel beschreibt die Installationsschritte und die notwendigen Schritte für das Zusammenspiel der einzelnen Programme.
Inhaltsverzeichnis |
website: http://www.phpbb.com/ bzw. http://www.phpbb.de/
Download: http://www.phpbb.de/downloads/ ... dort ist bereits das deutsche Sprachpaket integriert.
Installationsanleitung: http://www.phpbb.de/downloads/dokumentation.php => Schnelleinstieg
Bei der Installation von phpBB gibt es keine besonderen Punkte zu beachten. Die Installation sollte ohne Probleme ablaufen.
Links zum Wiki, Bugtracker und WebSVN im Header einfügen.
Header-Datei: overall_header.html
Zur Quellcode-Formatierung kann noch ein GeSHi-MOD eingebaut werden.
Anleitung: http://www.phpbb.de/community/viewtopic.php?f=88&t=169688
1. Download von GeSHi: http://qbnz.com/highlighter/
Die alte Version 1.0.8.4 installieren, da in dieser mehr Sprachen (z. B. VB) enthalten sind. Außerdem kann diese Version auch für die Wiki-Erweiterung genutzt werden.
2. GeSHi-Verzeichnis nach include kopieren
../include/ - geshi/ - contrib/ - docs/ - geshi/ - geshi.php
3. Dateien bbcode.php und message_parser.php gemäß Anleitung anpassen
bbcode.php, message_parser.php
website: http://www.mediawiki.org/
Download: http://www.mediawiki.org/wiki/Download
Installationsanleitung: http://www.mediawiki.org/wiki/Installation
* navigation ** mainpage|mainpage-description ** topics-url|topics ** randompage-url|randompage ** currentevents-url|currentevents ** recentchanges-url|recentchanges ** helppage|help * ** http://forum.access-codelib.net|Forum ** http://bug.access-codelib.net|Bugtracker ** http://source.access-codelib.net|Subversion * SEARCH * TOOLBOX * LANGUAGES
Zur Quellcode-Formatierung kann eine GeSHi-Erweiterung eingebaut werden.
Anleitung + Download: Extension:SyntaxHighlight GeSHi
1. SyntaxHighlight_GeSHi-Verzeichnis in den extensions-Ordner kopieren
../extensions/ - SyntaxHighlight_GeSHi/ - geshi/ ... kann entfallen, wenn man den geshi-Ordner aus dem Forum verwendet. - README - SyntaxHighlight_GeSHi.class.php - SyntaxHighlight_GeSHi.i18n.php - SyntaxHighlight_GeSHi.php
2. LocalSettings.php anpassen
require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
Damit sich ein Benutzer nicht mehrmals registrieren muss, werden die Benutzerden aus dem phpBB genutzt. Dafür kann wieder eine Extension verwendet werden. Anleitung + Download: Extension:PHPBB/Users Integration
1. Die php-Dateien aus dem Auth_phpBB-Verzeichnis in den extensions-Ordner kopieren
../extensions/ - Auth_phpBB.php - iAuthPlugin.php - PasswordHash.php
2. Im phpBB-Forum eine Benutzergruppe Wiki einrichten
3. LocalSettings.php anpassen
// PHPBB User Database Plugin. (Requires MySQL Database) require_once './extensions/Auth_phpBB.php'; $wgAuth_Config = array(); // Clean. $wgAuth_Config['WikiGroupName'] = 'Wiki'; $wgAuth_Config['UseWikiGroup'] = true; $wgAuth_Config['UseExtDatabase'] = false; $wgAuth_Config['UserTB'] = 'phpbb_users'; // Name of your PHPBB user table. (i.e. phpbb_users) $wgAuth_Config['GroupsTB'] = 'phpbb_groups'; // Name of your PHPBB groups table. (i.e. phpbb_groups) $wgAuth_Config['User_GroupTB'] = 'phpbb_user_group'; // Name of your PHPBB user_group table. (i.e. phpbb_user_group) $wgAuth_Config['PathToPHPBB'] = '/pfad-zum-phpbb-forum/'; // Path from this file to your phpBB install. // Local $wgAuth_Config['LoginMessage'] = '<b>You need a phpBB account to login.</b><br /><a href="' . $wgAuth_Config['PathToPHPBB'] . 'ucp.php?mode=register">Click here to create an account.</a>'; // Localize this message. $wgAuth_Config['NoWikiError'] = 'You are not a member of the required phpBB group.'; // Localize this message. $wgAuth = new Auth_phpBB($wgAuth_Config); // Auth_phpBB Plugin.
Damit Dateiinformationen aus dem Subversion-Repository im Wiki angezeigt werden können, kann die SVNIntegration-Erweiterung installiert werden. Anleitung + Download: Extension:SVNIntegration
Damit diese Erweiterung funktioniert, muss PEAR und das PEAR-VersionControl_SVN-Paket installiert sein.
var $svn_path = '/usr/local/bin/svn';
Bei Bedarf den svn-Parameter --config-dir in SVNIntegration.setup.php einstellen. Im Verzeichnis <config-dir>/auth/svn.ssl.server sollte dann die Kennung für den Server liegen, von dem das Zertifikat akzeptiert wurde. Das kann z. B. durch den Aufruf einer svn-Anweisung in einer Shell erfolgen.
// config-dir $SVNIntegrationSettings['svnParams']['config-dir'] = "/pfad-zum-subversion-config-dir";
Notfalls könnten auch die svn-Parameter --trust-server-cert und --non-interactive ergänzt werden (diese müssen aber in SVNIntegration.body.php eingearbeitet werden).
Flexibler ist die Lösung mit dem Config-Verzeichnis, in dem die Server-Kennung gespeichert ist.
website: http://websvn.tigris.org/ und http://www.websvn.info/ Download: http://websvn.tigris.org/servlets/ProjectDocumentList
1. Upload ins Zielverzeichnis des Webservers
2. distconfig.php im Verzeichnis include auf config.php umbenennen
3. Parameter in config.php einstellen
$config->setConfigPath('/pfad-zum-subversion-config-dir');
$config->addRepository('ClodeLib', 'https://svn.access-codelib.net/svn/codelib');
$config->setContentEncoding('ANSI');
4. Schreibrechte prüfen
5. Layout
Dafür muss nur in der Konfigurationsdatei config.php folgende Zeile auskommentiert werden:
$config->useBugtraqProperties();
In den SVN-Bugtraq-Eigenschaften sind folgende Einstellungen vorzunehmen:
Eigenschaft | Wert |
---|---|
bugtraq:url | http://bug.access-codelib.net/view.php?id=%BUGID% |
bugtraq:logregex | [Bb]ug)s?:?(\s*(,|[au]nd)?\s*#\d+)+
(\d+) |
bugtraq:warnifnoissue | true |
bugtraq:url gibt die URL zum jeweiligen Eintrag an. %BUGIG% wird automatisch mit den jeweiligen Nummern ersetzt. Damit die Bug/Issue-Nummer erkannt wird, ist die Eigenschaft bugtraq:logregex mit einem passenen regex-Ausdruck zu versehen. Der Wert in bugtraq:logregex besteht aus zwei Zeilen. In der ersten Zeile ist der Ausdruck zum Auffinden der Bug-Kennung. Die zweite Zeile ist zum Auslesen der Zahl aus dem gefundenen Text. Mit bugtraq:warnifnoissue wird eingestellt, ob eine Warnung angezeigt werden soll, wenn im Commit-Test kein Text enthalten ist. Diese Einstellung ist sinnvoll, da damit eine irrtümliche Commit-Anweisung ohne Kommentar verhindert wird.
Diese Eigenschaften können z. B. vom Windows-Client mittels TortoiseSVN eingestellt werden.
website: http://www.mantisbt.org/
Download: http://www.mantisbt.org/download.php
Installationsanleitung: http://www.mediawiki.org/wiki/Installation
Links:
Das ist eine etwas umfangreichere Integration. Zusätzlich zu den Mantis-Dateien muss auch noch ein svn-Hook eingerichtet werden.
1. Parameter für checkin.php in config_inc.php einstellen
# --- SubVersion - commit (svn-hook: post-commit) --- # $g_source_control_account = 'svn'; $g_source_control_notes_view_status = 'VS_PUBLIC'; $g_source_control_regexp = '/\b(?:[Bb]ug|[Ii]ssue|[Bb]ugtracker)\s*[#]{0,1}(\d+)\b/i'; $g_source_control_set_status_to = RESOLVED; $g_source_control_set_resolution_to = FIXED; $g_source_control_fixed_regexp = '/\bfix(?:ed|es)\s+(?:bug|issue)?\s*[#]{0,1}(\d+)\b/i';
2. post-commit einstellen Beispiele:
file: <subversion-verzeichnis>/<Repository-Verzeichnis>/hooks/post-commit
#!/bin/bash REPOS="$1" REV="$2" #Variante mit Bezug zum SVN-Verzeichnis in Mantis # siehe: http://www.mantisbt.org/bugs/view.php?id=8070 COMMIT_MSG=$(svnlook log -r $REV $REPOS) CHANGED_FILES=$(svnlook changed -r $REV $REPOS | sed s/^/SVN:$REV:/) AUTHOR=$(svnlook author -r $REV $REPOS) DATE=$(svnlook date -r $REV $REPOS) /usr/bin/php -f /pfad-zum-mantis-ordner/scripts/checkin.php <<zzzMantiszzz $COMMIT_MSG --- Changeset --- $DATE, $AUTHOR SVN:Revision: $REV $CHANGED_FILES zzzMantiszzz
[1] http://www.mantisbt.org/bugs/view.php?id=8070
[2] http://ascendwiki.cheme.cmu.edu/Automatic_URL_linking_to_ViewVC_from_Mantis
/* * Subversion */ # --- SVN linking --------------- # Converts SVN filenames into URLs pointing to your WebSVN server # (e.g.: 'SVN:513:trunk/myproject/readme.txt') # # insert the URL to your WebSVN server # eg: http://www.mydomain.org/WebSVN/ # (include trailing slash, no php filename) $g_svn_web = 'http://source.access-codelib.net/'; # the WebSVN name of the repository # (WebSVNs $config->addRepository()) $g_svn_web_repname = 'codelib'; # when showing a file, WebSVN can either display # a diff with the previous version (ON) or # the whole file contents (OFF). $g_svn_web_showdiff = ON;
In die folgenden Code ergänzen:
# --- Wiki Integration --- # # Wiki Integration Enabled? $g_wiki_enable = ON; # Wiki Engine $g_wiki_engine = 'mediawiki'; # Wiki namespace to be used as root for all pages relating to this mantis installation. $g_wiki_root_namespace = 'mantis'; # URL under which the wiki engine is hosted. Must be on the same server. # $g_wiki_engine_url = $t_protocol . '://' . $t_host . '/%wiki_engine%/'; $g_wiki_engine_url = $t_protocol . '://wiki.access-codelib.net/';
Dafür müsste eine Wiki-Vorlage ausreichen.
Beispiel: Bug #5
Eine in Mantis integrierte Lösung konnte ich nicht finden. Daher wurde als Notlösung direkt in den Quellcode von Mantis eingegriffen und die phpBB-Benutzer-Tabelle verwendet.
| ||
--Poet 10:40, 6. Dez. 2009 (UTC) |
function auth_does_password_match( $p_user_id, $p_test_password ) { $t_configured_login_method = config_get( 'login_method' ); if( LDAP == $t_configured_login_method ) { return ldap_authenticate( $p_user_id, $p_test_password ); } $t_password = user_get_field( $p_user_id, 'password' ); $t_login_methods = Array( MD5, CRYPT, PLAIN, ); foreach( $t_login_methods as $t_login_method ) { // --- Passwort von phpBB verwenden if (!class_exists('PasswordHash')) { require_once './core/PasswordHash.php'; } $PasswordHasher = new PasswordHash(8, TRUE); if ($PasswordHasher->CheckPassword($p_test_password, $t_password)) { return true; } } return false; }
function custom_function_default_auth_can_change_password() { return false; }
Sollte keine Sicht erstellt werden können, musst alle Select-Anweisungen, die auf die phpBB-Felder zugreifen, angepasst werden. Auch die SQL-Anweisungen mit Select * in user_api.php müssen geändert werden.
Die Änderungen sind im Subversion-Repository access-codelib-website zu finden.