MantisBT-WackoWiki Integration
Current version: 0.2 Compatible with: R6.x and MantisBT 2.x Credits: WikiAdmin URL: https://www.mantisbt.org/ |
1. Integrate WackoWiki into MantisBT
Implemented in MantisBT 2.26.0.
This will add a direct link to your WackoWiki in your Mantis Bug Tracker.
1.1. Apply the patch to your MantisBT installation
-
core/classes/MantisCoreWikiPlugin.class.php
-
core/wiki_api.php
file:wackowiki_integration_mantis2.1.0.patch
diff --git a/config_defaults_inc.php b/config_defaults_inc.php --- a/config_defaults_inc.php +++ b/config_defaults_inc.php @@ -3782,7 +3782,7 @@ /** * Wiki Engine. - * Supported engines: 'dokuwiki', 'mediawiki', 'twiki', 'wikka', 'xwiki' + * Supported engines: 'dokuwiki', 'mediawiki', 'twiki', 'wackowiki', 'wikka', 'xwiki' * @global string $g_wiki_engine */ $g_wiki_engine = ''; diff --git a/core/classes/MantisCoreWikiPlugin.class.php b/core/classes/MantisCoreWikiPlugin.class.php --- a/core/classes/MantisCoreWikiPlugin.class.php +++ b/core/classes/MantisCoreWikiPlugin.class.php @@ -218,6 +218,65 @@ } /** + * Basic WackoWiki support with old-style wiki integration. + */ +class MantisCoreWackowikiPlugin extends MantisCoreWikiPlugin { + /** + * Plugin Registration + * @return void + */ + function register() { + $this->name = 'MantisBT WackoWiki Integration'; + $this->version = '0.1'; + $this->requires = array( + 'MantisCore' => '2.0.0', + ); + } + + /** + * Wiki base url + * + * @param integer $p_project_id A project identifier. + * @return string + */ + function base_url( $p_project_id = null ) { + $t_base = plugin_config_get( 'engine_url' ) . ''; + + $t_namespace = ucfirst( plugin_config_get( 'root_namespace' ) ); + if( !is_blank( $t_namespace ) ) { + $t_base .= $t_namespace . '/'; + } + + if( !is_null( $p_project_id ) && $p_project_id != ALL_PROJECTS ) { + $t_base .= urlencode( project_get_name( $p_project_id ) ) . '/'; + } + return $t_base; + } + + /** + * Wiki link to a bug + * + * @param integer $p_event Event. + * @param integer $p_bug_id A bug identifier. + * @return string + */ + function link_bug( $p_event, $p_bug_id ) { + return $this->base_url( bug_get_field( $p_bug_id, 'project_id' ) ) . 'Issue' . (int)$p_bug_id; + } + + /** + * Wiki link to a project + * + * @param integer $p_event Event. + * @param integer $p_project_id A project identifier. + * @return string + */ + function link_project( $p_event, $p_project_id ) { + return $this->base_url( $p_project_id ) . ''; + } +} + +/** * Basic WikkaWiki support with old-style wiki integration. */ class MantisCoreWikkaWikiPlugin extends MantisCoreWikiPlugin { diff --git a/core/wiki_api.php b/core/wiki_api.php --- a/core/wiki_api.php +++ b/core/wiki_api.php @@ -70,6 +70,9 @@ case 'twiki': plugin_child( 'MantisCoreTwiki' ); break; + case 'wackowiki': + plugin_child( 'MantisCoreWackowiki' ); + break; case 'WikkaWiki': plugin_child( 'MantisCoreWikkaWiki' ); break;
1.2. Add the following settings to your MantisBT
-
config/config.inc.php
#################### # Wiki Integration # #################### $g_wiki_enable = ON; $g_wiki_engine = 'wackowiki'; $g_wiki_root_namespace = 'Bugs'; $g_wiki_engine_url = 'https://example.com/wiki/';
4. Now it should work. Enjoy!
2. Possible problems and solutions
2.1. Wiki Integration settings
$g_wiki_enable
Set to
ON
to enable Wiki integration. Defaults to OFF.
$g_wiki_engine
value:
'wackowiki'
$g_wiki_root_namespace
Wiki namespace to be used as root for all pages relating to this MantisBT installation.
e.g.
e.g.
'Bugs'
or leave it emptyNamespace: /
Bugs
/Project
/IssueNUMBER
- root namespace
- project name
- issue number
$g_wiki_engine_url
URL under which the wiki engine is hosted.
value:
''
(empty)
Must be on the same server as MantisBT, requires a trailing '/'.
If left empty (default), the URL is derived from the global MantisBT path, replacing the URL's path component by the wiki engine string, i.e. if
If left empty (default), the URL is derived from the global MantisBT path, replacing the URL's path component by the wiki engine string, i.e. if
-
$g_path = 'http://example.com/mantis/'
-
$g_wiki_engine = 'wackowiki'
, - the wiki URL will be
'http://example.com/wackowiki/'
.
value:
'https://example.com/wiki/'
3. Links
- WackoWiki site: https://wackowiki.org/
- Mantis site: https://www.mantisbt.org/
- https://www.mantisbt.org/bugs/view.php?id=22371 -> implemented with MantisBT 2.26.0
- Example: https://wackowiki.org/bugs/