a537132836
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 30s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Authored-by: Moko Consulting
65 lines
1.6 KiB
PHP
65 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @package MokoSuiteCross
|
|
* @subpackage com_mokosuitecross
|
|
* @author Moko Consulting <hello@mokoconsulting.tech>
|
|
* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved.
|
|
* @license GNU General Public License version 3 or later; see LICENSE
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
namespace Joomla\Component\MokoSuiteCross\Site\Model;
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
use Joomla\CMS\Factory;
|
|
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
|
|
|
|
class PostModel extends BaseDatabaseModel
|
|
{
|
|
public function getArticle(int $articleId): ?object
|
|
{
|
|
$db = $this->getDatabase();
|
|
$user = Factory::getApplication()->getIdentity();
|
|
|
|
$query = $db->getQuery(true)
|
|
->select('a.id, a.title, a.alias, a.catid, a.access')
|
|
->from($db->quoteName('#__content', 'a'))
|
|
->where('a.id = ' . (int) $articleId)
|
|
->where('a.state = 1');
|
|
|
|
$groups = $user->getAuthorisedViewLevels();
|
|
$query->where('a.access IN (' . implode(',', array_map('intval', $groups)) . ')');
|
|
|
|
$db->setQuery($query);
|
|
|
|
return $db->loadObject() ?: null;
|
|
}
|
|
|
|
public function getPosts(int $articleId): array
|
|
{
|
|
$db = $this->getDatabase();
|
|
|
|
$query = $db->getQuery(true)
|
|
->select([
|
|
'p.id',
|
|
'p.status',
|
|
'p.platform_post_id',
|
|
'p.posted_at',
|
|
'p.error_message',
|
|
'p.created',
|
|
's.title AS service_title',
|
|
's.service_type',
|
|
])
|
|
->from($db->quoteName('#__mokosuitecross_posts', 'p'))
|
|
->join('INNER', $db->quoteName('#__mokosuitecross_services', 's') . ' ON s.id = p.service_id')
|
|
->where('p.article_id = ' . (int) $articleId)
|
|
->order('p.created DESC');
|
|
|
|
$db->setQuery($query, 0, 50);
|
|
|
|
return $db->loadObjectList() ?: [];
|
|
}
|
|
}
|