The CodeboxFrame widget displays and optionally executes PHP and Yii2 code snippets within HumHub modules. It provides a secure, panel-based interface for code demonstration and execution.
<?php
use humhub\modules\codebox\widgets\CodeboxFrame;
<?php
echo CodeboxFrame::widget([
'entries' => [
[
'title' => 'Sample HTML Code',
'htmlCode' => '<div class="alert alert-info">Hello World!</div>',
'codeType' => 'html',
'sortOrder' => 1
]
]
]);
<?php
echo CodeboxFrame::widget([
'entries' => [
[
'title' => 'HTML Content',
'htmlCode' => '<div class="well">Welcome message</div>',
'codeType' => 'html',
'sortOrder' => 1
],
[
'title' => 'PHP Example',
'htmlCode' => 'echo "Current time: " . date("Y-m-d H:i:s");',
'codeType' => 'php',
'sortOrder' => 2
],
[
'title' => 'Yii2 Framework Code',
'htmlCode' => '
echo humhub\widgets\Button::primary("Click Me")->icon("fa-thumbs-up");',
'codeType' => 'yii2',
'sortOrder' => 3
]
],
'showPanelMenu' => true
]);
| Property | Type | Default | Description |
|---|---|---|---|
entries | array | [] | Array of code entries to display |
showPanelMenu | boolean | true | Show/hide panel menu |
enablePhpExecution | boolean | false | Enable PHP code execution |
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Display title for the code block |
htmlCode | string | Yes | The actual code content |
codeType | string | Yes | Code type: html, php, yii2 |
sortOrder | integer | Yes | Display order (lower numbers first) |
html)Renders HTML directly with nonce support for CSP compliance.
[
'title' => 'HTML Content',
'htmlCode' => '<div class="alert alert-success">Success message</div>',
'codeType' => 'html',
'sortOrder' => 1
]
php)[
'title' => 'PHP Example',
'htmlCode' => 'echo "Server time: " . date("Y-m-d H:i:s");',
'codeType' => 'php',
'sortOrder' => 1
]
yii2)Similar to PHP but with Yii2 context variables: $app, $user, $request, $response
[
'title' => 'Yii2 User Info',
'htmlCode' => '
echo humhub\modules\user\widgets\UserListBox::widget([
"users" => [$user->identity],
"showUserName" => true
]);',
'codeType' => 'yii2',
'sortOrder' => 1
]
echo CodeboxFrame::widget([
'enablePhpExecution' => true, // CAUTION: Use only in trusted environments
'entries' => [/* your PHP entries */]
]);
These functions are blocked for security:
file_get_contents, file_put_contents, fopen, unlinkexec, system, shell_exec, passthruevalinclude, require, include_once, require_once<?php
use humhub\modules\codebox\widgets\CodeboxFrame;
?>
<div class="container">
<?= CodeboxFrame::widget([
'entries' => [
[
'title' => 'HTML Welcome Message',
'htmlCode' => '<div class="alert alert-info">Welcome to our module!</div>',
'codeType' => 'html',
'sortOrder' => 1
],
[
'title' => 'PHP Server Info',
'htmlCode' => 'echo "PHP Version: " . phpversion() . "<br>Memory Usage: " . memory_get_usage(true);',
'codeType' => 'php',
'sortOrder' => 2
],
[
'title' => 'Yii2 Application Info',
'htmlCode' => '
$form = humhub\widgets\ActiveForm::begin();
echo yii\helpers\Html::label("Sample Form", null, ["class" => "control-label"]);
echo yii\helpers\Html::textInput("sample", "", ["class" => "form-control", "placeholder" => "Enter text"]);
humhub\widgets\ActiveForm::end();',
'codeType' => 'yii2',
'sortOrder' => 3
]
]
]) ?>
</div>
"Security: PHP code contains restricted functions": Code uses blocked functions"PHP Error:" / "PHP Parse Error:": Syntax error in PHP codesortOrderenablePhpExecution => trueenablePhpExecution => false in production unless necessaryHtml::encode() for user-provided content