View source for Mantis-WackoWiki Integration

#||
||
Current version: 0.1
Compatible with: !!(green)**R5.5**!! and MantisBT 2.1
Credits: ((user:WikiAdmin WikiAdmin))
URL: https://www.mantisbt.org/
|{{toc numerate=1}} ||
||#

===Integrate WackoWiki into MantisBT===

This will add a direct link to your WackoWiki in your Mantis Bug Tracker.

  1. to the ##[Project]## Wiki page depending on the project name on the left menu
    * file:mantis_wiki.png

  2.#2 to the ##[Project]/[IssueNUMBER]## Wiki page on top of an issue in MantisBT
    * file:mantis_wiki_issue.png

====Apply the patch to your MantisBT installation====

  * ##core/classes/MantisCoreWikiPlugin.class.php##
  * ##core/wiki_api.php b/core/wiki_api.php##

file:wackowiki_integration_mantis2.1.0.patch
%%(hl diff)
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 .= urlencode( $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;
%%

====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!

===Possible problems and solutions===

====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. ##'Bugs'## or leave it empty

  Namespace: /##Bugs##/##Project##/##IssueNUMBER##
    1. root namespace
    2. project name
    3. 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
      1. ##$g_path = '~http://example.com/mantis/'##
      2. ##$g_wiki_engine = 'wackowiki'##,
      3. the wiki URL will be ##'~http://example.com/wackowiki/'##.

  value: ##'~https://example.com/wiki/'##

===Links===
  1. WackoWiki site: http://wackowiki.org/
  1. Mantis site: https://www.mantisbt.org/
  1. https://www.mantisbt.org/bugs/view.php?id=22371
  2. Example: http://wackowiki.org/bugs/
 

----
original is located at: ((/Dev/PatchesHacks/MantisWackoWikiIntegration))