<?php
use CityMountain\ToolBundle\Utils\OperationTool;
use CityMountain\CourseManagementBundle\Utils\OperationCM;
use CityMountain\CourseManagementBundle\Utils\ReplaceInsertTagsListener;
//$this->import('BackendUser', 'User');
/**
* add config
*/
$GLOBALS['TL_DCA']['tl_calendar_events']['config']['switchToEdit'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['config']['onsubmit_callback'][] = array('tl_calendar_eventsCM', 'generateIndex');
$GLOBALS['TL_DCA']['tl_calendar_events']['config']['onload_callback'][] = array('tl_calendar_eventsCM', 'permissionEdit');
/**
* add list
*/
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['sorting']['child_record_callback'] = array('tl_calendar_eventsCM', 'listEvents');
//FILTER!!
/**
* add operations
*/
$GLOBALS['TL_DCA']['tl_calendar_events']['edit']['buttons_callback'] = array(array('tl_calendar_eventsCM', 'editButtonAtEdit'));
unset($GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['edit']);
unset($GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['cut']);
unset($GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['feature']);
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['global_operations']['all']['button_callback'] = array('tl_calendar_eventsCM', 'buttonGlobal');
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['editheader']['icon'] = 'edit.svg';
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['delete']['button_callback'] = array('tl_calendar_eventsCM', 'buttonDelete');
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['cmActEveBookingImport'] = array(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmActEveBookingImport'],
'href' => 'key=importBooking',
'icon' => 'bundles/citymountaincoursemanagement/icons/iconUpload.svg',
//'button_callback' => array('tl_calendar_eventsCM', 'buttonBooking')
);
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['cmActEveBooking'] = array(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmActEveBooking'],
'href' => 'table=tl_zEventBooking',
'icon' => 'bundles/citymountaincoursemanagement/icons/booking.png',
'button_callback' => array('tl_calendar_eventsCM', 'buttonBooking')
);
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['operations']['cmActEveExport'] = array(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmActEveExport'],
'href' => 'act=show&key=eventExport',
'icon' => 'bundles/citymountaincoursemanagement/icons/exportEve.png',
);
/**
* add palettes
*/
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['__selector__'][] = 'cmMoreDate';
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['__selector__'][] = 'cmRegistrationVariant';
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['__selector__'][] = 'cmEventHybrid';
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default'] = '
{title_legend},fkUnit,fkEventType,fkEventSector1,fkEventSector2,title,author;
{date_legend},startDate,addTime,cmMoreDate;
{legendCMGeneral},cmLocation,cmCost,cmClosingDate,cmMaxTn,cmEventHybrid,cmCoursLeader,fkUnitConfirmationMail,cmContact,cmRegistrationVariant;
{legendCMSpecialSetting:hide},fkUnitRightEvent,cmEventCanceled,cmMoreConfirmationMail,cmEventRequestType,cmTarget;
{details_legend},cmTeaserShort,teaser;
{enclosure_legend:hide},addEnclosure;
{publish_legend},published,start,stop';
/**
* add subpalettes
*/
array_insert($GLOBALS['TL_DCA']['tl_calendar_events']['subpalettes'], 2, array
(
'cmRegistrationVariant_url' => 'urlExtern',
'cmMoreDate' => 'cmMoreDateTime',
'cmEventHybrid' => 'cmEventHybridTool',
)
);
$GLOBALS['TL_DCA']['tl_calendar_events']['subpalettes']['addTime'] = 'startTime,endTime';
/**
* Standartfelder beeinflussen
*/
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['author']['filter'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['featured']['filter'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['recurring']['filter'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['address']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['alt']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['author']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['imageUrl']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['imageTitle']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caption']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['alias']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['url']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['location']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['robots']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['pageTitle']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['description']['search'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['author']['sorting'] = false;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['title']['eval']['maxlength']= 82;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['featured']['eval']['tl_class']= 'clr w50 m12';
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addTime']['eval']['tl_class']= 'clr w50 m12';
if(isset($GLOBALS['TL_LANG']['tl_calendar_events']['cmTeaser']))$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['teaser']['label'] = $GLOBALS['TL_LANG']['tl_calendar_events']['cmTeaser'];
/**
* add fields
*/
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['fkUnit'] = array
(
'default' => OperationCM::getDefaultUnitFromUserToEdit(),
'filter' => true,
'sorting' => true,
'search' => true,
'inputType' => 'select',
'reference' => OperationTool::getUnits(0,1),
'options_callback' => array('tl_calendar_eventsCM', 'getUnits'),
'eval' => array('mandatory'=>true,'chosen'=>true, 'includeBlankOption'=>true,'tl_class'=>'w50'),
'sql' => "int(10) unsigned NOT NULL default '0'"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['fkEventType'] = array
(
'filter' => true,
'inputType' => 'select',
'reference' => OperationTool::getMasterdataValues(0,"eventType",1),
'options_callback' => array('tl_calendar_eventsCM', 'getEventType'),
'eval' => array('mandatory'=>true,'chosen'=>true,'includeBlankOption'=>true, 'tl_class'=>'w50', 'doNotSaveEmpty' => true),
'sql' => "int(10) unsigned NOT NULL default '0'",
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['fkEventSector1'] = array
(
'filter' => true,
'inputType' => 'select',
'options_callback' => array('tl_calendar_eventsCM', 'getEventSector1'),
'eval' => array('chosen'=>true,'multiple'=>true, 'tl_class'=>'w50'),
'save_callback' => array(array('tl_calendar_eventsCM', 'saveCheckEventSector')),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['fkEventSector2'] = array
(
'filter' => true,
'inputType' => 'select',
'options_callback' => array('tl_calendar_eventsCM', 'getEventSector2'),
'eval' => array('chosen'=>true,'multiple'=>true, 'tl_class'=>'w50'),
'save_callback' => array(array('tl_calendar_eventsCM', 'saveCheckEventSector')),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmMoreDate'] = array
(
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'clr w50 m12','submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmMoreDateTime'] = array
(
'inputType' => 'multiColumnWizard',
'eval' => array('tl_class'=>'cmWizard',
'columnFields'=>array(
'cmMoreStartDate' => array(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['startDate'],
'inputType' => 'text',
'eval' => array('mandatory'=>false, 'rgxp'=>'date', 'datepicker'=>true, 'submitOnChange'=>false, 'doNotCopy'=>true, 'style'=>'width:100px', 'tl_class'=>'wizard')
),
'cmMoreStartTime' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['startTime'],
'inputType' => 'text',
'eval' => array('rgxp'=>'time', 'datepicker'=>true, 'submitOnChange'=>false, 'doNotCopy'=>true, 'style'=>'width:100px')
),
'cmMoreEndTime' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['endTime'],
'inputType' => 'text',
'eval' => array('rgxp'=>'time', 'datepicker'=>true, 'submitOnChange'=>false, 'doNotCopy'=>true, 'style'=>'width:100px;')
)
)
),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmLocation'] = array
(
'search' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true,'maxlength'=>35,'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmCost'] = array
(
'inputType' => 'text',
'eval' => array('mandatory'=>true,'maxlength'=>255,'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmClosingDate'] = array
(
'filter' => true,
'flag' => 6,
'inputType' => 'text',
'eval' => array('mandatory'=>false,'rgxp'=>'date','datepicker'=>true,'maxlength'=>255,'tl_class'=>'w50 wizard'),
'sql' => "varchar(10) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmMaxTn'] = array
(
'inputType' => 'text',
'eval' => array('maxlength'=>255,'tl_class'=>'w50','rgxp'=>'natural'),
'sql' => "varchar(255) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmCoursLeader'] = array
(
'sorting' => true,
'inputType' => 'text',
'eval' => array('maxlength'=>255,'tl_class'=>'clr w50'),
'sql' => "varchar(255) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['fkUnitConfirmationMail'] = array
(
'filter' => true,
'inputType' => 'select',
'options_callback' => array('tl_calendar_eventsCM', 'getUnitsMembers'),
'eval' => array('mandatory'=>true,'chosen'=>true,
'includeBlankOption'=>true,'multiple'=>false, 'tl_class'=>'w50'),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmContact'] = array
(
'inputType' => 'multiColumnWizard',
'eval' => array
(
'buttons' => array('up' => false, 'down' => false),
'tl_class' => 'clr long cmWizard',
'mandatory' => true,
'columnFields' =>array(
'cmName' => array(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmName'],
'inputType' => 'text',
//'mandatory' => true,
'eval' => array('doNotCopy'=>true, 'style'=>'width:130px')
),
'cmPhone' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmPhone'],
'inputType' => 'text',
'eval' => array('doNotCopy'=>true, 'style'=>'width:80px')
),
'cmMail' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmMail'],
'inputType' => 'text',
'eval' => array('doNotCopy'=>true, 'style'=>'width:200px')
),
'cmComment' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmComment'],
'inputType' => 'text',
'eval' => array('doNotCopy'=>true, 'style'=>'width:180px')
)
)
),
'save_callback' => array(array('tl_calendar_eventsCM', 'saveCmContact')),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmRegistrationVariant'] = array
(
'default' => 'plattform',
'filter' => true,
'inputType' => 'radio',
'options' => array('plattform', 'url', 'noreg'),
'reference' => &$GLOBALS['TL_LANG']['tl_calendar_events'],
'eval' => array('submitOnChange'=>true,'helpwizard'=>true,'tl_class'=>'clr w50'),
'sql' => "varchar(32) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['urlExtern'] = array
(
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'decodeEntities'=>true, 'maxlength'=>255, 'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['fkUnitRightEvent'] = array
(
'inputType' => 'multiColumnWizard',
'eval' => array
(
'columnsCallback' => array('tl_calendar_eventsCM', 'getUnitRightEvent'),
'buttons' => array('up' => false, 'down' => false),
'tl_class' => 'clr w50 cmWizard',
),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmMoreConfirmationMail'] = array
(
'sorting' => true,
'inputType' => 'text',
'eval' => array('tl_class'=>'clr long'),
'sql' => "text NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmEventRequestType'] = array
(
'exclude' => true,
'filter' => true,
'inputType' => 'select',
'options' => array('modul','eve-zertifikat'),
'reference' => &$GLOBALS['TL_LANG']['cmglobal']['cmEventRequestType'],
'eval' => array('includeBlankOption'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(32) NOT NULL default ''",
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmTarget'] = array
(
'inputType' => 'multiColumnWizard',
'eval' => array
(
'columnFields' => array(
'f1' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['cmTargetF1'],
'inputType' => 'text',
'eval' => array('style' => 'width:300px')
),
),
'buttons' => array(),
'tl_class' => 'w50 cmWizard',
),
'sql' => "blob NULL"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmTeaserShort'] = array
(
'inputType' => 'text',
'eval' => array('mandatory'=>true,'decodeEntities'=>true, 'maxlength'=>234, 'tl_class'=>'long'),
//'save_callback' => array(array('tl_calendar_eventsCM', 'saveCmTeaserShort')),
'sql' => "varchar(234) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmEventCanceled'] = array
(
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 m12','submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmEventHybrid'] = array
(
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 m12','submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
);
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['cmEventHybridTool'] = array
(
'inputType' => 'text',
'eval' => array('mandatory'=>true,'decodeEntities'=>true, 'maxlength'=>255, 'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''"
);
class tl_calendar_eventsCM extends tl_calendar_events
{
public function permissionEdit(DataContainer $dc = null)
{
$arrUnits = array();
$objRights = OperationTool::getUserRights(\BackendUser::getInstance()->id,1,array("AND fkModuleAction IN ('MOD09SHOWUNIT','MOD09EDITUNIT')"));
//Laden der Veranstaltungen, die man sehen darf
if(!$this->User->isAdmin){
if (count($objRights['entryUnitList'])>0)
{
$arrUnits = OperationTool::getUnitsHierarchy($objRights['entryUnitList']);
}
$objRes = \Database::getInstance()->prepare("SELECT DISTINCT pid FROM tl_zEventIndex WHERE fkUnit IN (".implode(',',array_keys($arrUnits)).")")->execute();
$arrUnitFilter = array();
if(!$objRes->numRows)$arrUnitFilter = array(0);
while($objRes->next())
{
$arrUnitFilter[] = $objRes->pid;
}
$GLOBALS['TL_DCA']['tl_calendar_events']['list']['sorting']['filter'][] = array('id IN ('.implode(',', $arrUnitFilter).') AND pid<>?','');
}
//direkt Zugriff auf User
if(!$this->User->isAdmin && \Input::get('act')=='edit'){
$objEvent = $this->Database->prepare("SELECT fkUnit,tstamp FROM tl_calendar_events WHERE id = ?")->execute(\Input::get('id'));
//keinen tstamp vorhanden, dann ist er erst neu erstellt.
if($objEvent->tstamp==0)return;
if (count($objRights['entryUnitList'])>0)
{
$arrUnits = OperationTool::getUnitsHierarchy($objRights['entryUnitList']);
}
$objRes = \Database::getInstance()->prepare("SELECT DISTINCT pid FROM tl_zEventIndex
WHERE pid=?
AND fkUnit IN (".implode(',',array_keys($arrUnits)).")")->execute(\Input::get('id'));
//unset();
if($objRes->numRows==0)
{
\System::log('Zugriffs Versuch von "'.$this->User->username.'" beim Event '.\Input::get('id').' verweigert.', __METHOD__, "CM_ACCESS_BACKEND");
$this->redirect('contao?do=calendar&act=error');
}
}
}
public function generateIndex(DataContainer $dc)
{
OperationCM::setIndexCalendar($dc->activeRecord->id,$dc->activeRecord->fkUnit,$dc->activeRecord->fkUnitRightEvent,
$dc->activeRecord->fkEventSector1,$dc->activeRecord->fkEventSector2);
}
public function listEvents($arrRow)
{
$span = Calendar::calculateSpan($arrRow['startTime'], $arrRow['endTime']);
if ($span > 0)
{
$date = Date::parse(Config::get(($arrRow['addTime'] ? 'datimFormat' : 'dateFormat')), $arrRow['startTime']) . $GLOBALS['TL_LANG']['MSC']['cal_timeSeparator'] . Date::parse(Config::get(($arrRow['addTime'] ? 'datimFormat' : 'dateFormat')), $arrRow['endTime']);
}
elseif ($arrRow['startTime'] == $arrRow['endTime'])
{
$date = Date::parse(Config::get('dateFormat'), $arrRow['startTime']) . ($arrRow['addTime'] ? ' ' . Date::parse(Config::get('timeFormat'), $arrRow['startTime']) : '');
}
else
{
$date = Date::parse(Config::get('dateFormat'), $arrRow['startTime']) . ($arrRow['addTime'] ? ' ' . Date::parse(Config::get('timeFormat'), $arrRow['startTime']) . $GLOBALS['TL_LANG']['MSC']['cal_timeSeparator'] . Date::parse(Config::get('timeFormat'), $arrRow['endTime']) : '');
}
$pastEve = "";
if($arrRow['startDate'] < time())
{
$pastEve = 'background-color:#d7d7d7;font-style:italic;';
}
$fullyBookedStyle = "";
$fullyBookedText = "";
$checkBookable = OperationCM::replaceInsertTags('CMEvent::bookableArray::'.$arrRow['id']);
if($checkBookable['fullyBooked']==true)
{
$fullyBookedStyle = 'border: 1px solid red;';
$fullyBookedText = '<span style="color:red;padding-left:3px">ausgebucht</span>';
}
if($arrRow['cmEventCanceled']==true)
{
$fullyBookedText .= '<span style="color:red;padding-left:3px">abgesagt</span>';
}
return '<div class="tl_content_left" style="'.$pastEve.$fullyBookedStyle.'">'
. $arrRow['title']
. ' <span style="color:#b3b3b3;padding-left:3px">[' . $date . ']</span>'
. ' <span style="color:blue;padding-left:3px">'.OperationTool::getUnit($arrRow['fkUnit'],true)->uName.'</span>'
. $fullyBookedText
. '</div>';
}
public function buttonGlobal($href, $label, $title, $icon, $attributes)
{
if($this->User->isAdmin || $this->User->hasAccess('eveGlobalEdit', 'coursManagementRight'))return '<a href="'.$this->addToUrl($href).'" class="'.$icon.'" title="'.specialchars($title).'"'.$attributes.'>'.$label.'</a> ';
return '';
}
public function buttonDelete($row, $href, $label, $title, $icon, $attributes)
{
if ( (\Controller::replaceInsertTags('{{CMEvent::countRegistration::'.$row['id'].'}}')==0 && $row['startDate'] > time()) || $this->User->isAdmin){
return '<a href="' . $this->addToUrl($href . '&id=' . $row['id']) . '" title="' . StringUtil::specialchars($title) . '"' . $attributes . '>' . Image::getHtml($icon, $label) . '</a> ';
} else {
return "";
}
}
public function buttonBooking($row, $href, $label, $title, $icon, $attributes)
{
$objEvent = $this->Database->prepare("SELECT id FROM tl_zEventBooking WHERE pid = ?")->execute($row['id']);
if ($objEvent->numRows){
return '<a href="' . $this->addToUrl($href . '&id=' . $row['id']) . '" title="' . StringUtil::specialchars($title) . '"' . $attributes . '>' . Image::getHtml($icon, $label) . '</a> ';
} else {
return '<a href="' . $this->addToUrl($href . '&id=' . $row['id']) . '" title="' . StringUtil::specialchars($title) . '"' . $attributes . '>' . Image::getHtml(preg_replace('/\.png$/i', '_.png', $icon), $label) . '</a> ';
}
}
public function editButtonAtEdit($arrButtons)
{
//dump($arrButtons);
unset($arrButtons['saveNback']);
if(!$this->User->isAdmin && \Input::get('act')=='edit'){
$objEvent = OperationCM::getEvent(\Input::get('id'),true);
//Wenn neu erstellt wird, sind die Daten noch nicht gefüllt
if($objEvent->fkEventType==0||$objEvent->startDate==0)return $arrButtons;
$arrUnits = array();
$objRights = OperationTool::getUserRights(\BackendUser::getInstance()->id,1,array("AND fkModuleAction IN ('MOD09EDITUNIT')"));
if (count($objRights['entryUnitList'])>0)
{
$arrUnits = OperationTool::getUnitsHierarchy($objRights['entryUnitList']);
}
$objRes = \Database::getInstance()->prepare("SELECT DISTINCT pid FROM tl_zEventIndex
WHERE pid=?
AND fkUnit IN (".implode(',',array_keys($arrUnits)).")")->execute(\Input::get('id'));
if($objRes->numRows==0)
{
$arrButtons = array();
}
}
return $arrButtons;
}
public function getUnits($dc)
{
return OperationTool::getUnitsFromRights($dc->activeRecord->{$dc->field},'user',array('MOD09EDITUNIT'));
}
public function getEventType(Contao\DataContainer $dc)
{
return OperationTool::getMasterdataValues($dc->activeRecord->{$dc->field},"eventType");
}
public function getEventSector1(Contao\DataContainer $dc)
{
return OperationTool::getMasterdataValues(($dc->activeRecord?deserialize($dc->activeRecord->{$dc->field}):0),"eventSectorSub",0,array("AND fkEventSector=".\Config::get('eventSector1')));
}
public function getEventSector2(Contao\DataContainer $dc)
{
return OperationTool::getMasterdataValues(($dc->activeRecord?deserialize($dc->activeRecord->{$dc->field}):0),"eventSectorSub",0,array("AND fkEventSector=".\Config::get('eventSector2')));
}
public function saveCheckEventSector($varValue, DataContainer $dc)
{
if($varValue && count(deserialize($varValue))>2)throw new Exception(sprintf($GLOBALS['TL_LANG']['ERR']['addtoomuch'], 2));
return $varValue;
}
public function getUnitsMembers($dc)
{
$res = array();
$arrUnits = array();
$objRights = OperationTool::getUserRights(\BackendUser::getInstance()->id,1,array("AND fkModule = 'mod09'"));
if (count($objRights['entry'])>0)
{
$arrIDs = array();
foreach($objRights['entry'] as $arrRight){
$arrIDs[$arrRight['fkUnit']] = '';
}
$arrUnits = OperationTool::getUnitsHierarchy($arrIDs);
}
$idUser=0;
if($dc->activeRecord)$idUser = $dc->activeRecord->{$dc->field};
$objUsers = \Database::getInstance()->prepare("
SELECT DISTINCT tl_user.id, tl_user.name
FROM tl_zLinkUserRight,tl_user
WHERE tl_user.id = tl_zLinkUserRight.pid
AND fkUnit IN (".implode(',',array_keys($arrUnits)).")
OR tl_user.id IN (".($idUser?$idUser:0).")
ORDER BY name")->execute();
while($objUsers->next())
{
$res[$objUsers->id] = $objUsers->name;
}
//Prüfen ob User exisitert
if($idUser<>0 && !array_key_exists($idUser,$res)){//
\Message::addError('Empfänger vom Bestätitungsmail muss korrigiert werden');
}
return $res;
}
public function saveCmContact($varValue, DataContainer $dc)
{
$arrVarValue = deserialize($varValue);
//$arrVarValue = var_dump($arrVarValue[0]['cmName']);
$varExcept = array();
foreach($arrVarValue as $arrValue){
if($arrValue['cmName']=='')$varExcept[] = sprintf($GLOBALS['TL_LANG']['ERR']['valueMissingCmName'], '');
if($arrValue['cmMail']=='')$varExcept[] = sprintf($GLOBALS['TL_LANG']['ERR']['valueMissingCmMail'], '');
}
if($varExcept)throw new Exception(implode('; ',$varExcept));
return $varValue;
}
/*public function saveCmTeaserShort($varValue, DataContainer $dc)
{dump($varValue);
if ($varValue && mb_strlen($varValue) > 234)
{
throw new Exception(sprintf($GLOBALS['TL_LANG']['ERR']['maxlength'], $GLOBALS['TL_LANG']['tl_calendar_events']['cmTeaserShort'][0], 234));
}
return $varValue;
}*/
public function getUnitRightEvent($var1)
{
$columnFields = null;
$arrAnbieter = OperationTool::getUnitsHierarchy(OperationTool::getUnitsTop());
$columnFields = array
(
'f1' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['fkUnitRightEventF1'],
'inputType' => 'select',
'options' => $arrAnbieter,
'eval' => array('doNotCopy'=>true,'chosen'=>true, 'includeBlankOption'=>true, 'style'=>'width:350px')
)
);
return $columnFields;
}
}
?>