コード例 #1
0
ファイル: CmsLayout.php プロジェクト: saneinsane/calendarize
 /**
  * Add page IDs to the preview of the element
  */
 protected function addPageIdsToTable()
 {
     $pageIdsNames = ['detailPid', 'listPid', 'yearPid', 'monthPid', 'weekPid', 'dayPid'];
     foreach ($pageIdsNames as $pageIdName) {
         $pageId = (int) $this->flexFormService->get('settings.' . $pageIdName, 'pages');
         $pageRow = BackendUtility::getRecord('pages', $pageId);
         if ($pageRow) {
             $this->layoutService->addRow(TranslateUtility::get($pageIdName), $pageRow['title'] . ' (' . $pageId . ')');
         }
     }
 }
コード例 #2
0
 /**
  * Get event list
  *
  * @param $events
  *
  * @return string
  */
 protected function getEventList($events)
 {
     $items = [];
     foreach ($events as $event) {
         $entry = date('d.m.Y', $event['start_date']) . ' - ' . date('d.m.Y', $event['end_date']);
         if (!$event['all_day']) {
             $start = BackendUtility::time($event['start_time'], false);
             $end = BackendUtility::time($event['end_time'], false);
             $entry .= ' (' . $start . ' - ' . $end . ')';
         }
         $items[] = $entry;
     }
     if (!sizeof($items)) {
         $items[] = TranslateUtility::get('noEvents');
     }
     return '<ul><li>' . implode('</li><li>', $items) . '</li></ul>';
 }
コード例 #3
0
ファイル: TcaInformation.php プロジェクト: mkalus/calendarize
 /**
  * Get event list
  *
  * @param $events
  *
  * @return string
  */
 protected function getEventList($events)
 {
     $items = [];
     foreach ($events as $event) {
         $startDateStamp = $event['start_date'] instanceof \DateTime ? $event['start_date']->getTimestamp() : $event['start_date'];
         $startDate = strftime('%a %d.%m.%G', $startDateStamp);
         $endDateStamp = $event['end_date'] instanceof \DateTime ? $event['end_date']->getTimestamp() : $event['end_date'];
         $endDate = strftime('%a %d.%m.%G', $endDateStamp);
         $entry = $startDate . ' - ' . $endDate;
         if (!$event['all_day']) {
             $start = BackendUtility::time($event['start_time'], false);
             if ((int) $event['end_time'] === AbstractTimeTable::DAY_END) {
                 $end = '"' . TranslateUtility::get('openEndTime') . '"';
             } else {
                 $end = BackendUtility::time($event['end_time'], false);
             }
             $entry .= ' (' . $start . ' - ' . $end . ')';
         }
         $items[] = $entry;
     }
     if (!sizeof($items)) {
         $items[] = TranslateUtility::get('noEvents');
     }
     return '<ul><li>' . implode('</li><li>', $items) . '</li></ul>';
 }
<?php

/**
 * TCA Structure for Configurations
 */
