<?php
/**
* Pagelist for Contao
*
* Copyright (c) 2015 Benjamin Roth
*
* @license LGPL-3.0+
*/
/**
* Palettes
*/
$GLOBALS['TL_DCA']['tl_page']['palettes']['__selector__'][] = 'secureDownloadsEnabled';
$GLOBALS['TL_DCA']['tl_page']['palettes']['root'] = str_replace(';{publish_legend}', ';{sec_dl_legend},secureDownloadsEnabled;{publish_legend}',$GLOBALS['TL_DCA']['tl_page']['palettes']['root']);
$GLOBALS['TL_DCA']['tl_page']['subpalettes']['secureDownloadsEnabled'] = 'secureDownloadsSRC,secureDownloadsTarget,secureDownloadsRegExp,secureDownloadsFields,sd_nc_enable,sd_nc_notification';
/**
* Fields
*/
$GLOBALS['TL_DCA']['tl_page']['fields']['secureDownloadsEnabled'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['secureDownloadsEnabled'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_page']['fields']['secureDownloadsSRC'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['secureDownloadsSRC'],
'exclude' => true,
'inputType' => 'fileTree',
'eval' => array('mandatory'=>true,'fieldType'=>'radio', 'tl_class'=>'clr'),
'sql' => 'binary(16) NULL'
);
$GLOBALS['TL_DCA']['tl_page']['fields']['secureDownloadsTarget'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['secureDownloadsTarget'],
'exclude' => true,
'inputType' => 'fileTree',
'eval' => array('mandatory'=>true,'fieldType'=>'radio', 'tl_class'=>'clr'),
'sql' => 'binary(16) NULL'
);
$GLOBALS['TL_DCA']['tl_page']['fields']['secureDownloadsRegExp'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['secureDownloadsRegExp'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true,'maxlength'=>64,'preserveTags'=>true,'decodeEntities'=>true),
'sql' => 'varchar(64) NULL'
);
$GLOBALS['TL_DCA']['tl_page']['fields']['secureDownloadsFields'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['secureDownloadsFields'],
'exclude' => true,
'inputType' => 'checkboxWizard',
'options_callback' => array('tl_page_eSM_secureDownloads','getMemberProperties'),
'eval' => array('mandatory'=>true,'multiple'=>true),
'sql' => 'varchar(255) NULL'
);
$GLOBALS['TL_DCA']['tl_page']['fields']['sd_nc_enable'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['sd_nc_enable'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 m12','submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_page']['fields']['sd_nc_notification'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_page']['sd_nc_enable'],
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_page_eSM_secureDownloads', 'getNotificationChoices'),
'eval' => array('mandatory'=>true,'includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'),
'sql' => "int(10) unsigned NOT NULL default '0'"
);
class tl_page_eSM_secureDownloads extends \Backend
{
/**
* Import the back end user object
*/
public function __construct()
{
parent::__construct();
$this->import('BackendUser', 'User');
}
/**
* Return all fields of table tl_member
*
* @return array
*/
public function getMemberProperties()
{
$return = array('id'=>'ID');
System::loadLanguageFile('tl_member');
$this->loadDataContainer('tl_member');
foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
{
if (is_array($v['label']))
{
$return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0];
}
}
return $return;
}
/**
* Get notification choices
*
* @return array
*/
public function getNotificationChoices()
{
$arrChoices = array();
$objNotifications = \Database::getInstance()->execute("SELECT id,title FROM tl_nc_notification WHERE type='secDownloads_submitted' ORDER BY title");
while ($objNotifications->next()) {
$arrChoices[$objNotifications->id] = $objNotifications->title;
}
return $arrChoices;
}
}