2023-04-20 12:22:43 +00:00
|
|
|
<?php
|
2023-10-17 20:47:35 +00:00
|
|
|
|
2023-04-20 12:22:43 +00:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
namespace Dotclear\Plugin\activityReport;
|
|
|
|
|
2023-10-18 21:32:44 +00:00
|
|
|
use Dotclear\App;
|
2023-05-11 22:37:45 +00:00
|
|
|
use Dotclear\Database\MetaRecord;
|
2023-04-20 12:22:43 +00:00
|
|
|
|
|
|
|
/**
|
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
|
2023-04-20 12:22:43 +00:00
|
|
|
*/
|
|
|
|
class Context
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Parse title.
|
|
|
|
*
|
|
|
|
* @return string The parsed title
|
|
|
|
*/
|
|
|
|
public static function parseTitle(): string
|
|
|
|
{
|
2023-10-18 21:32:44 +00:00
|
|
|
if (!App::frontend()->context()->exists('activityreports')
|
|
|
|
|| !(App::frontend()->context()->__get('activityreports') instanceof MetaRecord)
|
2023-05-11 22:37:45 +00:00
|
|
|
) {
|
2023-04-20 12:22:43 +00:00
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
2023-10-18 21:32:44 +00:00
|
|
|
$group = App::frontend()->context()->__get('activityreports')->f('activity_group');
|
|
|
|
$action = App::frontend()->context()->__get('activityreports')->f('activity_action');
|
2023-04-20 12:22:43 +00:00
|
|
|
|
2023-05-11 22:37:45 +00:00
|
|
|
if (!is_string($group)
|
|
|
|
|| !is_string($action)
|
|
|
|
|| !ActivityReport::instance()->groups->get($group)->has($action)
|
|
|
|
) {
|
2023-04-20 12:22:43 +00:00
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
|
|
|
return __(ActivityReport::instance()->groups->get($group)->get($action)->title);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Parse content.
|
|
|
|
*
|
|
|
|
* @return string The parsed content
|
|
|
|
*/
|
|
|
|
public static function parseContent(): string
|
|
|
|
{
|
2023-10-18 21:32:44 +00:00
|
|
|
if (!App::frontend()->context()->exists('activityreports')
|
|
|
|
|| !(App::frontend()->context()->__get('activityreports') instanceof MetaRecord)
|
2023-05-11 22:37:45 +00:00
|
|
|
) {
|
2023-04-20 12:22:43 +00:00
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
2023-10-18 21:32:44 +00:00
|
|
|
$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-04-20 12:22:43 +00:00
|
|
|
|
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)
|
|
|
|
) {
|
2023-04-20 12:22:43 +00:00
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
2023-10-18 21:32:44 +00:00
|
|
|
App::filter()->initWikiComment();
|
2023-04-20 12:22:43 +00:00
|
|
|
|
2023-10-18 21:32:44 +00:00
|
|
|
return App::filter()->wikiTransform(vsprintf(
|
2023-04-20 12:22:43 +00:00
|
|
|
__(ActivityReport::instance()->groups->get($group)->get($action)->message),
|
|
|
|
$logs
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|