Many of these concepts will be further detailed later on in this guide.
</para>
<glossentry id="producers">
- <glossterm>producer</glossterm>
+ <glossterm>producers</glossterm>
<glossdef>
<para>As mentioned in the architecture overview, mir
generates a set of static html pages called the static site.
<para>In the admin web interface, producers appear, for example, on
the admin->"Generate manually"->"advanced page": (they are called Tasks)</para>
<para>
-Further information on producers may be found at XXX and in the javadoc
-(classes Producer, NodedProducer, roducerNode...).
+More information on producers is available in <xref linkend="producer_framework" />.
</para>
</glossdef>
</glossentry>
used by various indymedia sites to customize things
such open posting mechanisms, open
posting validation, data model enhancements, etc.
+In other words, the localizer framework provides "hooks"
+where admins can plug in
+their custom code.
</para>
<para>
The <classname>MirLocalizer</classname> interface describes
and it's associated classes. These classes can be extended to
override default behavior.
</para>
+<para>
+To override default behavior you must implement a new
+<classname>MirLocalizer</classname>
+and give the path to your class in the
+<code>Mir.Localizer</code> property of the
+<filename>config.properties</filename>
+file.
+</para>
+ </glossdef>
+</glossentry>
+
+<glossentry id="abuse">
+ <glossterm>abuse filter framework</glossterm>
+ <glossdef>
+ <para>
+Mir can be configured to refuse postings or spam. This is done
+by using a set of filters that will attempt to match posted content.
+If any filter matches, appropriate action (FIXME? what action? ) will be taken.
+Three types of filters are currently implemented: IP filters
+(reject certain ip adresses), regular expression filters
+(try to match parts (FIXME? ip? title? content?) of the posting) and
+throttle filters (avoid repeated postings (FIXME? is this ok?)).
+ </para>
+<para>
+Filters may be organized into groups for easier management.
+</para>
</glossdef>
</glossentry>
<glossterm>generator</glossterm>
<glossdef>
<para>
-A generator is an abstraction for a template engine.
+A generator is an abstraction for a template (html template).
+Calling the generator's <function>generate(outputFileWriter,keyValuePairs)</function> method
+will run the template engine on the template file
+and write an output html file.
Different template engines are
supported right now:
<ulink href="http://freemarker.sourceforge.net">freemarker</ulink>
</glossdef>
</glossentry>
+
<glossentry id="mircoders">
<glossterm>mircoders packages</glossterm>
<glossdef>
<para>
Originally, the mircoders packages were meant for local developments,
-as opposed to the core Mir code. This distinction is now obsolete
+as opposed to core Mir code. This distinction is now obsolete
and these packages will probably be reorganized in future releases.
</para>
</glossdef>
</glossentry>
-<glossentry id="bundle">
+<glossentry id="bundles">
<glossterm>bundles</glossterm>
<glossdef>
<para>
-bundles are key/value pairs in a text file, used for configuration
-and internationalization
+A Bundle represents a set key/value pairs stored in a ".properties"
+text file. Bundles are used for internationalization (language
+translations) and for <glossterm linkend="configuration">configuration</glossterm> files (config.properties and
+source/default.properties).
+Bundles may be used to create a template for multiple languages.
</para>
</glossdef>
</glossentry>
+<glossentry id="search">
+ <glossterm>search framework</glossterm>
+ <glossdef>
+ <para>
+Mir's search framework relies on
+<ulink url="http://lucene.apache.org/java/docs/index.html">apache lucene
+</ulink>.
+Content is inserted into a special index file while it is produced
+(see <glossterm linkend="producers">producers</glossterm> framework).
+This allows for quick retreival during search.
+Indexing is requested in the <filename>producers.xml</filename> file
+by the <code><IndexContent></code> node.
+In other words, when Mir generates a static html page for an article,
+it also creates <classname>SearchTerm</classname>'s and inserts
+them into the index.
+By default, the index file is stored in <filename>FIXME</filename>.
+</para>
+<para>
+Search queries are managed by <function>ServletModuleContent.search()</function>
+</para>
+
+ </glossdef>
+</glossentry>
+
+<glossentry id="servlet">
+ <glossterm>servlet framework</glossterm>
+ <glossdef>
+ <para>
+Mir uses the tomcat servlet framework for the admin interface,
+for open posting and for search queries (FIXME something else?).
+Mir exposes two servlets: the <classname>Mir</classname>
+servlet and the <classname>OpenMir</classname> servlet, whose
+methods are directly called in response to an http request.
+For example, a request for <uri>http://somehost.org/mir/servlet/Mir</uri>
+will call the <function>doGet()</function> method of the
+<classname>Mir</classname> class.
+ </para>
+ <para>
+Once requests are received by the
+<classname>Mir</classname> or <classname>OpenMir</classname>
+classes, they are dispatched to other servlet classes.
+The <code>module</code> argument of the http request
+determines the classes name.
+The <code>do</code> argument determines the method's name.
+So
+<uri>http://somehost.org/mir/servlet/Mir?module=Comment&do=list</uri>
+will call <function>ServletModuleComment.list()</function>.
+ </para>
+ </glossdef>
+</glossentry>
+
+
+<glossentry id="media">
+ <glossterm>media framework</glossterm>
+ <glossdef>
+ <para>
+The media framework is quite old and will be thoroughly changed
+in a future release.
+ </para>
+ </glossdef>
+</glossentry>
+
+<glossentry id="configuration">
+ <glossterm>configuration</glossterm>
+ <glossdef>
+ <para>
+Mir is configured through the
+<filename>etc/config.properties</filename> file, which
+overrides default values in
+the
+<filename>source/default.properties</filename> file.
+The key/value pairs are handled by
+<glossterm linkend="bundles">bundles</glossterm>.
+ </para>
+ </glossdef>
+</glossentry>
+
+
</section>