summary refs log tree commit diff
path: root/MantisSmalltech.php
diff options
context:
space:
mode:
Diffstat (limited to 'MantisSmalltech.php')
-rw-r--r--MantisSmalltech.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/MantisSmalltech.php b/MantisSmalltech.php
new file mode 100644
index 0000000..fcdb162
--- /dev/null
+++ b/MantisSmalltech.php
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * Mantis plugin to make stylistic and navigation changes, as part of the
+ * Smalltech project.
+ */
+class MantisSmalltechPlugin extends MantisPlugin  {
+  /**
+   * A method that populates the plugin information and minimum requirements.
+   * @return void
+   */
+  function register() {
+    $this->name = plugin_lang_get( 'title' );
+    $this->description = plugin_lang_get( 'description' );
+    $this->page = '';
+
+    $this->version = '0.1';
+    $this->requires = array(
+      'MantisCore' => '2.3.0-dev',
+    );
+
+    $this->author = 'Irene Knapp';
+    $this->contact = 'ireneista@internetsafetylabs.org';
+    $this->url = 'https://irenes.space';
+
+    /* The MantisCoreFormatting plugin already does bug links. We could
+     * reimplement its logic, but it's simpler to just override its
+     * configuration. We set it in memory, not in the database, so that
+     * uninstalling MantisSmalltech will change it back.
+     *
+     * MantisCoreFormatting also has an "issue note" syntax, for links within
+     * a single issue thread. We leave that one at its default.
+     */
+    config_set_global( 'bug_link_tag', 'b/', true );
+  }
+
+  /**
+   * plugin hooks
+   * @return array
+   */
+  function hooks() {
+    $t_hooks = array(
+      'EVENT_DISPLAY_BUG_ID' => 'display_bug_id',
+    );
+
+    return $t_hooks;
+  }
+
+  function display_bug_id( $p_event_name, $p_string, $p_number ) {
+    return sprintf( 'b/%u', $p_number );
+  }
+}