Plugin install manifest
(→Adding a button to the main menu) |
(→Adding a button to the main menu) |
||
Line 64: | Line 64: | ||
$data['disabled_button_image'] = "plugin_icon-supersearch.gif"; | $data['disabled_button_image'] = "plugin_icon-supersearch.gif"; | ||
$data['enabled_button_link'] = "display_settings.php"; | $data['enabled_button_link'] = "display_settings.php"; | ||
− | $data['button_caption_text'] = "Super Search"; | + | $data['button_caption_text'] = "Super Search"; |
− | hook_special("main_menu_button", $data); | + | hook_special("main_menu_button", $data);</pre> |
[[Category:Plugins]] | [[Category:Plugins]] |
Revision as of 18:28, 1 May 2008
Each plugin must include in it's folder a file named install_manifest.php. Pro Edition reads this file to know what to do when it attempts to install your plugin. All plugins must have a valid install_manifest.php in their folder.
Contents |
Overview of file contents
There are two types of content in any given install_manifest.php:
- Information - Plugin title, author, etc
- Instructions - Overwrite this file with my modified version, replace these lines of source code with my custom code, include my custom file at this point in this source file, etc.
Include basic info about your plugin
# PLUGIN INFO $plugin_folder = "HELLO_WORLD"; $plugin_title = "Hello World"; $plugin_version = "1.0"; $plugin_author = "John Smith"; $plugin_homepage = "http://example.com"; # Description text $plugin_description = "Adds '- Hello World!' next to the 'Basic Features Group' on the main menu.";
hello
Tell Pro Edition how to plug-in your plugin
This is the part where you tell Pro Edition how and where to plug-in your plugin (heh). So our specific task at the moment is to tell Pro Edition (through our install manifest) to add our "- Hello World" change to the main menu.
Add this line to your install_manifest.php file...
hook_overwrite("sohoadmin/program/main_menu.php", "main_menu-helloworld.php");
The hook_overwrite function tells Pro Edition to use your version of main_menu.php (main_menu-helloworld.php) instead of the regular one.
Completed install manifest
Here's what your completed install_manifest.php file should look like...
<? # PLUGIN INFO $plugin_folder = "HELLO_WORLD"; $plugin_title = "Hello World"; $plugin_version = "1.0"; $plugin_author = "John Smith"; $plugin_homepage = "http://example.com"; # Description text $plugin_description = "Adds '- Hello World!' next to the 'Basic Features Group' on the main menu."; # Replace main_menu.php with my custom-modified version hook_overwrite("sohoadmin/program/main_menu.php", "main_menu-helloworld.php"); ?>
Special Hooks
Special hooks allow you to perform common tasks (like adding a button to the main menu) without having to go the long way and replacing the source code via a normal hook_attach, hook_overwrite, or hook_replace.
Typically, special hooks require a specific set of data being set into array values and then passed to the hook_special() function.
# SPECIAL HOOK: Main menu button hook_overwrite("sohoadmin/program/modules/page_editor/update-properties.php", "update-properties.php"); hook_overwrite("search.php", "search.php"); $data = array(); $data['enabled_button_image'] = "plugin_icon-supersearch.gif"; $data['disabled_button_image'] = "plugin_icon-supersearch.gif"; $data['enabled_button_link'] = "display_settings.php"; $data['button_caption_text'] = "Super Search"; hook_special("main_menu_button", $data);