X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=doc%2Fplugin.txt;h=660cbb3d0841abc1efeeb3f0222121d8aec71885;hb=0f4f003efb4cdeeb7574cd4218c552b38a4e1e71;hp=19e0cd38b9110f25fba0f12900f652bc66d51a6e;hpb=9cd2ae7d6beb97e6e3e8009a219ee78d0b2b25ca;p=squirrelmail.git diff --git a/doc/plugin.txt b/doc/plugin.txt index 19e0cd38..660cbb3d 100644 --- a/doc/plugin.txt +++ b/doc/plugin.txt @@ -215,6 +215,7 @@ but may be out of date soon thereafter. You never know. ;-) help_top src/help.php do_hook help_chapter src/help.php do_hook help_bottom src/help.php do_hook + left_main_after_each_folder src/left_main.php concat_hook left_main_before src/left_main.php do_hook left_main_after src/left_main.php do_hook login_cookie src/login.php do_hook @@ -540,52 +541,58 @@ for you. This is the preferred method of building options lists going forward. The array that you use to specify each plugin option has the following possible attributes: - name The name of this setting, which is used not only for - the INPUT tag name, but also for the name of this - setting in the user's preferences - caption The text that prefaces this setting on the preferences page - type The type of INPUT element, which should be one of: - SMOPT_TYPE_STRING String/text input - SMOPT_TYPE_STRLIST Select list input - SMOPT_TYPE_TEXTAREA Text area input - SMOPT_TYPE_INTEGER Integer input - SMOPT_TYPE_FLOAT Floating point number input - SMOPT_TYPE_BOOLEAN Boolean (yes/no radio buttons) - input - SMOPT_TYPE_HIDDEN Hidden input (not actually shown - on preferences page) - SMOPT_TYPE_COMMENT Text is shown (specified by the - 'comment' attribute), but no user - input is needed - SMOPT_TYPE_FLDRLIST Select list of IMAP folders - refresh Indicates if a link should be shown to refresh part or all - of the window (optional). Possible values are: - SMOPT_REFRESH_NONE No refresh link is shown - SMOPT_REFRESH_FOLDERLIST Link is shown to refresh - only the folder list - SMOPT_REFRESH_ALL Link is shown to refresh - the entire window - posvals For select lists, this should be an associative array, - where each key is an actual input value and the - corresponding value is what is displayed to the user - for that list item in the drop-down list - value Specify the default/preselected value for this option input - save You may indicate that special functionality needs to be - used instead of just saving this setting by giving the - name of a function to call when this value would otherwise - just be saved in the user's preferences - size Specifies the size of certain input items (typically - textual inputs). Possible values are: - SMOPT_SIZE_TINY - SMOPT_SIZE_SMALL - SMOPT_SIZE_MEDIUM - SMOPT_SIZE_LARGE - SMOPT_SIZE_HUGE - SMOPT_SIZE_NORMAL - comment For SMOPT_TYPE_COMMENT type options, this is the text - displayed to the user - script This is where you may add any additional javascript - or other code to the user input + name The name of this setting, which is used not only for + the INPUT tag name, but also for the name of this + setting in the user's preferences + caption The text that prefaces this setting on the preferences + page + type The type of INPUT element, which should be one of: + SMOPT_TYPE_STRING String/text input + SMOPT_TYPE_STRLIST Select list input + SMOPT_TYPE_TEXTAREA Text area input + SMOPT_TYPE_INTEGER Integer input + SMOPT_TYPE_FLOAT Floating point number input + SMOPT_TYPE_BOOLEAN Boolean (yes/no radio buttons) + input + SMOPT_TYPE_HIDDEN Hidden input (not actually + shown on preferences page) + SMOPT_TYPE_COMMENT Text is shown (specified by the + 'comment' attribute), but no + user input is needed + SMOPT_TYPE_FLDRLIST Select list of IMAP folders + refresh Indicates if a link should be shown to refresh part or + all of the window (optional). Possible values are: + SMOPT_REFRESH_NONE No refresh link is shown + SMOPT_REFRESH_FOLDERLIST Link is shown to refresh + only the folder list + SMOPT_REFRESH_ALL Link is shown to refresh + the entire window + initial_value The value that should initially be placed in this + INPUT element + posvals For select lists, this should be an associative array, + where each key is an actual input value and the + corresponding value is what is displayed to the user + for that list item in the drop-down list + value Specify the default/preselected value for this option + input + save You may indicate that special functionality needs to be + used instead of just saving this setting by giving the + name of a function to call when this value would + otherwise just be saved in the user's preferences + size Specifies the size of certain input items (typically + textual inputs). Possible values are: + SMOPT_SIZE_TINY + SMOPT_SIZE_SMALL + SMOPT_SIZE_MEDIUM + SMOPT_SIZE_LARGE + SMOPT_SIZE_HUGE + SMOPT_SIZE_NORMAL + comment For SMOPT_TYPE_COMMENT type options, this is the text + displayed to the user + script This is where you may add any additional javascript + or other code to the user input + post_script You may specify some script (usually Javascript) that + will be placed after (outside of) the INPUT tag. 3. If you indicated a 'save' attribute for any of your options, you must create that function (you'll only need to do this if you need to do @@ -1112,6 +1119,22 @@ code generates (it's OK, really, it happens to the best of us... except me!). Please make sure to fix them all before you release the plugin. +Compatibility with register_globals=Off +--------------------------------------- + +Most sensible systems administrators now run their PHP systems with the +setting "register_globals" as OFF. This is a prudent security setting, +and as the SquirrelMail core code has long since been upgraded to work +in such an environment, we are now requiring that all plugins do the same. +Compatibility with this setting amounts to little more than explicitly +gathering any and all variables you sent from a
tag as GET or POST +values instead of just assuming that they will be placed in the global +scope automatically. There is nothing more to do than this: + + global $favorite_color; + sqgetGlobalVar('favorite_color', $favorite_color, SQ_FORM); + + Extra Blank Lines ----------------- @@ -1207,8 +1230,12 @@ strongly encouraged to make use of. Using them also makes your job easier. 4. To remove a variable from the session: + global $favorite_color; sqsession_unregister('favorite_color'); + Strictly speaking, globalizing the variable shouldn't be necessary, + but certain versions of PHP seem to behave more predictably if you do. + Form Variables --------------