345 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			345 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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
 | |
| > |