User Tools

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)