20.5.1. How to create a Hello World block

Figure 20-4. Hello World block with Javascript.

image

Hello World block with Javascript.



We will start with a very simple block, one that just displays "Hello World". Once you get the idea, you will be able to construct any Javascript block for PHP-Nuke - they all follow the same rules.

We will keep the Javascript code in a separate file, say hello-world.php, in the PHP-Nuke includes directory. The includes directory is a natural place for it, because it also contains the javascript.php file (see Section 21.9.1). You can use the javascript.php file to store your own Javascript functions (as shown inJavascript in a PHP-Nuke block), but for this simple example, hello-world.php is more than enough. It contains only a few lines:

<?php
echo '
document.write("Hello World!");
';
?>

Now, create a block, block-Hello_World.php, in the blocks folder that contains:

<?php
if (eregi("block-Hello_World.php",$_SERVER[PHP_SELF])) {
    Header("Location: index.php");
    die();
}
$content.="<center><script language="JavaScript"
src="includes/hello-world.php"></script></center></b>";
?>

As you can see, block-Hello_World.php loads the hello-world.php from the includes folder as a Javascript code. hello-world.php, in turn, is executed and echoes the document.write command in the HTML file that is sent to the client's browser. When a the browser receives it (and has Javascript enabled), executes the code writing the "Hello World" message in the place it was called - in the Hello World block.

Using this technique, you can create blocks that are very rich in functionality - just echo their code with a PHP file and call that file as Javascript code from the block. See Section 20.5.3 for a non-trivial example.