Hook replace (deprecated)

From Sohowiki
(Difference between revisions)
Jump to: navigation, search
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'''
+
==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)'''
+
==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");


Example 2 - Content of replacement manifest file (i.e. 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
Personal tools