X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=doc%2Fplugin.txt;h=7236006cf115ecdda66931653ed213f639f6dc18;hb=7137f80f8690e8f9b11da5e59d1cebb36b3f7028;hp=574e1066bb6d981d853c1af3a9eb13fcc7ad39e5;hpb=1aaef171bdf9e8f022ef249c41756f8ef31b64b4;p=squirrelmail.git diff --git a/doc/plugin.txt b/doc/plugin.txt index 574e1066..7236006c 100644 --- a/doc/plugin.txt +++ b/doc/plugin.txt @@ -72,3 +72,164 @@ Note that the SquirrelMail files assume that all other SquirrelMail files are available as ../directory/file. This means that if some file in the plugin directory is requested, it must do a chdir("..") before including any of the standard SquirrelMail files. + + +Hook Data Passed +---------------- +Hooks, when executed, are called with one parameter, an array of data +that is passed to the hook. The first element in the array is the name +of the hook that is being called. Any other elements in the array are +dependant on the type of hook that is being called. + +Some of the information in the array may be changed. By default, the +plugins should never change data unless it is documented otherwise. + + +List of hooks +------------- + generic_header functions/page_header.php + menuline functions/page_header.php + compose_button_row src/compose.php + compose_bottom src/compose.php + left_main_before src/left_main.php + left_main_after src/left_main.php + * options_save src/options.php (see note on options) + * options_link_and_description src/options.php (see note on options) + * options_highlight_bottom src/options_highlight.php + * options_personal_bottom src/options_personal.php + * options_personal_inside src/options_personal.php + * options_personal_save src/options_personal.php + * options_display_bottom src/options_display.php + * options_display_inside src/options_display.php + * options_display_save src/options_display.php + * options_folders_bottom src/options_folders.php + * options_folders_inside src/options_folders.php + * options_folders_save src/options_folders.php + logout src/signout.php + login_before src/webmail.php + login_verified src/webmail.php + loading_prefs src/load_prefs.php + mailbox_index_before functions/mailbox_display.php + mailbox_index_after functions/mailbox_display.php + mailbox_form_before functions/mailbox_display.php + right_main_after_header src/right_main.php + right_main_bottom src/right_main.php + login_top src/login.php + login_bottom src/login.php + html_top src/read_body.php + read_body_top src/read_body.php + read_body_bottom src/read_body.php + html_bottom src/read_body.php + read_body_header src/read_body.php + search_before_form src/search.php + search_after_form src/search.php + search_bottom src/search.php + help_top src/help.php + help_bottom src/help.php + help_chapter src/help.php + addrbook_html_search_below src/addrbook_search_html.php + addressbook_bottom src/addressbook.php + ^ attachment $type0/$type1 functions/mime.php (see note on attachments) + + +(*) Options +----------- +There are two ways to do options for your plugin. First, you can incorporate it +into an existing section of the preferences (Display, Personal, or Folders). +The second way, you create your own section that they can choose from and it +displays its own range of options. + + +First: Integrating into existing options +----------------------------------------- +There are two hooks you need to use for this one: + +1. options_YOUCHOOSE_inside + This is the code that goes inside the table for the section you choose. Since + it is going inside an existing table, it must be in this form: + ------cut here------- + + + OPTION_NAME + + + OPTION_INPUT + + + ------cut here------- + +2. options_YOUCHOOSE_save + This is the code that saves your preferences into the users' preference + file. For an example of how to do this, see src/options.php. + + +Second: Create your own section +------------------------------- +It is possible to create your own options sections with plugins. There are +three hooks you will need to use. + +1. options_link_and_description + This creates the link and has a description that are shown on the options + page. This should output HTML that looks like this: + + -----cut here----- + function my_function() { + global $color + ?> + + + + + + + +
+ YOUR OPTIONS NAME +
+ YOUR DESCRIPTION +
+