Page tree
Skip to end of metadata
Go to start of metadata

Requires: phpFox version >= 4.3

With your themes, you can assign blocks to specific routes and even overwrite active blocks/controllers with your own HTML.

Modifying an HTML Block/Controller

In order to modify an existing HTML block or controller, you need to create these files within your html/ folder in your theme.

For example, we are going to modify the "Friends Online" block that shows up in a user's dashboard when they are logged in. To do this, we need overwrite the HTML block file PF.Base/module/friend/template/default/block/mini.html.php. There are two ways:

  1. Clone the file PF.Base/module/friend/template/default/block/mini.html.php into your themes html/ folder. Rename the clone file to friend.block.mini.html.php. Modifying this file will help you overwrite the original block file. Just like the original file, you can use the module template engine (phpFox engine template used in core modules, similar to Smarty) in this file. This way is very useful and easy in case you only want to make some mini changes on the template. (Requires: 4.4.0+)
  2. If you want to re-write the template completely, or want to use the Twig engine template(new template engine phpFox using for apps), create a file called friend.block.mini.html in your theme's html/ folder.
  3. For this example, we will use static code to check. Add the code below to the file you have just created. Please note that if you have both of the files (friend.block.mini.html.php and friend.block.mini.html), the core will prefer to use the file friend.block.mini.html to overwrite.
<div class="block">
   <div class="title">
      Friends Online
   </div>
   <div class="content">
      ...
   </div>
</div>

To make sure the changes take place, clear your site's cache from the AdminCP.

Creating a New Block

In addition to modifying blocks, you can also create a new block. Similar to apps, themes can bootstrap a PHP file called start.php. From this file you can add blocks and use any of the API Functions provided to apps.

In your theme create a file called start.php and paste the following

block(1, 'core.index-member', function() {
   $html = '<div class="block"><div class="title">Hello World</div><div class="content">...</div></div>';

   return $html;
});

Learn more about the block() function here.