[interchange-docs] xmldocs - docelic modified refs/SpecialSub

docs at icdevgroup.org docs at icdevgroup.org
Fri Feb 15 19:59:44 EST 2008


User:      docelic
Date:      2008-02-16 00:59:43 GMT
Modified:  refs     SpecialSub
Log:
* Document admin_init while on it

Revision  Changes    Path
1.12      +27 -1     xmldocs/refs/SpecialSub


rev 1.12, prev_rev 1.11
Index: SpecialSub
===================================================================
RCS file: /var/cvs/xmldocs/refs/SpecialSub,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SpecialSub	16 Feb 2008 00:35:57 -0000	1.11
+++ SpecialSub	16 Feb 2008 00:59:43 -0000	1.12
@@ -18,10 +18,18 @@
 <itemizedlist>
 <listitem><para>
 	<literal>request_init</literal> &mdash;
-	event triggered on every request, that is, after catalog
+	event triggered on every request, right after catalog
 	selection and before &glos-session; assignment.
 </para></listitem>
 <listitem><para>
+	<literal>admin_init</literal> &mdash;
+	for users with administrator privileges, event triggered on every
+	request, after initialization of
+	embedded Perl objects. This allows &glos-catalog; subroutines to 
+  be specified as request handlers and have properly initialized
+	&glos-session; variables by the time they run.
+</para></listitem>
+<listitem><para>
 	<literal>debug_qualify</literal> &mdash; 
 	event triggered to determine whether &glos-debug; mode should be
 	enabled for the incoming client connection. Have in mind that simple,
@@ -99,6 +107,9 @@
 problem, either relax the restrictions by using &conf-SafeUntrap;,
 or define the subroutines at the global level (in &gcf;) using
 unrestricted &conf-GlobalSub;s.
+</para><para>
+As a misnomer, SpecialSub <literal>catalog_init</literal> was
+renamed to <literal>request_init</literal> in &IC; 5.5.2.
 __END__
 
 __NAME__ example: Defining "SpecialSub missing"
@@ -177,6 +188,21 @@
     return 'LOCAL_TYPE' if $num =~ /^41/;
     return;
   }
+EOS
+]]></programlisting>
+__END__
+
+__NAME__ example: Defining SpecialSub admin_init
+Put the following in &ccf;:
+<programlisting><![CDATA[
+SpecialSub  admin_init on_admin_init
+
+Sub on_admin_init <<EOS
+sub {
+  unless ($Session->{username} eq 'foundation') {
+    $Variable->{MV_MENU_DIRECTORY} = 'include/foundation/menus';
+  }
+}
 EOS
 ]]></programlisting>
 __END__








More information about the docs mailing list