Initial revision
svn: r1140
This commit is contained in:
345
doc/extending-gramps/C/index.html
Normal file
345
doc/extending-gramps/C/index.html
Normal file
@@ -0,0 +1,345 @@
|
||||
<!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
|
||||
>
|
||||
Reference in New Issue
Block a user