Llewellyn van der Merwe
e726e758b4
Add the new donation information to README. Update the Repo URLs to point to Llewellyn's repo instead. Improve the date methods in the Helper class. (JCB improvement) Add a fix to the import export methods. (JCB improvement)
256 lines
11 KiB
PHP
256 lines
11 KiB
PHP
<?php
|
|
/*-------------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
____ ____ __ __ __
|
|
/\ _`\ /\ _`\ __ /\ \__ __/\ \ /\ \__
|
|
\ \,\L\_\ __ _ __ ___ ___ ___ ___ \ \ \/\ \/\_\ ____\ \ ,_\ _ __ /\_\ \ \____ __ __\ \ ,_\ ___ _ __
|
|
\/_\__ \ /'__`\/\`'__\/' __` __`\ / __`\ /' _ `\ \ \ \ \ \/\ \ /',__\\ \ \/ /\`'__\/\ \ \ '__`\/\ \/\ \\ \ \/ / __`\/\`'__\
|
|
/\ \L\ \/\ __/\ \ \/ /\ \/\ \/\ \/\ \L\ \/\ \/\ \ \ \ \_\ \ \ \/\__, `\\ \ \_\ \ \/ \ \ \ \ \L\ \ \ \_\ \\ \ \_/\ \L\ \ \ \/
|
|
\ `\____\ \____\\ \_\ \ \_\ \_\ \_\ \____/\ \_\ \_\ \ \____/\ \_\/\____/ \ \__\\ \_\ \ \_\ \_,__/\ \____/ \ \__\ \____/\ \_\
|
|
\/_____/\/____/ \/_/ \/_/\/_/\/_/\/___/ \/_/\/_/ \/___/ \/_/\/___/ \/__/ \/_/ \/_/\/___/ \/___/ \/__/\/___/ \/_/
|
|
|
|
/------------------------------------------------------------------------------------------------------------------------------------/
|
|
|
|
@version 2.0.x
|
|
@created 22nd October, 2015
|
|
@package Sermon Distributor
|
|
@subpackage view.html.php
|
|
@author Llewellyn van der Merwe <https://www.vdm.io/>
|
|
@copyright Copyright (C) 2015. All Rights Reserved
|
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
|
|
A sermon distributor that links to Dropbox.
|
|
|
|
/----------------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
// No direct access to this file
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
/**
|
|
* Sermondistributor View class for the Preachers
|
|
*/
|
|
class SermondistributorViewPreachers extends JViewLegacy
|
|
{
|
|
// Overwriting JView display method
|
|
function display($tpl = null)
|
|
{
|
|
// get combined params of both component and menu
|
|
$this->app = JFactory::getApplication();
|
|
$this->params = $this->app->getParams();
|
|
$this->menu = $this->app->getMenu()->getActive();
|
|
// get the user object
|
|
$this->user = JFactory::getUser();
|
|
// Initialise variables.
|
|
$this->items = $this->get('Items');
|
|
$this->pagination = $this->get('Pagination');
|
|
// do a quick build of all the links
|
|
if ($this->items)
|
|
{
|
|
foreach ($this->items as $nr => &$item)
|
|
{
|
|
$item->link = JRoute::_(SermondistributorHelperRoute::getPreacherRoute($item->slug));
|
|
}
|
|
}
|
|
// set the FooTable style
|
|
$style = $this->params->get('preachers_table_color', 0);
|
|
if (5 == $style)
|
|
{
|
|
$this->fooTableStyle = 1;
|
|
}
|
|
elseif ($style <= 4)
|
|
{
|
|
$this->fooTableStyle = 0;
|
|
}
|
|
else
|
|
{
|
|
$this->fooTableStyle = 2;
|
|
}
|
|
|
|
// Set the toolbar
|
|
$this->addToolBar();
|
|
|
|
// set the document
|
|
$this->_prepareDocument();
|
|
|
|
// Check for errors.
|
|
if (count($errors = $this->get('Errors')))
|
|
{
|
|
throw new Exception(implode(PHP_EOL, $errors), 500);
|
|
}
|
|
|
|
parent::display($tpl);
|
|
}
|
|
|
|
/**
|
|
* Prepares the document
|
|
*/
|
|
protected function _prepareDocument()
|
|
{
|
|
|
|
// always make sure jquery is loaded.
|
|
JHtml::_('jquery.framework');
|
|
// Load the header checker class.
|
|
require_once( JPATH_COMPONENT_SITE.'/helpers/headercheck.php' );
|
|
// Initialize the header checker.
|
|
$HeaderCheck = new sermondistributorHeaderCheck;
|
|
|
|
// Load uikit options.
|
|
$uikit = $this->params->get('uikit_load');
|
|
// Set script size.
|
|
$size = $this->params->get('uikit_min');
|
|
|
|
// Load uikit version.
|
|
$this->uikitVersion = $this->params->get('uikit_version', 2);
|
|
|
|
// Use Uikit Version 2
|
|
if (2 == $this->uikitVersion)
|
|
{
|
|
// Set css style.
|
|
$style = $this->params->get('uikit_style');
|
|
|
|
// The uikit css.
|
|
if ((!$HeaderCheck->css_loaded('uikit.min') || $uikit == 1) && $uikit != 2 && $uikit != 3)
|
|
{
|
|
$this->document->addStyleSheet(JURI::root(true) .'/media/com_sermondistributor/uikit-v2/css/uikit'.$style.$size.'.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
}
|
|
// The uikit js.
|
|
if ((!$HeaderCheck->js_loaded('uikit.min') || $uikit == 1) && $uikit != 2 && $uikit != 3)
|
|
{
|
|
$this->document->addScript(JURI::root(true) .'/media/com_sermondistributor/uikit-v2/js/uikit'.$size.'.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
}
|
|
|
|
// Load the script to find all uikit components needed.
|
|
if ($uikit != 2)
|
|
{
|
|
// Set the default uikit components in this view.
|
|
$uikitComp = array();
|
|
$uikitComp[] = 'data-uk-tooltip';
|
|
$uikitComp[] = 'data-uk-grid';
|
|
|
|
// Get field uikit components needed in this view.
|
|
$uikitFieldComp = $this->get('UikitComp');
|
|
if (isset($uikitFieldComp) && SermondistributorHelper::checkArray($uikitFieldComp))
|
|
{
|
|
if (isset($uikitComp) && SermondistributorHelper::checkArray($uikitComp))
|
|
{
|
|
$uikitComp = array_merge($uikitComp, $uikitFieldComp);
|
|
$uikitComp = array_unique($uikitComp);
|
|
}
|
|
else
|
|
{
|
|
$uikitComp = $uikitFieldComp;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Load the needed uikit components in this view.
|
|
if ($uikit != 2 && isset($uikitComp) && SermondistributorHelper::checkArray($uikitComp))
|
|
{
|
|
// load just in case.
|
|
jimport('joomla.filesystem.file');
|
|
// loading...
|
|
foreach ($uikitComp as $class)
|
|
{
|
|
foreach (SermondistributorHelper::$uk_components[$class] as $name)
|
|
{
|
|
// check if the CSS file exists.
|
|
if (JFile::exists(JPATH_ROOT.'/media/com_sermondistributor/uikit-v2/css/components/'.$name.$style.$size.'.css'))
|
|
{
|
|
// load the css.
|
|
$this->document->addStyleSheet(JURI::root(true) .'/media/com_sermondistributor/uikit-v2/css/components/'.$name.$style.$size.'.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
}
|
|
// check if the JavaScript file exists.
|
|
if (JFile::exists(JPATH_ROOT.'/media/com_sermondistributor/uikit-v2/js/components/'.$name.$size.'.js'))
|
|
{
|
|
// load the js.
|
|
$this->document->addScript(JURI::root(true) .'/media/com_sermondistributor/uikit-v2/js/components/'.$name.$size.'.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Use Uikit Version 3
|
|
elseif (3 == $this->uikitVersion)
|
|
{
|
|
// The uikit css.
|
|
if ((!$HeaderCheck->css_loaded('uikit.min') || $uikit == 1) && $uikit != 2 && $uikit != 3)
|
|
{
|
|
$this->document->addStyleSheet(JURI::root(true) .'/media/com_sermondistributor/uikit-v3/css/uikit'.$size.'.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
}
|
|
// The uikit js.
|
|
if ((!$HeaderCheck->js_loaded('uikit.min') || $uikit == 1) && $uikit != 2 && $uikit != 3)
|
|
{
|
|
$this->document->addScript(JURI::root(true) .'/media/com_sermondistributor/uikit-v3/js/uikit'.$size.'.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
$this->document->addScript(JURI::root(true) .'/media/com_sermondistributor/uikit-v3/js/uikit-icons'.$size.'.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
}
|
|
}
|
|
|
|
// Add the CSS for Footable.
|
|
$this->document->addStyleSheet(JURI::root() .'media/com_sermondistributor/footable-v2/css/footable.core.min.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
|
|
// Use the Metro Style
|
|
if (!isset($this->fooTableStyle) || 0 == $this->fooTableStyle)
|
|
{
|
|
$this->document->addStyleSheet(JURI::root() .'media/com_sermondistributor/footable-v2/css/footable.metro.min.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
}
|
|
// Use the Legacy Style.
|
|
elseif (isset($this->fooTableStyle) && 1 == $this->fooTableStyle)
|
|
{
|
|
$this->document->addStyleSheet(JURI::root() .'media/com_sermondistributor/footable-v2/css/footable.standalone.min.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
}
|
|
|
|
// Add the JavaScript for Footable
|
|
$this->document->addScript(JURI::root() .'media/com_sermondistributor/footable-v2/js/footable.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
$this->document->addScript(JURI::root() .'media/com_sermondistributor/footable-v2/js/footable.sort.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
$this->document->addScript(JURI::root() .'media/com_sermondistributor/footable-v2/js/footable.filter.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
$this->document->addScript(JURI::root() .'media/com_sermondistributor/footable-v2/js/footable.paginate.js', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
|
|
// load the meta description
|
|
if ($this->params->get('menu-meta_description'))
|
|
{
|
|
$this->document->setDescription($this->params->get('menu-meta_description'));
|
|
}
|
|
// load the key words if set
|
|
if ($this->params->get('menu-meta_keywords'))
|
|
{
|
|
$this->document->setMetadata('keywords', $this->params->get('menu-meta_keywords'));
|
|
}
|
|
// check the robot params
|
|
if ($this->params->get('robots'))
|
|
{
|
|
$this->document->setMetadata('robots', $this->params->get('robots'));
|
|
}
|
|
// add the document default css file
|
|
$this->document->addStyleSheet(JURI::root(true) .'/components/com_sermondistributor/assets/css/preachers.css', (SermondistributorHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
|
|
}
|
|
|
|
/**
|
|
* Setting the toolbar
|
|
*/
|
|
protected function addToolBar()
|
|
{
|
|
// adding the joomla toolbar to the front
|
|
JLoader::register('JToolbarHelper', JPATH_ADMINISTRATOR.'/includes/toolbar.php');
|
|
|
|
// set help url for this view if found
|
|
$help_url = SermondistributorHelper::getHelpUrl('preachers');
|
|
if (SermondistributorHelper::checkString($help_url))
|
|
{
|
|
JToolbarHelper::help('COM_SERMONDISTRIBUTOR_HELP_MANAGER', false, $help_url);
|
|
}
|
|
// now initiate the toolbar
|
|
$this->toolbar = JToolbar::getInstance();
|
|
}
|
|
|
|
/**
|
|
* Escapes a value for output in a view script.
|
|
*
|
|
* @param mixed $var The output to escape.
|
|
*
|
|
* @return mixed The escaped value.
|
|
*/
|
|
public function escape($var, $sorten = false, $length = 40)
|
|
{
|
|
// use the helper htmlEscape method instead.
|
|
return SermondistributorHelper::htmlEscape($var, $this->_charset, $sorten, $length);
|
|
}
|
|
}
|