Add admin option to set allowed classes

This commit is contained in:
Kijin Sung 2016-12-15 21:12:18 +09:00
parent 79fb297948
commit 2c5683f86f
3 changed files with 15 additions and 0 deletions

View file

@ -690,6 +690,14 @@ class adminAdminController extends admin
natcasesort($object_whitelist);
Rhymix\Framework\Config::set('mediafilter.object', array_values($object_whitelist));
// HTML classes
$classes = $vars->mediafilter_classes;
$classes = array_filter(array_map('trim', preg_split('/[\r\n]/', $classes)), function($item) {
return preg_match('/^[a-zA-Z0-9_-]+$/u', $item);
});
natcasesort($classes);
Rhymix\Framework\Config::set('mediafilter.classes', array_values($classes));
// Remove old embed filter
$config = Rhymix\Framework\Config::getAll();
unset($config['embedfilter']);

View file

@ -490,6 +490,7 @@ class adminAdminView extends admin
// Load embed filter.
context::set('mediafilter_iframe', implode(PHP_EOL, Rhymix\Framework\Filters\MediaFilter::getIframeWhitelist()));
context::set('mediafilter_object', implode(PHP_EOL, Rhymix\Framework\Filters\MediaFilter::getObjectWhitelist()));
context::set('mediafilter_classes', implode(PHP_EOL, Rhymix\Framework\Config::get('mediafilter.classes') ?: array()));
// Admin IP access control
$allowed_ip = Rhymix\Framework\Config::get('admin.allow');

View file

@ -19,6 +19,12 @@
<textarea name="mediafilter_object" id="mediafilter_object" rows="8" style="width:100%;">{$mediafilter_object}</textarea>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="mediafilter_classes">HTML class</label>
<div class="x_controls" style="margin-right:14px">
<textarea name="mediafilter_classes" id="mediafilter_classes" rows="4" style="width:100%;">{$mediafilter_classes}</textarea>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="admin_allowed_ip">{$lang->admin_ip_allow}</label>
<div class="x_controls">