use HDNET\Calendarize\Domain\Model\Configuration;
use HDNET\Calendarize\Utility\TranslateUtility;
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
$base = \HDNET\Autoloader\Utility\ModelUtility::getTcaInformation('HDNET\\Calendarize\\Domain\\Model\\Configuration');
$timeType = str_replace('--palette--;LLL:EXT:hdnet/Resources/Private/Language/locallang.xlf:language;language', '', $base['types']['1']['showitem']);
$timeType = str_replace(',frequency', ',--div--;LLL:EXT:calendarize/Resources/Private/Language/locallang.xlf:tx_calendarize_domain_model_configuration.frequency,frequency', $timeType);
$timeType = str_replace(',external_ics_url', '', $timeType);
$timeType = str_replace(',groups', '', $timeType);
$timeType = str_replace(',start_date,end_date', ',--palette--;LLL:EXT:calendarize/Resources/Private/Language/locallang.xlf:date;date', $timeType);
$timeType = str_replace(',start_time,end_time,all_day', ',--palette--;LLL:EXT:calendarize/Resources/Private/Language/locallang.xlf:time;time', $timeType);
$timeType = str_replace(',counter_interval,recurrence,day', ',--palette--;LLL:EXT:calendarize/Resources/Private/Language/locallang.xlf:frequency_configuration;frequency_configuration', $timeType);
$extendTab = ',--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.extended';
$custom = array('ctrl' => array('type' => 'type', 'hideTable' => true, 'typeicons' => array(Configuration::TYPE_TIME => ExtensionManagementUtility::extRelPath('calendarize') . 'Resources/Public/Icons/Configuration.png', Configuration::TYPE_INCLUDE_GROUP => ExtensionManagementUtility::extRelPath('calendarize') . 'Resources/Public/Icons/ConfigurationInclude.png', Configuration::TYPE_EXCLUDE_GROUP => ExtensionManagementUtility::extRelPath('calendarize') . 'Resources/Public/Icons/ConfigurationExclude.png', Configuration::TYPE_EXTERNAL => ExtensionManagementUtility::extRelPath('calendarize') . 'Resources/Public/Icons/ConfigurationExternal.png'), 'typeicon_column' => 'type', 'requestUpdate' => 'all_day,frequency', 'formattedLabel_userFunc' => 'HDNET\\Calendarize\\Service\\TcaService->configurationTitle'), 'columns' => array('type' => array('config' => array('type' => 'select', 'renderType' => 'selectSingle', 'items' => array(array(TranslateUtility::getLll('configuration.type.' . Configuration::TYPE_TIME), Configuration::TYPE_TIME), array(TranslateUtility::getLll('configuration.type.' . Configuration::TYPE_INCLUDE_GROUP), Configuration::TYPE_INCLUDE_GROUP), array(TranslateUtility::getLll('configuration.type.' . Configuration::TYPE_EXCLUDE_GROUP), Configuration::TYPE_EXCLUDE_GROUP), array(TranslateUtility::getLll('configuration.type.' . Configuration::TYPE_EXTERNAL), Configuration::TYPE_EXTERNAL)), 'default' => Configuration::TYPE_TIME)), 'start_date' => array('config' => array('eval' => 'required,date', 'size' => 6), 'displayCond' => 'FIELD:type:=:' . Configuration::TYPE_TIME), 'end_date' => array('config' => array('eval' => 'date', 'size' => 6), 'displayCond' => 'FIELD:type:=:' . Configuration::TYPE_TIME), 'start_time' => array('config' => array('eval' => 'time', 'size' => 4), 'displayCond' => array('AND' => array('FIELD:all_day:!=:1', 'FIELD:type:=:' . Configuration::TYPE_TIME))), 'end_time' => array('config' => array('eval' => 'time', 'size' => 4), 'displayCond' => array('AND' => array('FIELD:all_day:!=:1', 'FIELD:type:=:' . Configuration::TYPE_TIME))), 'all_day' => array('displayCond' => 'FIELD:type:=:' . Configuration::TYPE_TIME, 'config' => array('default' => '0')), 'groups' => array('config' => array('type' => 'select', 'renderType' => 'selectMultipleSideBySide', 'foreign_table' => 'tx_calendarize_domain_model_configurationgroup', 'minitems' => '1', 'size' => 5, 'maxitems' => '99'), 'displayCond' => 'FIELD:type:!=:' . Configuration::TYPE_TIME), 'frequency' => array('config' => array('type' => 'select', 'renderType' => 'selectSingle', 'items' => array(array(TranslateUtility::getLll('configuration.frequency.' . Configuration::FREQUENCY_NONE), Configuration::FREQUENCY_NONE), array(TranslateUtility::getLll('configuration.frequency.' . Configuration::FREQUENCY_DAILY), Configuration::FREQUENCY_DAILY), array(TranslateUtility::getLll('configuration.frequency.' . Configuration::FREQUENCY_WEEKLY), Configuration::FREQUENCY_WEEKLY), array(TranslateUtility::getLll('configuration.frequency.' . Configuration::FREQUENCY_MONTHLY), Configuration::FREQUENCY_MONTHLY), array(TranslateUtility::getLll('configuration.frequency.' . Configuration::FREQUENCY_YEARLY), Configuration::FREQUENCY_YEARLY)), 'default' => Configuration::FREQUENCY_NONE), 'displayCond' => 'FIELD:type:=:' . Configuration::TYPE_TIME), 'till_date' => array('config' => array('eval' => 'date', 'size' => 8), 'displayCond' => array('AND' => array('FIELD:frequency:!=:' . Configuration::FREQUENCY_NONE, 'FIELD:type:=:' . Configuration::TYPE_TIME))), 'counter_amount' => array('config' => array('eval' => 'int', 'size' => 5, 'default' => 0), 'displayCond' => array('AND' => array('FIELD:frequency:!=:' . Configuration::FREQUENCY_NONE, 'FIELD:type:=:' . Configuration::TYPE_TIME))), 'counter_interval' => array('config' => array('eval' => 'int,required', 'size' => 5, 'default' => '1'), 'displayCond' => array('AND' => array('FIELD:frequency:!=:' . Configuration::FREQUENCY_NONE, 'FIELD:type:=:' . Configuration::TYPE_TIME))), 'external_ics_url' => array('displayCond' => array('FIELD:type:=:' . Configuration::TYPE_EXTERNAL)), 'day' => array('config' => array('type' => 'select', 'renderType' => 'selectSingle', 'items' => array(array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_SPECIAL_WEEKDAY), Configuration::DAY_SPECIAL_WEEKDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_SPECIAL_BUSINESS), Configuration::DAY_SPECIAL_BUSINESS), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_SPECIAL_WORKDAY), Configuration::DAY_SPECIAL_WORKDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_SPECIAL_WEEKEND), Configuration::DAY_SPECIAL_WEEKEND), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_MONDAY), Configuration::DAY_MONDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_TUESDAY), Configuration::DAY_TUESDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_WEDNESDAY), Configuration::DAY_WEDNESDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_THURSDAY), Configuration::DAY_THURSDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_FRIDAY), Configuration::DAY_FRIDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_SATURDAY), Configuration::DAY_SATURDAY), array(TranslateUtility::getLll('configuration.day.' . Configuration::DAY_SUNDAY), Configuration::DAY_SUNDAY)), 'default' => Configuration::DAY_SPECIAL_WEEKDAY), 'displayCond' => array('OR' => array('FIELD:frequency:=:' . Configuration::FREQUENCY_MONTHLY, 'FIELD:frequency:=:' . Configuration::FREQUENCY_YEARLY))), 'recurrence' => array('config' => array('type' => 'select', 'renderType' => 'selectSingle', 'items' => array(array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_NONE), Configuration::RECURRENCE_NONE), array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_FIRST), Configuration::RECURRENCE_FIRST), array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_SECOND), Configuration::RECURRENCE_SECOND), array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_THIRD), Configuration::RECURRENCE_THIRD), array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_FOURTH), Configuration::RECURRENCE_FOURTH), array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_LAST), Configuration::RECURRENCE_LAST), array(TranslateUtility::getLll('configuration.recurrence.' . Configuration::RECURRENCE_NEXT_TO_LAST), Configuration::RECURRENCE_NEXT_TO_LAST)), 'default' => Configuration::RECURRENCE_NONE), 'displayCond' => array('OR' => array('FIELD:frequency:=:' . Configuration::FREQUENCY_MONTHLY, 'FIELD:frequency:=:' . Configuration::FREQUENCY_YEARLY)))), 'palettes' => array('date' => array('canNotCollapse' => 1, 'showitem' => 'start_date,end_date'), 'time' => array('canNotCollapse' => 1, 'showitem' => 'start_time,end_time,--linebreak--,all_day'), 'termination_condition' => array('canNotCollapse' => 1, 'showitem' => 'till_date,counter_amount'), 'frequency_configuration' => array('canNotCollapse' => 1, 'showitem' => 'counter_interval,recurrence,day')), 'types' => array(Configuration::TYPE_TIME => array('showitem' => $timeType), Configuration::TYPE_INCLUDE_GROUP => array('showitem' => 'type,groups' . $extendTab), Configuration::TYPE_EXCLUDE_GROUP => array('showitem' => 'type,groups' . $extendTab), Configuration::TYPE_EXTERNAL => array('showitem' => 'type,external_ics_url' . $extendTab)));
$tca = \HDNET\Autoloader\Utility\ArrayUtility::mergeRecursiveDistinct($base, $custom);
unset($tca['types']['1']);
return $tca;
コード例 #5
0
ファイル: ext_tables.php プロジェクト: saneinsane/calendarize
<?php

