Что нового

Бесплатно Пользовательские страницы PHP для XenForo

NullRelease

Модератор
SkripTers TEAM
Релизеры
Регистрация
18 Дек 2019
Сообщения
511
Реакции
2,181
Custom PHP Pages 1.1.5

Это дополнение позволяет создавать любое количество пользовательских страниц PHP с макетом XF или без него.
Пользовательская страница имеет доступ к функциям движка XF, включая сеансы и разрешения.

Все пользовательские страницы представляют собой собственный скрипт PHP с индивидуальной конфигурацией; требуются знания PHP.
Пользовательский скрипт страницы может находиться выше, ниже или внутри папки установки XF, ограничений нет.

При желании вы можете настроить любой из следующих элементов для каждой страницы:
  • Пользовательские элементы тега <head> поверх значений по умолчанию XenForo (предположительно из внешнего скрипта)
  • Пользовательский заголовок страницы
  • Пользовательское содержимое страницы
  • Следует ли обтекать вышеуказанный контент в макете XenForo
  • Включать ли социальные метатеги XF для предварительного просмотра контента в социальных сетях
  • Показывать ли хлебные крошки и какие хлебные крошки показывать
  1. Установите zip-файл дополнения (это пакет дополнения без дополнительных файлов)
  2. Сделайте копию скрипта sample.php и назовите его как хотите.
  3. Укажите константное значение XF скрипта на папку установки XenForo; по умолчанию — DIR
  4. Установите переменные $head и/или $content
  5. Настройте параметры \ScriptsPages\Setup::set (ниже), и установка будет завершена.

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);

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
]

Чтобы задать любой из указанных выше параметров из внешнего скрипта, определите константу PHP SCRIPT_PAGE_{KEY} перед загрузкой XenForo, т. е.
PHP:
define('SCRIPT_PAGE_CONTENT', '<b>Hello world</b>');

 
Верх