<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML ><HEAD ><TITLE >Writing Extentions for gramps</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="NEXT" TITLE="Writing Filters" HREF="x57.html"></HEAD ><BODY CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="ARTICLE" ><DIV CLASS="TITLEPAGE" ><H1 CLASS="TITLE" ><A NAME="AEN2">Writing Extentions for gramps</H1 ><P CLASS="COPYRIGHT" ><A HREF="ln7.html" >Copyright</A > © 2001 by Donald N. Allingham</P ><HR WIDTH="75%" ALIGN="CENTER" COLOR="#000000" SIZE="1"></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT ><A HREF="t1.html#intro" >Introduction</A ></DT ><DT ><A HREF="x57.html" >Writing Filters</A ></DT ><DT ><A HREF="x83.html" >Writing Reports</A ></DT ><DT ><A HREF="x131.html" >Writing Tools</A ></DT ><DT ><A HREF="x162.html" >Writing Import Filters</A ></DT ><DT ><A HREF="x177.html" >Writing Export Filters</A ></DT ></DL ></DIV > <DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="intro">Introduction</H1 > <P > <TT CLASS="APPLICATION" >gramps</TT > was intended from the start to allow the user to extend it through a plugin system. Five types of plugins are supported - filters, reports, tools, import filters, and export filters. In a way, an export filter can be viewed as a special type of report, and an import filter can be viewed as a special type of tool. </P > <P > All plugins are written in the <TT CLASS="APPLICATION" >python</TT > language. </P > <DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="intro-filter">Filters</H2 > <P > A filter is a plugin that be used to temporarily display or hide individuals in the <SPAN CLASS="INTERFACE" >People View</SPAN >. The filter is the simplest form of plugin, which only needs to determine if a person meets or fails to meet its criteria. It operates on a single person at a time. </P > <P > Filters should never alter a database. </P > </DIV > <DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="intro-report">Reports</H2 > <P > A report is a plugin that generates output. The output may be in either a interactive, graphical form, or as an output file. Report plugins are passed a reference to the internal database and a reference to the active person, which allows the plugn to operate on a single person, the entire database, or anything in between. </P > <P > Plugins that conform to the reportplugin interface appear in the + + + + + + + + + +<B CLASS="GUIMENU" >Reports</B >+ + + + + + + + + menu and in the <SPAN CLASS="INTERFACE" >Report Selection</SPAN > dialog box. </P > <P > A report should never alter the database. </P > </DIV > <DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="intro-tool">Tools</H2 > <P > A tool is a plugin that alters the database. It may perform something as small changing the case of some text to something as complex as merging redundant individuals. Tools plugins are passed a reference to the internal database, the active person, and a callback function. The callback function is used to notify the main program if it needs to update the display with any modified information. </P > <P > Plugins that conform to the tool plugin interface appear in the + + + + + + + + + +<B CLASS="GUIMENU" >Tools</B >+ + + + + + + + + menu and in the <SPAN CLASS="INTERFACE" >Tool Selection</SPAN > dialog box. </P > <P > A tool is allowed (and usually expected) to alter the database. </P > </DIV > <DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="intro-import">Import Filters</H2 > <P > An import filter is a plugin that adds information from another source to the database. It is similar to a tool, but is called differently to allow gramps to distinguish it from a tool. </P > <P > Plugins that conform to the import filter calling syntax appear in the + + + + + + + + + +<B CLASS="GUIMENU" >File</B >+ + + + + + + + + + + -><B CLASS="GUISUBMENU" >Import</B >+ + + + + + + + + menu. </P > <P > An import filter is allowed to modify the database. </P > </DIV > <DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="intro-export">Export Filters</H2 > <P > An export filter is a plugin that translates the gramps database into the format expected by another program. Since it generates an output file, it is similar to a report generator. However, its calling syntax is different, so that gramps knows how to distiguish it from a report generator. </P > <P > Plugins that conform to the export filter calling syntax appear in the + + + + + + + + + +<B CLASS="GUIMENU" >File</B >+ + + + + + + + + + + -><B CLASS="GUISUBMENU" >Export</B >+ + + + + + + + + menu. </P > <P > An export filter should not alter the database. </P > </DIV > </DIV > </DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="x57.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Writing Filters</TD ></TR ></TABLE ></DIV ></BODY ></HTML >