User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


mantisbt:plugins_sample

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
mantisbt:plugins_sample [2007/11/04 00:26]
jreese created
mantisbt:plugins_sample [2013/06/21 09:54] (current)
atrol
Line 1: Line 1:
 ====== Sample Plugins ====== ====== Sample Plugins ======
 +
 +
 +===== Super Cow Powers =====
 +
 +This is a very minimal plugin that does nothing but increase your site's Geek Factor.
 +
 +**Directory Structure**
 +<​code>​
 +mantis/
 +  plugins/
 +    Supercow/
 +      Supercow.php
 +</​code>​
 +
 +**''​plugins/​Supercow/​Supercow.php''​**
 +<code php>
 +<?php
 +
 +class SupercowPlugin extends MantisPlugin {
 +
 +  function register() {
 +    $this->​name ​       = 'Super Cow Powers';​
 +    $this->​description = 'Gives your Mantis installation super cow powers.';​
 +
 +    $this->​version ​    = '​1.0';​
 +    $this->​requires ​   = array(
 +      '​MantisCore' ​      => '​1.2.0',​
 +    );
 +
 +    $this->​author ​     = 'Fred Smith';​
 +    $this->​contact ​    = '​fredsmith@fredsmith.fsn';​
 +    $this->​url ​        = '​http://​fredsmith.fsn';​
 +  }
 +
 +  function init() {
 +    plugin_event_hook( '​EVENT_PLUGIN_INIT',​ '​header'​ );
 +  }
 +
 +  /**
 +   * Handle the EVENT_PLUGIN_INIT callback.
 +   */
 +  function header() {
 +    header( '​X-Mantis:​ This Mantis has super cow powers.'​ );
 +  }
 +
 +}
 +</​code>​
 +
 +===== SVN Links =====
 +
 +This is a plugin that detects svn:123 and hyperlinks it to the ViewVC web page that contains all the details of the changeset.
 +
 +**''​plugins/​svnlinks/​register.php''​**
 +<code php>
 +<?php
 +
 +/**
 + * Return plugin details to the API.
 + * @return array Plugin details
 + */
 +function plugin_callback_svnlinks_info() {
 +  return array(
 +    '​name'​ => 'SVN Links',​
 +    '​description'​ => '​Detects references to SVN changesets and hyperlinks them.',​
 +    '​version'​ => '​1.0',​
 +    '​author'​ => '​Victor Boctor',​
 +    '​contact'​ => '​vboctor -at- users.sourceforge.net',​
 +    '​url'​ => '​http://​www.mantisbt.org',​
 +  );
 +}
 +
 +/**
 + * Intitialize the plugin.
 + */
 +function plugin_callback_svnlinks_init() {
 + plugin_event_hook( '​EVENT_TEXT_LINKS',​ '​string_display_links'​ );
 +}
 +</​code>​
 +
 +**''​plugins/​svnlinks/​events.php''​**
 +<code php>
 +<?php
 +
 +# Configuration:​
 +# $g_plugin_svnlinks_svn_changeset_link = '​http://​mantisbt.svn.sourceforge.net/​viewvc/​mantisbt?​view=rev&​revision=%s';​
 +
 +/**
 + * Handle the EVENT_TEXT_LINKS callback.
 + */
 +function plugin_event_svnlinks_string_display_links( $p_event, $p_string ) {
 + $t_svn_changeset_link_format = config_get( '​plugin_svnlinks_svn_changeset_link',​ ''​ );
 + if ( is_blank( $t_svn_changeset_link_format ) ) {
 + return $p_string;
 + }
 +
 + $t_svn_changeset_link = sprintf( $t_svn_changeset_link_format,​ '​\\1'​ );
 +
 + $t_replace_with = '<a href="'​. $t_svn_changeset_link . '"​ target="​_new">​svn:​\\1</​a>';​
 +
 + return preg_replace( '/​svn\:​([[:​digit:​]]+)/​i',​
 + $t_replace_with,​
 + $p_string );
 +}
 +</​code>​
 +
 +
mantisbt/plugins_sample.1194150372.txt.gz ยท Last modified: 2008/10/29 04:31 (external edit)