/**
 * General ext_tables file and also an example for your own extension
 *
 * @category Extension
 * @package  Calendarize
 * @author   Tim Lochmüller
 */
if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}
\HDNET\Autoloader\Loader::extTables('HDNET', 'calendarize', \HDNET\Calendarize\Register::getDefaultAutoloader());
if (!(bool) \HDNET\Calendarize\Utility\ConfigurationUtility::get('disableDefaultEvent')) {
    \HDNET\Calendarize\Register::extTables(\HDNET\Calendarize\Register::getDefaultCalendarizeConfiguration());
    \TYPO3\CMS\Core\Category\CategoryRegistry::getInstance()->add('calendarize', 'tx_calendarize_domain_model_event');
}
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin('calendarize', 'Calendar', \HDNET\Calendarize\Utility\TranslateUtility::get('pluginName'));
if (\TYPO3\CMS\Core\Utility\GeneralUtility::compat_version('7.0.0')) {
    $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['calendarize_calendar'] .= ',categories';
}
// module icon
$extensionIcon = \HDNET\Autoloader\Utility\IconUtility::getByExtensionKey('calendarize', true);
if (\TYPO3\CMS\Core\Utility\GeneralUtility::compat_version('7.0')) {
    /** @var \TYPO3\CMS\Core\Imaging\IconRegistry $iconRegistry */
    $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Imaging\\IconRegistry');
    $iconRegistry->registerIcon('apps-pagetree-folder-contains-calendarize', 'TYPO3\\CMS\\Core\\Imaging\\IconProvider\\BitmapIconProvider', ['source' => $extensionIcon]);
} else {
    $extensionRelPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('calendarize');
    \TYPO3\CMS\Backend\Sprite\SpriteManager::addTcaTypeIcon('pages', 'contains-calendar', str_replace('EXT:calendarize/', $extensionRelPath, $extensionIcon));
}
コード例 #6
0
ファイル: TcaService.php プロジェクト: mkalus/calendarize
 /**
  * Get the title for a configuration time
  *
  * @param $row
  *
  * @return string
  */
 protected function getConfigurationTitleTime($row)
 {
     $title = '';
     if ($row['start_date']) {
         $dateStart = strftime('%a %d.%m.%G', $row['start_date']);
         $dateEnd = strftime('%a %d.%m.%G', $row['end_date'] ?: $row['start_date']);
         $title .= $dateStart;
         if ($dateStart != $dateEnd) {
             $title .= ' - ' . $dateEnd;
         }
     }
     if ($row['all_day']) {
         $title .= ' ' . TranslateUtility::get('tx_calendarize_domain_model_index.all_day');
     } elseif ($row['start_time']) {
         $title .= '<br />' . BackendUtility::time($row['start_time'], false);
         $title .= ' - ' . BackendUtility::time($row['end_time'], false);
     }
     if ($row['frequency'] && $row['frequency'] !== Configuration::FREQUENCY_NONE) {
         $title .= '<br /><i>' . TranslateUtility::get('configuration.frequency.' . $row['frequency']) . '</i>';
     }
     return $title;
 }
