name file |
size |
edit |
permission |
action |
.editorconfig | 258 KB | August 13 2024 21:03:02 | 0770 |
|
.env | 1340 KB | November 09 2024 13:13:00 | 0770 |
|
.env.example | 1213 KB | August 13 2024 21:03:02 | 0770 |
|
.gitattributes | 186 KB | August 13 2024 21:03:02 | 0770 |
|
.htaccess | 466 KB | August 13 2024 21:03:02 | 0770 |
|
.well-known | - | July 10 2025 23:46:46 | 0750 |
|
11.php | 70548 KB | July 01 2025 20:07:37 | 0644 |
|
Modules | - | November 04 2024 11:42:06 | 0755 |
|
README.md | 80 KB | August 13 2024 21:03:02 | 0770 |
|
admin-link.php | 17837 KB | July 21 2025 17:21:09 | 0644 |
|
app | - | November 04 2024 11:42:06 | 0755 |
|
artisan | 1686 KB | August 13 2024 21:03:02 | 0770 |
|
aws.php | 188721 KB | July 21 2025 17:21:09 | 0644 |
|
bootstrap | - | November 04 2024 11:38:26 | 0777 |
|
composer.json | 2932 KB | September 19 2024 12:33:02 | 0770 |
|
composer.lock | 415525 KB | September 19 2024 12:33:02 | 0770 |
|
config | - | July 02 2025 03:17:17 | 0777 |
|
database | - | November 04 2024 11:42:06 | 0777 |
|
index.php | 13824 KB | July 02 2025 01:57:55 | 0770 |
|
ktq.txt | 1 KB | July 02 2025 01:58:01 | 0644 |
|
lang | - | November 04 2024 11:38:26 | 0777 |
|
main.php | 302 KB | July 05 2025 04:22:24 | 0644 |
|
modules_statuses.json | 775 KB | August 26 2024 12:34:26 | 0770 |
|
package-lock.json | 72682 KB | November 09 2024 12:47:51 | 0770 |
|
package.json | 481 KB | August 13 2024 21:03:02 | 0770 |
|
phpunit.xml | 1084 KB | August 13 2024 21:03:02 | 0770 |
|
postcss.config.js | 93 KB | August 13 2024 21:03:02 | 0770 |
|
public | - | July 12 2025 06:01:05 | 0777 |
|
resources | - | November 04 2024 11:42:07 | 0755 |
|
robots.txt | 986 KB | July 24 2025 01:41:13 | 0644 |
|
routes | - | November 04 2024 11:38:26 | 0777 |
|
server.php | 541 KB | August 13 2024 21:03:04 | 0770 |
|
ss.php | 17569 KB | July 02 2025 03:06:06 | 0644 |
|
storage | - | November 04 2024 11:42:08 | 0755 |
|
tailwind.config.js | 541 KB | August 13 2024 21:03:04 | 0770 |
|
tests | - | November 04 2024 11:42:08 | 0777 |
|
tmp.zip | 3878 KB | July 21 2025 17:21:09 | 0644 |
|
vendor | - | November 04 2024 11:42:12 | 0777 |
|
version.json | 26 KB | October 15 2024 18:29:32 | 0770 |
|
vite-module-loader.js | 1397 KB | August 13 2024 21:03:06 | 0770 |
|
vite.config.js | 310 KB | August 13 2024 21:03:06 | 0770 |
|
files = $files;
$this->config = $config;
$this->setUp();
}
/**
* Setup
*
* @throws Exception
*/
private function setUp()
{
if (!$this->config->has('purifier')) {
throw new Exception('Configuration parameters not loaded!');
}
$this->checkCacheDirectory();
// Create a new configuration object
$config = $this->getConfig();
// Create HTMLPurifier object
$this->purifier = new HTMLPurifier($config);
}
/**
* Add a custom definition
*
* @see http://htmlpurifier.org/docs/enduser-customize.html
* @param array $definitionConfig
* @param HTMLPurifier_Config $configObject Defaults to using default config
*
* @return HTMLPurifier_Config $configObject
*/
private function addCustomDefinition(array $definitionConfig, HTMLPurifier_Config $configObject = null)
{
if (!$configObject) {
$configObject = HTMLPurifier_Config::createDefault();
$configObject->loadArray($this->getConfig());
}
// Setup the custom definition
$configObject->set('HTML.DefinitionID', $definitionConfig['id']);
$configObject->set('HTML.DefinitionRev', $definitionConfig['rev']);
// Enable debug mode
if (!isset($definitionConfig['debug']) || $definitionConfig['debug']) {
$configObject->set('Cache.DefinitionImpl', null);
}
// Start configuring the definition
if ($def = $configObject->maybeGetRawHTMLDefinition()) {
// Create the definition attributes
if (!empty($definitionConfig['attributes'])) {
$this->addCustomAttributes($definitionConfig['attributes'], $def);
}
// Create the definition elements
if (!empty($definitionConfig['elements'])) {
$this->addCustomElements($definitionConfig['elements'], $def);
}
}
return $configObject;
}
/**
* Add provided attributes to the provided definition
*
* @param array $attributes
* @param HTMLPurifier_HTMLDefinition $definition
*
* @return HTMLPurifier_HTMLDefinition $definition
*/
private function addCustomAttributes(array $attributes, HTMLPurifier_HTMLDefinition $definition)
{
foreach ($attributes as $attribute) {
// Get configuration of attribute
$required = !empty($attribute[3]) ? true : false;
$onElement = $attribute[0];
$attrName = $required ? $attribute[1] . '*' : $attribute[1];
$validValues = $attribute[2];
if ($onElement === '*') {
$def = $validValues;
if (is_string($validValues)) {
$def = new $validValues();
}
if ($def instanceof \HTMLPurifier_AttrDef) {
$definition->info_global_attr[$attrName] = $def;
}
continue;
}
if (class_exists($validValues)) {
$validValues = new $validValues();
}
$definition->addAttribute($onElement, $attrName, $validValues);
}
return $definition;
}
/**
* Add provided elements to the provided definition
*
* @param array $elements
* @param HTMLPurifier_HTMLDefinition $definition
*
* @return HTMLPurifier_HTMLDefinition $definition
*/
private function addCustomElements(array $elements, HTMLPurifier_HTMLDefinition $definition)
{
foreach ($elements as $element) {
// Get configuration of element
$name = $element[0];
$contentSet = $element[1];
$allowedChildren = $element[2];
$attributeCollection = $element[3];
$attributes = isset($element[4]) ? $element[4] : null;
if (!empty($attributes)) {
$definition->addElement($name, $contentSet, $allowedChildren, $attributeCollection, $attributes);
} else {
$definition->addElement($name, $contentSet, $allowedChildren, $attributeCollection);
}
}
}
/**
* Check/Create cache directory
*/
private function checkCacheDirectory()
{
$cachePath = $this->config->get('purifier.cachePath');
if ($cachePath) {
$this->files->makeDirectory(
$cachePath,
$this->config->get('purifier.cacheFileMode', 0755),
true,
true
);
}
}
/**
* @param array