Sohowiki Sandbox

From Sohowiki
(Difference between revisions)
Jump to: navigation, search
(hook_replace)
(hook_replace)
Line 42: Line 42:
 
Specific replacements for a particular source file should be placed in a dedicated file (this is your replacement manifest).
 
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.php
+
 
 +
'''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 (main_menu-replacements.php)
+
'''Example 2 - Content of replacement manifest file (main_menu-replacements.php)'''
  
 
<pre>
 
<pre>
# Replace module heading text
 
  
 
#new replacement#
 
#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>
 
<oldcode>
<? echo lang("Create New Site Pages"); ?>
+
    <tr>
 +
    <td class="fgroup_title"><? echo lang("Basic Features Group"); ?></td>
 +
    </tr>
 
</oldcode>
 
</oldcode>
  
 
<newcode>
 
<newcode>
<? echo "Hello World"; ?><i>!</i>
+
    <tr>
 +
    <td class="fgroup_title" style="font-style: italic;">Hello World!</td>
 +
    </tr>
 
</newcode>
 
</newcode>
 
</pre>
 
</pre>

Revision as of 17:48, 18 May 2006

Write now, organize and place later. This is the place to draft content before you know exactly where it should go...also good place for expermimenting with wiki markup.

hook_attach

hook_attach(plugin file, hook id name)


Description
Includes (attaches) your custom script (plugin file) at a pre-designated place (hook id) in the Pro Edition source code.


Example 1 - What a designated hook looks like in the Pro Edition source code
Taken from in sohoadmin/program/header.php (~line #375 as of v4.9 Beta2)

eval(hook("header.php:top_javascript", basename(__FILE__)));


Example 2 - calling hook attachement() from your install_manifest.php
Taken from QuickEdit Dropdown Menu plugin

hook_attach("quickedit_js.php", "header.php:top_javascript");


The end-result of examples 1 and 2 is that Pro Edition will include() your script at the designated location (determined by hook id). So when Pro Edition processes header.php and gets to that line with a hook() on it that your plugin has attached to (by calling hook_attach in its install_manifest.php), it basically does this...

include("[path_your_plugin_folder]/quickedit_js.php");

hook_overwrite

hook_overwrite(source file name, plugin file name)

Description
Completely overwrites a source file with the file you specify.

Original source file is renamed to filename.php-[plugin_folder_name]


Example 1 - calling hook_overwrite from your install_manifest.php

hook_overwrite("sohoadmin/program/main_menu.php", "your_modded_main_menu.php");

hook_replace

hook_replace(source file name, 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 (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>
Personal tools