コード例 #7
0
 /**
  * Detail action
  *
  * @param \HDNET\Calendarize\Domain\Model\Index $index
  *
  * @return string
  */
 public function detailAction(Index $index = null)
 {
     if ($index === null) {
         if (!MathUtility::canBeInterpretedAsInteger($this->settings['listPid'])) {
             return TranslateUtility::get('noEventDetailView');
         }
         $this->redirect('list', null, null, [], null, $this->settings['listPid'], 301);
     }
     $this->slotExtendedAssignMultiple(['index' => $index, 'domain' => GeneralUtility::getIndpEnv('TYPO3_HOST_ONLY')], __CLASS__, __FUNCTION__);
     return $this->view->render();
 }
コード例 #8
0
ファイル: TcaService.php プロジェクト: saneinsane/calendarize
 /**
  * Get the title for a configuration time
  *
  * @param $row
  *
  * @return string
  */
 protected function getConfigurationTitleTime($row)
 {
     $title = '';
     if ($row['start_date']) {
         $dateStart = date('d.m.Y', $row['start_date']);
         $dateEnd = date('d.m.Y', $row['end_date'] ?: $row['start_date']);
         $title .= $dateStart;
         if ($dateStart != $dateEnd) {
             $title .= ' - ' . $dateEnd;
         }
     }
     if ($row['all_day']) {
         $title .= ' ' . TranslateUtility::get('tx_calendarize_domain_model_index.all_day');
     } elseif ($row['start_time']) {
         $title .= '<br />' . BackendUtility::time($row['start_time'], false);
         $title .= ' - ' . BackendUtility::time($row['end_time'], false);
     }
     $frequency = is_array($row['frequency']) ? $row['frequency'][0] : $row['frequency'];
     // The new FormEngine prepare the select as array
     if ($frequency && $frequency !== Configuration::FREQUENCY_NONE) {
         $title .= '<br /><i>' . TranslateUtility::get('configuration.frequency.' . $row['frequency']) . '</i>';
     }
     return $title;
 }