enhancePostContent/_public.php

96 lines
2.4 KiB
PHP
Raw Normal View History

2021-08-23 23:55:52 +00:00
<?php
2021-09-02 18:35:25 +00:00
/**
* @brief enhancePostContent, a plugin for Dotclear 2
2021-11-01 09:33:43 +00:00
*
2021-09-02 18:35:25 +00:00
* @package Dotclear
* @subpackage Plugin
2021-11-01 09:33:43 +00:00
*
2021-09-02 18:35:25 +00:00
* @author Jean-Christian Denis and Contributors
2021-11-01 09:33:43 +00:00
*
2021-09-02 18:35:25 +00:00
* @copyright Jean-Christian Denis
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
*/
2021-08-23 23:55:52 +00:00
if (!defined('DC_RC_PATH')) {
return null;
2021-08-23 23:55:52 +00:00
}
2022-11-13 20:30:48 +00:00
require __DIR__ . '/_widgets.php';
2021-08-23 23:55:52 +00:00
2022-11-13 20:30:48 +00:00
dcCore::app()->blog->settings->addNamespace('enhancePostContent');
2021-08-23 23:55:52 +00:00
2022-11-13 20:30:48 +00:00
if (dcCore::app()->blog->settings->enhancePostContent->enhancePostContent_active) {
dcCore::app()->addBehavior(
'publicHeadContentV2',
['publicEnhancePostContent', 'publicHeadContent']
);
2022-11-13 20:30:48 +00:00
dcCore::app()->addBehavior(
'publicBeforeContentFilterV2',
['publicEnhancePostContent', 'publicContentFilter']
);
2021-08-23 23:55:52 +00:00
}
/**
* @ingroup DC_PLUGIN_ENHANCEPOSTCONTENT
* @brief Filter posts content - public methods.
* @since 2.6
*/
class publicEnhancePostContent
{
/**
* Add filters CSS to page header
*/
2022-11-13 20:30:48 +00:00
public static function publicHeadContent()
{
2022-11-13 20:30:48 +00:00
echo dcUtils::cssLoad(dcCore::app()->blog->url . dcCore::app()->url->getURLFor('epccss'));
2021-10-30 20:05:31 +00:00
}
public static function css($args)
{
2021-11-01 09:33:43 +00:00
$css = [];
2021-10-31 22:22:34 +00:00
$filters = libEPC::getFilters();
2021-08-23 23:55:52 +00:00
2021-11-01 09:33:43 +00:00
foreach ($filters as $id => $filter) {
2021-11-13 10:54:37 +00:00
if ('' == $filter->class || '' == $filter->style) {
continue;
}
2021-08-23 23:55:52 +00:00
$res = '';
2021-11-01 09:33:43 +00:00
foreach ($filter->class as $k => $class) {
2021-10-31 22:22:34 +00:00
$styles = $filter->style;
2021-11-01 09:33:43 +00:00
$style = html::escapeHTML(trim($styles[$k]));
if ('' != $style) {
2021-11-01 09:33:43 +00:00
$res .= $class . ' {' . $style . '} ';
}
}
2021-08-23 23:55:52 +00:00
if (!empty($res)) {
2021-11-01 09:33:43 +00:00
$css[] = '/* CSS for enhancePostContent ' . $id . " */ \n" . $res . "\n";
}
}
2021-10-30 20:05:31 +00:00
header('Content-Type: text/css; charset=UTF-8');
echo implode("\n", $css);
exit;
}
2021-08-23 23:55:52 +00:00
/**
* Filter template blocks content
2021-11-01 09:33:43 +00:00
*
* @param string $tag Tempalte block name
* @param array $args Tempalte Block arguments
*/
2022-11-13 20:30:48 +00:00
public static function publicContentFilter($tag, $args)
{
2021-10-31 22:22:34 +00:00
$filters = libEPC::getFilters();
2021-08-23 23:55:52 +00:00
2021-11-01 09:33:43 +00:00
foreach ($filters as $id => $filter) {
2021-10-31 22:22:34 +00:00
if (!libEPC::testContext($tag, $args, $filter)) {
continue;
}
2021-10-31 22:22:34 +00:00
$filter->publicContent($tag, $args);
}
}
2021-11-01 09:33:43 +00:00
}