Hook replace (deprecated)
From Sohowiki
(Difference between revisions)
m (Reverted edit of Bocz, changed back to last version by 216.107.76.114) |
|||
Line 1: | Line 1: | ||
+ | ==Syntax and Description== | ||
;Syntax | ;Syntax | ||
:hook_replace(path to source file from docroot, replacement manifest file name) | :hook_replace(path to source file from docroot, replacement manifest file name) | ||
Line 8: | Line 9: | ||
− | + | ==Example 1 - Calling hook_replace from your plugin's install manifest== | |
<pre>hook_replace("sohoadmin/program/main_menu.php", "main_menu-replacements.php");</pre> | <pre>hook_replace("sohoadmin/program/main_menu.php", "main_menu-replacements.php");</pre> | ||
− | + | ==Example 2 - Content of replacement manifest file (i.e. main_menu-replacements.php)== | |
<pre> | <pre> | ||
Line 47: | Line 48: | ||
</newcode> | </newcode> | ||
</pre> | </pre> | ||
+ | |||
+ | ==Things that screw it up== | ||
+ | The following is a list of common problems that can preven hook_replace calls from working properly. | ||
+ | *'''Permissions''' - If php can't write to the file, then your hook_replace won't work on it. | ||
+ | *'''Not remembering [[the deal with client_files]]''' - If you're using hook_replace on, for example, client_files/shopping_cart/pgm-add_cart.php it's good practice (and less work for you while developing) to include an additional hook_replace call in your install manifest so that you're writing to both copies of the file | ||
[[Category:Plugins]] | [[Category:Plugins]] |
Revision as of 11:46, 28 February 2007
Contents |
Syntax and Description
- Syntax
- hook_replace(path to source file from docroot, replacement manifest file name)
- Description
- Reads your replacement manifest file and replaces specified chunk(s) of code in source file with your different (modified) code.
- Specific replacements for a particular source file should be placed in a dedicated file (this is your replacement manifest).
Example 1 - Calling hook_replace from your plugin's install manifest
hook_replace("sohoadmin/program/main_menu.php", "main_menu-replacements.php");
#new replacement# # Add another title row below the "Basic Features Group" row. <oldcode> <tr> <td class="fgroup_title"><? echo lang("Basic Features Group"); ?></td> </tr> </oldcode> <newcode> <tr> <td class="fgroup_title"><? echo lang("Basic Features Group"); ?></td> </tr> <tr> <td class="fgroup_title">Hello World!</td> </tr> </newcode> #new replacement# # Replace title row with modifed version <oldcode> <tr> <td class="fgroup_title"><? echo lang("Basic Features Group"); ?></td> </tr> </oldcode> <newcode> <tr> <td class="fgroup_title" style="font-style: italic;">Hello World!</td> </tr> </newcode>
Things that screw it up
The following is a list of common problems that can preven hook_replace calls from working properly.
- Permissions - If php can't write to the file, then your hook_replace won't work on it.
- Not remembering the deal with client_files - If you're using hook_replace on, for example, client_files/shopping_cart/pgm-add_cart.php it's good practice (and less work for you while developing) to include an additional hook_replace call in your install manifest so that you're writing to both copies of the file