b6202a6a40
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 4s
Universal: PR Check / Validate PR (pull_request) Failing after 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 28s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Add a monthly calendar grid view to the admin component showing scheduled, queued, and posted cross-posts with color-coded status badges. Includes month-by-month navigation and today highlighting. New files: - CalendarController, CalendarModel, Calendar HtmlView, calendar template Modified files: - MokoSuiteCrossHelper: added Calendar to submenu - Language file: added calendar strings - CHANGELOG.md: documented new feature Authored-by: Moko Consulting
66 lines
1.9 KiB
PHP
66 lines
1.9 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\Administrator\View\Calendar;
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
use Joomla\CMS\Factory;
|
|
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
|
|
use Joomla\CMS\Toolbar\ToolbarHelper;
|
|
use Joomla\Component\MokoSuiteCross\Administrator\Helper\MokoSuiteCrossHelper;
|
|
|
|
class HtmlView extends BaseHtmlView
|
|
{
|
|
public int $year;
|
|
public int $month;
|
|
public array $events;
|
|
public $sidebar;
|
|
|
|
public function display($tpl = null): void
|
|
{
|
|
$input = Factory::getApplication()->input;
|
|
|
|
$this->year = $input->getInt('year', (int) date('Y'));
|
|
$this->month = $input->getInt('month', (int) date('n'));
|
|
|
|
if ($this->month < 1 || $this->month > 12) {
|
|
$this->month = (int) date('n');
|
|
}
|
|
|
|
if ($this->year < 2000 || $this->year > 2100) {
|
|
$this->year = (int) date('Y');
|
|
}
|
|
|
|
$model = $this->getModel();
|
|
$this->events = $model->getEvents($this->year, $this->month);
|
|
|
|
$this->addToolbar();
|
|
|
|
MokoSuiteCrossHelper::addSubmenu('calendar');
|
|
$this->sidebar = \Joomla\CMS\HTML\Sidebar::render();
|
|
|
|
parent::display($tpl);
|
|
}
|
|
|
|
protected function addToolbar(): void
|
|
{
|
|
$canDo = MokoSuiteCrossHelper::getActions();
|
|
|
|
ToolbarHelper::title('MokoSuiteCross -- Post Calendar', 'calendar');
|
|
ToolbarHelper::back('JTOOLBAR_BACK', 'index.php?option=com_mokosuitecross&view=dashboard');
|
|
|
|
if ($canDo->get('core.admin')) {
|
|
ToolbarHelper::preferences('com_mokosuitecross');
|
|
}
|
|
}
|
|
}
|