activityReport/src/Context.php

79 lines
2.3 KiB
PHP
Raw Normal View History

<?php
2023-10-17 20:47:35 +00:00
declare(strict_types=1);
namespace Dotclear\Plugin\activityReport;
use Dotclear\App;
2023-05-11 22:37:45 +00:00
use Dotclear\Database\MetaRecord;
/**
2023-10-17 20:47:35 +00:00
* @brief activityReport frontend context class.
* @ingroup activityReport
*
* @author Jean-Christian Denis (author)
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
*/
class Context
{
/**
* Parse title.
*
* @return string The parsed title
*/
public static function parseTitle(): string
{
if (!App::frontend()->context()->exists('activityreports')
|| !(App::frontend()->context()->__get('activityreports') instanceof MetaRecord)
2023-05-11 22:37:45 +00:00
) {
return '';
}
$group = App::frontend()->context()->__get('activityreports')->f('activity_group');
$action = App::frontend()->context()->__get('activityreports')->f('activity_action');
2023-05-11 22:37:45 +00:00
if (!is_string($group)
|| !is_string($action)
|| !ActivityReport::instance()->groups->get($group)->has($action)
) {
return '';
}
return __(ActivityReport::instance()->groups->get($group)->get($action)->title);
}
/**
* Parse content.
*
* @return string The parsed content
*/
public static function parseContent(): string
{
if (!App::frontend()->context()->exists('activityreports')
|| !(App::frontend()->context()->__get('activityreports') instanceof MetaRecord)
2023-05-11 22:37:45 +00:00
) {
return '';
}
$group = App::frontend()->context()->__get('activityreports')->f('activity_group');
$action = App::frontend()->context()->__get('activityreports')->f('activity_action');
$logs = App::frontend()->context()->__get('activityreports')->f('activity_logs');
2023-05-11 22:37:45 +00:00
$logs = json_decode(is_string($logs) ? $logs : '', true);
2023-05-11 22:37:45 +00:00
if (!is_string($group)
|| !is_string($action)
|| !is_array($logs)
|| !ActivityReport::instance()->groups->get($group)->has($action)
) {
return '';
}
App::filter()->initWikiComment();
return App::filter()->wikiTransform(vsprintf(
__(ActivityReport::instance()->groups->get($group)->get($action)->message),
$logs
));
}
}