You can include Javascript code in modules without problems in PHP-Nuke. You can proceed in two ways:
Include your Javascript functions in javascript.php (Section 21.9.1).
Include your complete Javascript code in the module (Section 21.9.2)
PHP-Nuke come with its own Javascript functions included in the file javascript.php, located under the includes folder. You can add your own Javascript code there, if you follow some simple rules:
Use a decent text editor (see Chapter 11) to edit the file.
Append your code after the code already there, but before the ending ?> line.
“echo” each line of your Javascript script. Example: Instead of entering directly the script code:
<script type="text/javascript"> <!-- function openwindow(){ window.open ("modules/$name/copyright.php","Copyright","toolbar=no,location=no,directories=no, status=no,scrollbars=yes,resizable=no,copyhistory=no,width=400,height=200") } //--> </script> |
enter it with “echo”s as:
echo "<script type=\"text/javascript\">\n"; echo "<!--\n"; echo "function openwindow(){\n"; echo " window.open(\"modules/$name/copyright.php\",\"Copyright\", \"toolbar=no,location=no,directories=no,status=no, scrollbars=yes,resizable=no,copyhistory=no,width=400,height=200\");\n"; echo "}\n"; echo "//-->\n"; echo "</script>\n\n"; |
Enclose each line in double quotes, like a string, and escape (with a backslash \) any double quote inside that string.
Add a newline character (\n) to the string, before the closing double quote[1].
End each line, like every PHP line, with a semicolon (;).
If you use vi (see Section 11.1), the following sequence of vi commands, applied to a Javascript file, will produce the right PHP code to append in the javascript.php file:
1,$s/"/\\"/g 1,$s/^/echo "/ 1,$s/$/";/ 1,$s/";$/\\n";/ |
You can then include calls to your Javascript functions in the HTML code of your module. You echo the Javascript code, just like any other HTML code.
You can use the following template to include your complete Javascript code in your PHP-Nuke module:
<?php if (!eregi("modules.php", $PHP_SELF)) { die ("You can't access this file directly..."); } require_once("mainfile.php"); // 0 : do not show right blocks - 1:show right blocks $index = 0; include("header.php"); ?> // PUT HTML OR JAVASCRIPT CODE HERE, // OR GET RID OF THE ?> AND <?php ABOVE AND BELOW THIS LINE // AND USE <acronym>PHP</acronym> CODE HERE INSTEAD. <?php include("footer.php"); ?> |
Javascript with PHP | |
---|---|
If you decide to use PHP code ("echo"s) to enter your Javascript code, you should take into account the rules presented in Section 21.9.1. |
Javascript codebase | ||
---|---|---|
You may need to add the following line to your Javascript applet:
|
[1] | the “window.open” line in the example above is actually a long line that has been broken to 3 lines only for layout purposes, that's why there are no newlines (\n) at the ends of two lines (just as there is no semicolon for the same reason). |