forked from joomla/Component-Builder
Robot
a9fe531c6a
Improved the Schema Table update engine (more). Fix autoloader timing, and loading. Implement the Joomla Powers in JCB code, to move away from JClasses. Remove many of the SQL updates, to only use the Schema updates of table columns to avoid collusion. Fix the admin.css file loading on dashboard. #1112.
109 lines
2.8 KiB
PHP
109 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* @package Joomla.Component.Builder
|
|
*
|
|
* @created 4th September 2022
|
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
// No direct access to this JCB template file (EVER)
|
|
defined('_JCB_TEMPLATE') or die;
|
|
?>
|
|
###BOM###
|
|
namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator\View\###Component###;
|
|
|
|
###DASH_VIEW_HTML_HEADER###
|
|
|
|
// No direct access to this file
|
|
\defined('_JEXEC') or die;
|
|
|
|
/**
|
|
* ###Component### View class
|
|
*
|
|
* @since 1.6
|
|
*/
|
|
class HtmlView extends BaseHtmlView
|
|
{
|
|
/**
|
|
* View display method
|
|
* @return void
|
|
*/
|
|
function display($tpl = null)
|
|
{
|
|
// Assign data to the view
|
|
$this->icons = $this->get('Icons');
|
|
$this->styles = $this->get('Styles');
|
|
$this->scripts = $this->get('Scripts');
|
|
$this->contributors = ###Component###Helper::getContributors();
|
|
|
|
// get the manifest details of the component
|
|
$this->manifest = ###Component###Helper::manifest();###DASH_GET_CUSTOM_DATA###
|
|
|
|
// Set the toolbar
|
|
$this->addToolBar();
|
|
|
|
// Check for errors.
|
|
if (count($errors = $this->get('Errors')))
|
|
{
|
|
throw new \Exception(implode("\n", $errors), 500);
|
|
}
|
|
|
|
// Set the html view document stuff
|
|
$this->_prepareDocument();
|
|
|
|
// Display the template
|
|
parent::display($tpl);
|
|
}
|
|
|
|
/**
|
|
* Add the page title and toolbar.
|
|
*
|
|
* @return void
|
|
* @since 1.6
|
|
*/
|
|
protected function addToolbar(): void
|
|
{
|
|
$canDo = ###Component###Helper::getActions('###component###');
|
|
ToolbarHelper::title(Text::_('COM_###COMPONENT###_DASHBOARD'), 'grid-2');
|
|
|
|
// set help url for this view if found
|
|
$this->help_url = ###Component###Helper::getHelpUrl('###component###');
|
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
|
{
|
|
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
|
}
|
|
|
|
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
|
{
|
|
ToolbarHelper::preferences('com_###component###');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Prepare some document related stuff.
|
|
*
|
|
* @return void
|
|
* @since 1.6
|
|
*/
|
|
protected function _prepareDocument(): void
|
|
{
|
|
// set page title
|
|
$this->getDocument()->setTitle(Text::_('COM_###COMPONENT###_DASHBOARD'));
|
|
// add manifest to page JavaScript
|
|
$this->getDocument()->addScriptDeclaration("var manifest = JSON.parse('" . json_encode($this->manifest) . "');", "text/javascript");
|
|
// add styles
|
|
foreach ($this->styles as $style)
|
|
{
|
|
Html::_('stylesheet', $style, ['version' => 'auto']);
|
|
}
|
|
// add scripts
|
|
foreach ($this->scripts as $script)
|
|
{
|
|
Html::_('script', $script, ['version' => 'auto']);
|
|
}
|
|
}
|
|
}
|