Custom PHP Pages

XF Addon [2.3.X] Custom PHP Pages 1.1.5

No permission to download
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)

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:

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.

PHP:
define('SCRIPT_PAGE_CONTENT', '<b>Hello world</b>');
Author
mdandu
Downloads
0
Views
11
First release
Last update

Ratings

0.00 star(s) 0 ratings