Added XenForo activity for Laravel pages

This commit is contained in:
2026-07-03 18:26:03 +02:00
parent be885ab80d
commit e33f0bd77c
17 changed files with 188 additions and 3 deletions

View File

@@ -2,6 +2,7 @@
namespace RomhackPlaza\Master\Pub\Controller;
use RomhackPlaza\Master\Helper\Laravel;
use XF\Mvc\ParameterBag;
use XF\Mvc\Reply\AbstractReply;
use XF\Pub\Controller\AbstractController;
@@ -47,4 +48,36 @@ class Entry extends AbstractController {
);
}
public static function getActivityDetails(array $activities)
{
return self::getActivityDetailsForContent(
$activities,
\XF::phrase('viewing_romhackplaza_entry'),
'entry_id',
function (array $ids)
{
$db = Laravel::db();
if( !$db || empty($ids) )
return [];
$entries = $db->fetchAll("
SELECT id, complete_title as title, slug, type
FROM entries
WHERE id IN (" . $db->quote($ids) . ")
");
$data = [];
foreach( $entries as $entry ){
$data[$entry['id']] = [
'title' => $entry['title'],
'url' => \XF::options()->homePageUrl . '/' . $entry['type'] . '/' . $entry['slug'],
];
}
return $data;
},
\XF::phrase('viewing_romhackplaza_database')
);
}
}

View File

@@ -2,6 +2,7 @@
namespace RomhackPlaza\Master\Pub\Controller;
use RomhackPlaza\Master\Helper\Laravel;
use XF\Mvc\ParameterBag;
use XF\Mvc\Reply\AbstractReply;
use XF\Pub\Controller\AbstractController;
@@ -15,7 +16,7 @@ class News extends AbstractController {
if( !$laravelDb )
return $this->notFound();
$entry = $laravelDb->fetchRow("SELECT id, slugFROM news WHERE id = ?", $entryId);
$entry = $laravelDb->fetchRow("SELECT id, slug FROM news WHERE id = ?", $entryId);
if( !$entry )
return $this->notFound();
@@ -47,4 +48,35 @@ class News extends AbstractController {
);
}
public static function getActivityDetails(array $activities)
{
return self::getActivityDetailsForContent(
$activities,
\XF::phrase('viewing_romhackplaza_news'),
'news_id',
function (array $ids)
{
$db = Laravel::db();
if( !$db || empty($ids) )
return [];
$entries = $db->fetchAll("
SELECT id, slug, title FROM news
WHERE id IN (" . $db->quote($ids) . ")
");
$data = [];
foreach( $entries as $entry ){
$data[$entry['id']] = [
'title' => $entry['title'],
'url' => \XF::options()->homePageUrl . '/news/' . $entry['slug'],
];
}
return $data;
},
\XF::phrase('viewing_romhackplaza_database')
);
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace RomhackPlaza\Master\Pub\Controller;
use XF\Entity\SessionActivity;
use XF\Mvc\ParameterBag;
use XF\Pub\Controller\AbstractController;
class RomhackPlaza extends AbstractController
{
public static function getActivityDetails(array $activities)
{
/** @var SessionActivity $activity */
foreach ($activities as $activity) {
switch ( $activity->controller_action ){
case 'Drafts':
return \XF::phrase('viewing_romhackplaza_drafts');
break;
case 'Reviews':
return \XF::phrase('viewing_romhackplaza_reviews');
break;
case 'Mod':
return \XF::phrase('performing_moderation_duties');
break;
case 'Submit':
return \XF::phrase('viewing_romhackplaza_submit');
break;
case 'Edit':
return \XF::phrase('viewing_romhackplaza_edit');
break;
case 'Tools':
return \XF::phrase('viewing_romhackplaza_tools');
break;
case 'Play':
return \XF::phrase('viewing_romhackplaza_play');
break;
}
}
return \XF::phrase('viewing_romhackplaza');
}
}