- XF Compatibility
- 2.1.x
- 2.2.x
- 2.3.x
- Headline
- allows creating any number of custom PHP pages with or without the XF layout.
- Short Description
- Download and Discuss Premium, BusinessCustom PHP Pages 1.1.5 version on NullPro Community. It is zip Extention type and 22.7 KB File size. From Custom PHP Pages have 1 discussion, 1 Updates, 133 Views.
This add-on allows creating any number of custom PHP pages with or without the XF layout.
A custom page has access to the XF engine's functions, including sessions and permissions.
All custom pages are their own PHP script with individual configuration; PHP knowledge is required.
A custom page script can be above, below or within the XF install folder, no restrictions.
You can optionally configure any of the following items on a per-page basis:
The custom <head> tag items on top of XenForo's defaults (presumably from an external script)
The custom page title
The custom page content
Whether or not to wrap above content in the XenForo layout
Whether or not to include XF's social meta tags for social media content previews
Whether or not to show breadcrumbs, and what breadcrumbs to show
Installation Instructions
Install the add-on zip file (this is an add-on package without extra files)
Make a copy of sample.php script and name it whatever you want
Point the script's XF constant value to your XenForo install folder; the default is DIR
Set the $head and/or $content variables
Adjust the \ScriptsPages\Setup::set parameters (below), and installation is complete
Sample (sample.php)
Parameters
How to set parameters externally
To set any parameter above from an external script, define the PHP constant SCRIPT_PAGE_{KEY} prior to loading XenForo, i.e.
A custom page has access to the XF engine's functions, including sessions and permissions.
All custom pages are their own PHP script with individual configuration; PHP knowledge is required.
A custom page script can be above, below or within the XF install folder, no restrictions.
You can optionally configure any of the following items on a per-page basis:
The custom <head> tag items on top of XenForo's defaults (presumably from an external script)
The custom page title
The custom page content
Whether or not to wrap above content in the XenForo layout
Whether or not to include XF's social meta tags for social media content previews
Whether or not to show breadcrumbs, and what breadcrumbs to show
Installation Instructions
Install the add-on zip file (this is an add-on package without extra files)
Make a copy of sample.php script and name it whatever you want
Point the script's XF constant value to your XenForo install folder; the default is DIR
Set the $head and/or $content variables
Adjust the \ScriptsPages\Setup::set parameters (below), and installation is complete
Sample (sample.php)
PHP:
<?php
// Set PHP Reporting
error_reporting(E_ALL & ~E_NOTICE);
define('__XF__', __DIR__); // EDIT VALUE IF SCRIPT IS NOT IN XF FOLDER
require __XF__ . '/src/XF.php';
XF::start(__XF__);
\ScriptsPages\Setup::set('init', true);
$app = \XF::setupApp('XF\Pub\App');
$app->start();
$request = $app->request();
// EDIT BELOW to set the page's $head and/or $content; the code below is a sample
/** ob_start();
require_once __DIR__ . DIRECTORY_SEPARATOR . pathinfo(__FILE__, PATHINFO_FILENAME) . "-head.php";
$head = ob_get_contents();
ob_end_clean(); **/
/** ob_start();
require_once __DIR__ . DIRECTORY_SEPARATOR . pathinfo(__FILE__, PATHINFO_FILENAME) . "-content.php";
$content = ob_get_contents();
ob_end_clean(); */
// EDIT BELOW TO CONFIGURE
\ScriptsPages\Setup::set([
'breadcrumbs' => ['Item 1' => '/1', 'Item 2' => '/2', 'Item 3' => '/3'],
'head' => $head,
'content' => $content
]);
// STOP HERE
$app->run()->send($request);
Parameters
PHP:
[
'navigation_id' => null, // the navigation tab to highlight
'head' => null, // code to embed inside the <head> tag
'metadata' => true, // include social media meta tags like 'og:*' for social media previews
'title' => null, // the page title; if null, falls back to board title
'breadcrumbs' => true, // true to include breadcrumbs, false to not, or an array of [name => href, ...]
'content' => null, // the page content; this is required
'raw' => false // whether or not to remove the XenForo layout
]
To set any parameter above from an external script, define the PHP constant SCRIPT_PAGE_{KEY} prior to loading XenForo, i.e.
Code:
define('SCRIPT_PAGE_CONTENT', '<b>Hello world</b>');