Restructured to extbase structure
authormario_matzulla <mario_matzulla@735d13b6-9817-0410-8766-e36946ffe9aa>
Sun, 5 Jul 2015 20:16:41 +0000 (20:16 +0000)
committermario_matzulla <mario_matzulla@735d13b6-9817-0410-8766-e36946ffe9aa>
Sun, 5 Jul 2015 20:16:41 +0000 (20:16 +0000)
Sphinx documentation

git-svn-id: https://svn.typo3.org/TYPO3v4/Extensions/cal_ts_service/trunk@89347 735d13b6-9817-0410-8766-e36946ffe9aa

85 files changed:
.buildpath [new file with mode: 0644]
.project [new file with mode: 0644]
.settings/org.eclipse.php.core.prefs [new file with mode: 0644]
.settings/org.eclipse.wst.common.project.facet.core.xml [new file with mode: 0644]
ChangeLog [deleted file]
Classes/Model/TypoScriptEventModel.php [new file with mode: 0644]
Classes/Service/CategoryService.php [new file with mode: 0755]
Classes/Service/TypoScriptService.php [new file with mode: 0755]
Configuration/TCA/Overrides/tt_content.php [new file with mode: 0644]
Configuration/TypoScript/birthday/constants.txt [new file with mode: 0644]
Configuration/TypoScript/birthday/setup.txt [new file with mode: 0644]
Configuration/TypoScript/mbl_newsevent/constants.txt [new file with mode: 0644]
Configuration/TypoScript/mbl_newsevent/setup.txt [new file with mode: 0644]
Configuration/TypoScript/tt_news/constants.txt [new file with mode: 0644]
Configuration/TypoScript/tt_news/setup.txt [new file with mode: 0644]
Configuration/TypoScript/tt_products/constants.txt [new file with mode: 0644]
Configuration/TypoScript/tt_products/setup.txt [new file with mode: 0644]
Configuration/TypoScript/tx_seminars/constants.txt [new file with mode: 0644]
Configuration/TypoScript/tx_seminars/setup.txt [new file with mode: 0644]
Configuration/TypoScript/wec_sermons/constants.txt [new file with mode: 0644]
Configuration/TypoScript/wec_sermons/setup.txt [new file with mode: 0644]
Documentation/Changelog/0-1-0.rst [new file with mode: 0644]
Documentation/Changelog/1-0-0.rst [new file with mode: 0644]
Documentation/Changelog/1-1-0.rst [new file with mode: 0644]
Documentation/Changelog/1-1-1.rst [new file with mode: 0644]
Documentation/Changelog/1-2-0.rst [new file with mode: 0644]
Documentation/Changelog/2-0-0.rst [new file with mode: 0644]
Documentation/Changelog/Index.rst [new file with mode: 0644]
Documentation/HowItWorks/Index.rst [new file with mode: 0644]
Documentation/Images/info.png [new file with mode: 0644]
Documentation/Images/link.jpg [new file with mode: 0644]
Documentation/Images/note.png [new file with mode: 0644]
Documentation/Images/rtfm.png [new file with mode: 0644]
Documentation/Images/storage_page.png [new file with mode: 0644]
Documentation/Images/warn.png [new file with mode: 0644]
Documentation/Includes.txt [new file with mode: 0644]
Documentation/Index.rst [new file with mode: 0644]
Documentation/Installation/Index.rst [new file with mode: 0644]
Documentation/Installation/Step1InstallTheExtension/Images.txt [new file with mode: 0644]
Documentation/Installation/Step1InstallTheExtension/Index.rst [new file with mode: 0644]
Documentation/Installation/Step2AddTheStaticTemplates/Index.rst [new file with mode: 0644]
Documentation/Installation/Step3ConfigureThePlugin/Images.txt [new file with mode: 0644]
Documentation/Installation/Step3ConfigureThePlugin/Index.rst [new file with mode: 0644]
Documentation/Introduction/AWelcome/Index.rst [new file with mode: 0644]
Documentation/Introduction/BAboutThisManual/Index.rst [new file with mode: 0644]
Documentation/Introduction/CHowToUseThisManual/Images.txt [new file with mode: 0644]
Documentation/Introduction/CHowToUseThisManual/Index.rst [new file with mode: 0644]
Documentation/Introduction/Index.rst [new file with mode: 0644]
Documentation/Overview/HowToGetHelp/HowToGetInvolved/Index.rst [new file with mode: 0644]
Documentation/Overview/HowToGetHelp/Index.rst [new file with mode: 0644]
Documentation/Overview/Index.rst [new file with mode: 0644]
Documentation/Overview/WhatDoesItDo/Index.rst [new file with mode: 0644]
Documentation/Settings.yml [new file with mode: 0644]
Documentation/TypoScriptReference/Birthday/Index.rst [new file with mode: 0644]
Documentation/TypoScriptReference/Index.rst [new file with mode: 0644]
Documentation/TypoScriptReference/MblNewsevent/Index.rst [new file with mode: 0644]
Documentation/TypoScriptReference/TtNews/Index.rst [new file with mode: 0644]
Documentation/TypoScriptReference/TtProducts/Index.rst [new file with mode: 0644]
Documentation/TypoScriptReference/TxSeminars/Index.rst [new file with mode: 0644]
Documentation/TypoScriptReference/WecSermons/Index.rst [new file with mode: 0644]
Resources/Private/Language/locallang.xml [new file with mode: 0755]
Resources/Private/Templates/ts.tmpl [new file with mode: 0755]
Resources/Public/Images/cake.png [new file with mode: 0644]
credits.txt [new file with mode: 0755]
doc/manual.sxw [deleted file]
ext_emconf.php
ext_localconf.php
ext_tables.php
locallang.xml [deleted file]
model/class.tx_cal_ts_model.php [deleted file]
service/class.tx_cal_ts_category_service.php [deleted file]
service/class.tx_cal_ts_service.php [deleted file]
static/birthday/constants.txt [deleted file]
static/birthday/setup.txt [deleted file]
static/mbl_newsevent/constants.txt [deleted file]
static/mbl_newsevent/setup.txt [deleted file]
static/tt_news/constants.txt [deleted file]
static/tt_news/setup.txt [deleted file]
static/tt_products/constants.txt [deleted file]
static/tt_products/setup.txt [deleted file]
static/tx_seminars/constants.txt [deleted file]
static/tx_seminars/setup.txt [deleted file]
static/wec_sermons/constants.txt [deleted file]
static/wec_sermons/setup.txt [deleted file]
template/ts.tmpl [deleted file]

diff --git a/.buildpath b/.buildpath
new file mode 100644 (file)
index 0000000..8bcb4b5
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<buildpath>
+       <buildpathentry kind="src" path=""/>
+       <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
+</buildpath>
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..0d175e1
--- /dev/null
+++ b/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>cal_ts_service</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.wst.validation.validationbuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.dltk.core.scriptbuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.wst.common.project.facet.core.builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+               <nature>org.eclipse.php.core.PHPNature</nature>
+       </natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.php.core.prefs b/.settings/org.eclipse.php.core.prefs
new file mode 100644 (file)
index 0000000..4127e81
--- /dev/null
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+include_path=0;/cal_ts_service
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644 (file)
index 0000000..ad32966
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <fixed facet="php.core.component"/>
+  <fixed facet="php.component"/>
+  <installed facet="php.core.component" version="1"/>
+  <installed facet="php.component" version="5.4"/>
+</faceted-project>
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index 34c3077..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1 +0,0 @@
-Please refer to the "ChangeLog" section in the manual to get an overview about what changed in which release.
\ No newline at end of file
diff --git a/Classes/Model/TypoScriptEventModel.php b/Classes/Model/TypoScriptEventModel.php
new file mode 100644 (file)
index 0000000..1570750
--- /dev/null
@@ -0,0 +1,241 @@
+<?php
+namespace TYPO3\CMS\CalTsService\Model;
+/**
+ * *************************************************************
+ * Copyright notice
+ *
+ * (c) 2005-2015 Mario Matzulla
+ * All rights reserved
+ *
+ * You can redistribute this file and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation;
+ * either version 2 of the License, or (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This file is distributed in the hope that it will be useful for ministry,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the file!
+ * *************************************************************
+ */
+
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+
+/**
+ * A concrete model for the calendar.
+ *
+ * @author Mario Matzulla <mario(at)matzullas.de>
+ */
+class TypoScriptEventModel extends \TYPO3\CMS\Cal\Model\EventModel {
+       
+       var $thisConf;
+       
+       public function __construct($row, $isException, $serviceKey, $conf = Array()) {
+               parent::__construct ( $row, false, $serviceKey );
+               $this->thisConf = $conf;
+               $this->conf ['view.'] [$this->conf ['view'] . '.'] ['event.'] = array_merge ( $this->conf ['view.'] [$this->conf ['view'] . '.'] ['event.'], ( array ) $conf [$this->conf ['view'] . '.'] ['event.'] );
+               $this->isException = $isException;
+               $this->setType ( 'tx_cal_ts_service' );
+               $this->createEvent ( $row, $isException );
+       }
+       
+       public function createEvent($row) {
+               $this->setType ( $this->serviceKey );
+               $this->row = $row;
+               $this->setUid ( $row ['uid'] );
+               $this->setAllday ( $row ['allday'] );
+               $this->setExtUrl ( $row ['ext_url'] );
+               
+               $start = new \TYPO3\CMS\Cal\Model\CalDate ( gmdate ( 'Ymd', $row [$this->thisConf ['startTimeField']] ) );
+               $start->setTZbyId ( 'UTC' );
+               $start->setMinute ( gmdate ( 'i', $row [$this->thisConf ['startTimeField']] ) );
+               $start->setHour ( gmdate ( 'H', $row [$this->thisConf ['startTimeField']] ) );
+               
+               if (! $row [$this->thisConf ['endTimeField']] && $this->thisConf ['defaultLength'] && ! $this->isAllday ()) {
+                       $end = new \TYPO3\CMS\Cal\Model\CalDate ();
+                       $end->copy ( $start );
+                       $end->addSeconds ( $this->thisConf ['defaultLength'] * 60 );
+               } else {
+                       $end = new \TYPO3\CMS\Cal\Model\CalDate ( gmdate ( 'Ymd', $row [$this->thisConf ['endTimeField']] ) );
+                       $end->setTZbyId ( 'UTC' );
+                       $end->setMinute ( gmdate ( 'i', $row [$this->thisConf ['endTimeField']] ) );
+                       $end->setHour ( gmdate ( 'H', $row [$this->thisConf ['endTimeField']] ) );
+               }
+               
+               $this->setStart ( $start );
+               $this->setEnd ( $end );
+               
+               $this->setFreq ( $row ['freq'] );
+               $this->setByDay ( $row ['byday'] );
+               $this->setByMonthDay ( $row ['bymonthday'] );
+               $this->setByMonth ( $row ['bymonth'] );
+               if (isset ( $row ['until'] )) {
+                       $until = new \TYPO3\CMS\Cal\Model\CalDate ( $row ['until'] );
+                       $until->setTZbyId ( 'UTC' );
+                       $this->setUntil ( $until );
+               }
+               foreach ( ( array ) $this->thisConf ['fieldMapping.'] as $field => $value ) {
+                       switch ($field) {
+                               case 'image' :
+                                       $this->setImage ( GeneralUtility::trimExplode ( ',', $row [$this->thisConf ['fieldMapping.'] ['image']] ) );
+                                       break;
+                               default :
+                                       $funcName = 'set' . ucwords ( strtolower ( $field ) );
+                                       if (method_exists ( $this, $funcName )) {
+                                               $this->$funcName ( $row [$this->thisConf ['fieldMapping.'] [$field]] );
+                                       }
+                       }
+               }
+               
+               $this->externalPlugin = $this->thisConf ['externalPlugin'];
+       }
+       
+       public function getCategoryHeaderStyle(&$template, &$rems, &$sims, $view) {
+               $sims ['###HEADERSTYLE###'] = $this->thisConf ['headerStyle'];
+       }
+       
+       public function getCategoryBodyStyle(&$template, &$rems, &$sims, $view) {
+               $sims ['###BODYSTYLE###'] = $this->thisConf ['bodyStyle'];
+       }
+       
+       /**
+        * Returns the headerstyle name
+        */
+       function getHeaderStyle() {
+               return $this->thisConf ['headerStyle'];
+       }
+       
+       /**
+        * Returns the bodystyle name
+        */
+       public function getBodyStyle() {
+               return $this->thisConf ['bodyStyle'];
+       }
+       
+       public function renderEventForDay() {
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT_DAY###' );
+       }
+       
+       public function renderEventForWeek() {
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT_WEEK###' );
+       }
+       
+       public function renderEventForAllDay() {
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT_ALLDAY###' );
+       }
+       
+       public function renderEventForMonth() {
+               if ($this->isAllday ()) {
+                       return $this->renderEventFor ( 'MONTH_ALLDAY' );
+               }
+               return $this->renderEventFor ( 'MONTH' );
+       }
+       
+       public function renderEventForYear() {
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT_YEAR###' );
+       }
+       
+       public function renderEvent() {
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT###' );
+       }
+       
+       public function renderTomorrowsEvent() {
+               $this->isTomorrow = true;
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT_TOMORROW###' );
+       }
+       
+       public function renderEventFor($viewType) {
+               return $this->fillTemplate ( '###TEMPLATE_TS_EVENT_' . strtoupper ( $viewType ) . '###' );
+       }
+       
+       public function fillTemplate($subpartMarker) {
+               // $this->controller->piVars['ts_table'] = $this->thisConf['table'];
+               $cObj = &$this->controller->cObj;
+               $page = $cObj->fileResource ( $this->thisConf ['template'] );
+               if ($page == '') {
+                       return '<h3>calendar: no template file found:</h3>' . $this->thisConf ['template'];
+               }
+               $page = $cObj->getSubpart ( $page, $subpartMarker );
+               $rems = Array ();
+               $sims = Array ();
+               $wrapped = Array ();
+               $this->getMarker ( $page, $sims, $rems, $wrapped );
+               // unset($this->controller->piVars['ts_table']);
+               $return = $this->finish ( $cObj->substituteMarkerArrayCached ( $page, $sims, $rems, $wrapped ) );
+               return $return;
+       }
+       
+       public function getSubheader() {
+               return $this->subheader;
+       }
+       
+       public function setSubheader($s) {
+               $this->subheader = $s;
+       }
+       
+       public function getUntil() {
+               if (! isset ( $this->until ) || $this->until == 0) {
+                       return new \TYPO3\CMS\Cal\Model\CalDate ( '00000101' );
+               }
+               return $this->until;
+       }
+       
+       public function getCategory() {
+               return $this->category;
+       }
+       
+       public function setCategory($cat) {
+               $this->category = $cat;
+       }
+       
+       public function getImageMarker(& $template, & $sims, & $rems, & $wrapped, $view) {
+               $tempConfig = $this->conf ['view.'] [$view . '.'] [$this->objectType . '.'] ['image.'];
+               $tempType = $this->conf ['view.'] [$view . '.'] [$this->objectType . '.'] ['image'];
+               $this->conf ['view.'] [$view . '.'] [$this->objectType . '.'] ['image.'] = $this->thisConf [$this->conf ['view'] . '.'] [$this->objectType . '.'] ['image.'];
+               $this->conf ['view.'] [$view . '.'] [$this->objectType . '.'] ['image'] = $this->thisConf [$this->conf ['view'] . '.'] [$this->objectType . '.'] ['image'];
+               parent::getImageMarker ( $template, $sims, $rems, $wrapped, $view );
+               $this->conf ['view.'] [$view . '.'] [$this->objectType . '.'] ['image.'] = $tempConfig;
+               $this->conf ['view.'] [$view . '.'] [$this->objectType . '.'] ['image'] = $tempType;
+       }
+       
+       /**
+        * Returns the Link to the external plugin
+        */
+       public function getExternalPluginEventLink() {
+               $cObj = &$this->controller->cObj;
+               if ($this->ext_url) {
+                       return $this->controller->pi_linkTP ( '|', Array (), 0, $this->ext_url );
+               }
+               $params = $cObj->stdWrap ( $this->thisConf ['externalPlugin.'] ['additionalParams'], $this->thisConf ['externalPlugin.'] ['additionalParams.'] );
+               $rems = Array ();
+               $sims = Array ();
+               $wrapped = Array ();
+               $this->getMarker ( $params, $rems, $sims, $wrapped );
+               $params = $cObj->substituteMarkerArrayCached ( $params, $sims, $rems, $wrapped );
+               $paramArray = GeneralUtility::trimExplode ( '|', $params, 1 );
+               $urlParams = Array ();
+               foreach ( $paramArray as $parameter ) {
+                       $valArray = GeneralUtility::trimExplode ( '=', $parameter, 1 );
+                       $urlParams [$valArray [0]] = $valArray [1];
+               }
+               
+               return $this->controller->pi_linkTP ( '|', $urlParams, $this->conf ['cache'], $this->thisConf ['externalPlugin.'] ['singleViewPid'] );
+       }
+       
+       public function addAdditionalSingleViewUrlParams(&$currentParams) {
+               $currentParams ['ts_table'] = str_replace ( '.', '', $this->row ['ts_key'] );
+               $currentParams ['type'] = $this->getType();
+       }
+       
+       public function cloneEvent() {
+               $event = GeneralUtility::makeInstance ( get_class ( $this ), $this->getValuesAsArray (), $this->isException, $this->getType (), $this->thisConf );
+               $event->setIsClone ( true );
+               return $event;
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/Classes/Service/CategoryService.php b/Classes/Service/CategoryService.php
new file mode 100755 (executable)
index 0000000..d43cd5c
--- /dev/null
@@ -0,0 +1,117 @@
+<?php
+namespace TYPO3\CMS\CalTsService\Service;
+/**
+ * *************************************************************
+ * Copyright notice
+ *
+ * (c) 2005-2015 Mario Matzulla
+ * All rights reserved
+ *
+ * You can redistribute this file and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation;
+ * either version 2 of the License, or (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This file is distributed in the hope that it will be useful for ministry,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the file!
+ * *************************************************************
+ */
+
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+
+/**
+ * Base model for the category.  Provides basic model functionality that other
+ * models can use or override by extending the class.  
+ *
+ * @author Mario Matzulla <mario@matzullas.de>
+ * @package TYPO3
+ * @subpackage cal
+ */
+class CategoryService extends \TYPO3\CMS\Cal\Service\CategoryService {
+       
+       var $key = '';
+       
+       public function __construct(){
+               parent::__construct();
+       }
+       
+       public function getCategorySearchString($pidList, $includePublic){
+               return '';
+       }
+       
+       /**
+        * Search for categories
+        */
+       public function getCategoryArray($pidList, &$categoryArrayToBeFilled, $showPublicCategories=true){
+               
+               if($this->conf['display.']){
+                       foreach($this->conf['display.'] as $this->key => $conf){
+                               $this->thisConf = $conf;
+                               $this->categoryArrayByUid = Array ();
+                               $this->categoryArrayByEventUid = Array ();
+                               $this->categoryArrayByCalendarUid = Array ();
+                               $this->_getCategoryArray($pidList, $showPublicCategories);
+                               $categoryArrayToBeFilled[$this->key] = Array ($this->categoryArrayByUid,$this->categoryArrayByEventUid,$this->categoryArrayByCalendarUid);
+                       }
+               }
+       }
+               
+       /**
+        * Search for categories
+        */
+       private function _getCategoryArray($pidList, $showPublicCategories=true){
+               if($this->rightsObj->isLoggedIn() && $showPublicCategories){
+                       $feUserId = $this->rightsObj->getUserId();
+               }else if($this->rightsObj->isLoggedIn()){
+                       $feUserId = $this->rightsObj->getUserId();
+               }
+
+               $categoryIds = Array ();
+               $dbIds = Array ();
+               $fileIds = Array ();
+               $extUrlIds = Array ();
+               if($this->thisConf['cat_select.']){
+                       $this->thisConf['cat_select.']['pidInList'] = $pidList;\r
+                       if($this->thisConf['enableLocalizationAndVersioningCat']){\r
+                               $this->thisConf['cat_select.']['andWhere'] .= $this->getAdditionalWhereForLocalizationAndVersioning($this->thisConf['catTable']);\r
+                       }
+                       $queryArray = $this->cObj->getQuery($this->thisConf['catTable'],$this->thisConf['cat_select.'],true);
+                       $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
+                       while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
+                               if($this->thisConf['enableLocalizationAndVersioningCat']){\r
+                                       if ($GLOBALS['TSFE']->sys_language_content) {\r
+                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['catTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');\r
+                                       }\r
+                                       if ($this->versioningEnabled) {\r
+                                               // get workspaces Overlay\r
+                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['catTable'],$row);\r
+                                       }\r
+                               }\r
+                               if(!$this->categoryArrayByUid[$row['uid']]){
+                                       $category = $this->createCategory($row);
+                                       $category->setHeaderStyle($this->thisConf['headerStyle']);
+                                       $category->setBodyStyle($this->thisConf['bodyStyle']);
+                                       if($row['uid_local']){
+                                               $this->categoryArrayByEventUid[$row['uid_local']] = $category;
+                                       }
+                                       $this->categoryArrayByUid[$row['uid']] = $category;
+                                       $this->categoryArrayByCalendarUid['0'.'###'.$this->thisConf['legendDescription']][] = $category->getUid();
+                               }
+                       }\r
+               }
+       }
+       
+       public function createCategory($row){
+               return new \TYPO3\CMS\Cal\Model\CategoryModel ($row, $this->getServiceKey());
+       }
+       
+
+}
+
+?>
\ No newline at end of file
diff --git a/Classes/Service/TypoScriptService.php b/Classes/Service/TypoScriptService.php
new file mode 100755 (executable)
index 0000000..1e45691
--- /dev/null
@@ -0,0 +1,453 @@
+<?php
+namespace TYPO3\CMS\CalTsService\Service;
+
+/**
+ * *************************************************************
+ * Copyright notice
+ *
+ * (c) 2005-2015 Mario Matzulla
+ * All rights reserved
+ *
+ * You can redistribute this file and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation;
+ * either version 2 of the License, or (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This file is distributed in the hope that it will be useful for ministry,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the file!
+ * *************************************************************
+ */
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+
+/**
+ * This model fetches all tt_news between a start- and endtime or by uid.
+ *
+ * @author Mario Matzulla <mario@matzullas.de>
+ * @package TYPO3
+ * @subpackage cal
+ */
+class TypoScriptService extends \TYPO3\CMS\Cal\Service\EventService {
+       
+       var $thisConf;
+       var $key = '';
+       
+       /**
+        * Finds all events.
+        *
+        * @return array array of events represented by the model.
+        */
+       public function findAllWithin($start_date, $end_date, $pidList) {
+               $this->setStartAndEndPoint ( $start_date, $end_date );
+               $events = Array ();
+               if ($this->conf ['display.']) {
+                       foreach ( $this->conf ['display.'] as $this->key => $conf ) {
+                               $this->thisConf = $conf;
+                               $eventsFromService = $this->_findAllWithin ( $start_date->getDate ( DATE_FORMAT_UNIXTIME ), $end_date->getDate ( DATE_FORMAT_UNIXTIME ), $pidList );
+                               $this->mergeEvents ( $events, $eventsFromService );
+                       }
+               }
+               
+               return $events;
+       }
+       
+       private function _findAllWithin($start_date, $end_date, $pidList) {
+               $events = Array ();
+               
+               // with categories
+               $service = &$this->getCategoryService ();
+               $categories = Array ();
+               $service->getCategoryArray ( $pidList, $categories );
+               $processedUids = Array (0);
+               $where = $this->cObj->substituteMarkerArrayCached ( $this->thisConf ['findAllWithinWhere'], Array (
+                               '###START###' => $start_date,
+                               '###END###' => $end_date 
+               ), Array (), Array () );
+               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                       $where .= $this->getAdditionalWhereForLocalizationAndVersioning ( $this->thisConf ['pidTable'] );
+               }
+               if ($this->thisConf ['event_select_with_cat.']) {
+                       $this->thisConf ['event_select_with_cat.'] ['pidInList'] = $pidList;
+                       $this->thisConf ['event_select_with_cat.'] ['andWhere'] = $where;
+                       $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select_with_cat.'], true );
+                       
+                       $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+                       
+                       $event = null;
+                       while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                               if (! in_array ( $row ['uid'], $processedUids )) {
+                                       if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                               if ($GLOBALS ['TSFE']->sys_language_content) {
+                                                       $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                               }
+                                               if ($this->versioningEnabled) {
+                                                       // get workspaces Overlay
+                                                       $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                               }
+                                       }
+                                       $row ['ts_key'] = $this->key;
+                                       $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                                       if ($this->thisConf ['endTimeField']) {
+                                               $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                                       }
+                                       $event = $this->createEvent ( $row, false );
+                                       if ($this->extConf ['useNewRecurringModel']) {
+                                               $this->recurringEvent ( $event );
+                                               $events_tmp = $this->getRecurringEventsFromIndex ( $event );
+                                       } else {
+                                               $events_tmp = $this->recurringEvent ( $event );
+                                       }
+                                       if (! empty ( $events )) {
+                                               $this->mergeEvents ( $events, $events_tmp );
+                                       } else {
+                                               $events = $events_tmp;
+                                       }
+                                       $processedUids [] = $row ['uid'];
+                               }
+                               if ($categories [$this->key] [0] [$row ['uid_foreign']]) {
+                                       $event->addCategory ( $categories [$this->key] [0] [$row ['uid_foreign']] );
+                               }
+                       }
+               }
+               // without categories
+               $this->thisConf ['event_select.'] ['pidInList'] = $pidList;
+               $this->thisConf ['event_select.'] ['andWhere'] = $where . ' AND ' . $this->thisConf ['pidTable'] . '.uid NOT IN (' . implode ( ',', $processedUids ) . ')';
+               $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select.'], true );
+               
+               $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+               $processedUids = Array ();
+               
+               while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                       if (! in_array ( $row ['uid'], $processedUids )) {
+                               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                       if ($GLOBALS ['TSFE']->sys_language_content) {
+                                               $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                       }
+                                       if ($this->versioningEnabled) {
+                                               // get workspaces Overlay
+                                               $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                       }
+                               }
+                               $row ['ts_key'] = $this->key;
+                               $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                               if ($this->thisConf ['endTimeField']) {
+                                       $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                               }
+                               $event = $this->createEvent ( $row, false );
+                               
+                               if ($this->extConf ['useNewRecurringModel']) {
+                                       $this->recurringEvent ( $event );
+                                       $events_tmp = $this->getRecurringEventsFromIndex ( $event );
+                               } else {
+                                       $events_tmp = $this->recurringEvent ( $event );
+                               }
+                               if (! empty ( $events )) {
+                                       $this->mergeEvents ( $events, $events_tmp );
+                               } else {
+                                       $events = $events_tmp;
+                               }
+                               $processedUids [] = $row ['uid'];
+                       }
+               }
+               return $events;
+       }
+       
+       /**
+        * Finds all events.
+        *
+        * @return array array of events represented by the model.
+        */
+       public function findAll($pidList) {
+               $events = Array ();
+               if ($this->conf ['display.']) {
+                       foreach ( $this->conf ['display.'] as $this->key => $conf ) {
+                               $this->thisConf = $conf;
+                               $eventsFromService = $this->_findAll ( $pidList );
+                               $this->mergeEvents ( $events, $eventsFromService );
+                       }
+               }
+               return $events;
+       }
+       
+       private function _findAll($pidList) {
+               $events = Array ();
+               
+               // Find records with categories
+               $service = &$this->getCategoryService ();
+               $categories = Array ();
+               $service->getCategoryArray ( $pidList, $categories );
+               
+               $where = $this->cObj->substituteMarkerArrayCached ( $this->thisConf ['findAll'], Array (
+                               '###START###' => $start_date,
+                               '###END###' => $end_date 
+               ), Array (), Array () );
+               
+               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                       $where .= $this->getAdditionalWhereForLocalizationAndVersioning ( $this->thisConf ['pidTable'] );
+               }
+               
+               $this->thisConf ['event_select_with_cat.'] ['pidInList'] = $pidList;
+               $this->thisConf ['event_select_with_cat.'] ['andWhere'] = $where;
+               $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select_with_cat.'], true );
+               $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+               $processedUids = Array (0);
+               
+               while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                       if (! in_array ( $row ['uid'], $processedUids )) {
+                               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                       if ($GLOBALS ['TSFE']->sys_language_content) {
+                                               $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                       }
+                                       if ($this->versioningEnabled) {
+                                               // get workspaces Overlay
+                                               $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                       }
+                               }
+                               $row ['ts_key'] = $this->key;
+                               $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                               if ($this->thisConf ['endTimeField']) {
+                                       $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                               }
+                               $event = $this->createEvent ( $row, false );
+                               $events [gmdate ( 'Ymd', $row [$this->thisConf ['startTimeField']] )] [(gmdate ( 'Hi', $row [$this->thisConf ['startTimeField']] + $this->thisConf ['defaultLength'] ))] [$row ['uid']] = $event;
+                               $processedUids [] = $row ['uid'];
+                       }
+                       if ($categories [$this->key] [0] [$row ['uid_foreign']]) {
+                               $event->addCategory ( $categories [$this->key] [0] [$row ['uid_foreign']] );
+                       }
+               }
+               
+               // Find records without categories
+               $this->thisConf ['event_select.'] ['pidInList'] = $pidList;
+               $this->thisConf ['event_select.'] ['andWhere'] = ($where != '' ? $where . ' AND ' : '') . $this->thisConf ['pidTable'] . '.uid NOT IN (' . implode ( ',', $processedUids ) . ')';
+               $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select.'], true );
+               
+               $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+               $processedUids = Array ();
+               while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                       if (! in_array ( $row ['uid'], $processedUids )) {
+                               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                       if ($GLOBALS ['TSFE']->sys_language_content) {
+                                               $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                       }
+                                       if ($this->versioningEnabled) {
+                                               // get workspaces Overlay
+                                               $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                       }
+                               }
+                               $row ['ts_key'] = $this->key;
+                               $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                               if ($this->thisConf ['endTimeField']) {
+                                       $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                               }
+                               $events [gmdate ( 'Ymd', $row [$this->thisConf ['startTimeField']] )] [(gmdate ( 'Hi', $row [$this->thisConf ['startTimeField']] + $this->thisConf ['defaultLength'] ))] [$row ['uid']] = $this->createEvent ( $row, false );
+                               $processedUids [] = $row ['uid'];
+                       }
+               }
+               
+               return $events;
+       }
+       
+       /**
+        * Finds a single event.
+        *
+        * @return object event represented by the model.
+        */
+       public function find($uid, $pidList) {
+               $this->key = $this->controller->piVars ['ts_table'] . '.';
+               $service = &$this->getCategoryService ();
+               $categories = Array ();
+               $service->getCategoryArray ( $pidList, $categories );
+               if ($this->conf ['display.'] [$this->controller->piVars ['ts_table'] . '.']) {
+                       $this->thisConf = $this->conf ['display.'] [$this->controller->piVars ['ts_table'] . '.'];
+                       $where = $this->cObj->substituteMarkerArrayCached ( $this->thisConf ['findWhere'], Array (
+                                       '###START###' => $start_date,
+                                       '###END###' => $end_date,
+                                       '###UID###' => $this->controller->piVars ['uid'] 
+                       ), Array (), Array () );
+                       if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                               $where .= $this->getAdditionalWhereForLocalizationAndVersioning ( $this->thisConf ['pidTable'] );
+                       }
+                       // find with
+                       $this->thisConf ['event_select_with_cat.'] ['pidInList'] = $pidList;
+                       $this->thisConf ['event_select_with_cat.'] ['andWhere'] = $where;
+                       $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select_with_cat.'], true );
+                       
+                       $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+                       $event = null;
+                       $processedUids = Array (0);
+                       while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                               if (! in_array ( $row ['uid'], $processedUids )) {
+                                       if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                               if ($GLOBALS ['TSFE']->sys_language_content) {
+                                                       $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                               }
+                                               if ($this->versioningEnabled) {
+                                                       // get workspaces Overlay
+                                                       $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                               }
+                                       }
+                                       $row ['ts_key'] = $this->key;
+                                       $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                                       if ($this->thisConf ['endTimeField']) {
+                                               $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                                       }
+                                       $event = $this->createEvent ( $row, false );
+                                       $processedUids [] = $row ['uid'];
+                               }
+                               if ($categories [$this->key] [0] [$row ['uid_foreign']]) {
+                                       $event->addCategory ( $categories [$this->key] [0] [$row ['uid_foreign']] );
+                               }
+                       }
+                       if ($event) {
+                               return $event;
+                       }
+                       
+                       // find without
+                       $this->thisConf ['event_select.'] ['pidInList'] = $pidList;
+                       $this->thisConf ['event_select.'] ['andWhere'] = $where . ' AND ' . $this->thisConf ['pidTable'] . '.uid NOT IN (' . implode ( ',', $processedUids ) . ')';
+                       $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select.'], true );
+                       $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+                       $events = Array ();
+                       $processedUids = Array ();
+                       while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                       if ($GLOBALS ['TSFE']->sys_language_content) {
+                                               $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                       }
+                                       if ($this->versioningEnabled) {
+                                               // get workspaces Overlay
+                                               $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                       }
+                               }
+                               $row ['ts_key'] = $this->key;
+                               $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                               if ($this->thisConf ['endTimeField']) {
+                                       $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                               }
+                               $event = $this->createEvent ( $row, false );
+                       }
+                       return $event;
+               }
+               return null;
+       }
+       
+       public function createEvent($row, $isException) {
+               return new \TYPO3\CMS\CalTsService\Model\TypoScriptEventModel($row, $isException, $this->getServiceKey (), $this->thisConf );
+       }
+       
+       public function search($pidList = '', $starttime, $endtime, $searchword, $locationIds) {
+               $events = Array ();
+               if ($this->conf ['display.']) {
+                       foreach ( $this->conf ['display.'] as $this->key => $conf ) {
+                               $this->thisConf = $conf;
+                               $eventsFromService = $this->_search ( $pidList, $starttime, $endtime, $searchword, $locationIds );
+                               $this->mergeEvents ( $events, $eventsFromService );
+                       }
+               }
+               return $events;
+       }
+       
+       private function _search($pidList = '', $starttime, $endtime, $searchword, $locationIds) {
+               $events = Array ();
+               $where = '';
+               if ($searchword != '') {
+                       $where = $this->searchWhere ( $searchword );
+               }
+               
+               $events = Array ();
+               // Find records with categories
+               $service = &$this->getCategoryService ();
+               $categories = Array ();
+               $service->getCategoryArray ( $pidList, $categories );
+               
+               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                       $where .= $this->getAdditionalWhereForLocalizationAndVersioning ( $this->thisConf ['pidTable'] );
+               }
+               $this->thisConf ['event_select_with_cat.'] ['pidInList'] = $pidList;
+               $this->thisConf ['event_select_with_cat.'] ['where'] = '1=1' . $where;
+               $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select_with_cat.'], true );
+               $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+               $processedUids = Array (0);
+               
+               while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                       if (! in_array ( $row ['uid'], $processedUids )) {
+                               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                       if ($GLOBALS ['TSFE']->sys_language_content) {
+                                               $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                       }
+                                       if ($this->versioningEnabled) {
+                                               // get workspaces Overlay
+                                               $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                       }
+                               }
+                               $row ['ts_key'] = $this->key;
+                               $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                               if ($this->thisConf ['endTimeField']) {
+                                       $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                               }
+                               $event = $this->createEvent ( $row, false );
+                               $events [gmdate ( 'Ymd', $row [$this->thisConf ['startTimeField']] )] [(gmdate ( 'Hi', $row [$this->thisConf ['startTimeField']] + $this->thisConf ['defaultLength'] ))] [$row ['uid']] = $event;
+                               $processedUids [] = $row ['uid'];
+                       }
+                       if ($categories [$this->key] [0] [$row ['uid_foreign']]) {
+                               $event->addCategory ( $categories [$this->key] [0] [$row ['uid_foreign']] );
+                       }
+               }
+               
+               // Find records without categories
+               $this->thisConf ['event_select.'] ['pidInList'] = $pidList;
+               $this->thisConf ['event_select.'] ['where'] = '1=1 ' . $where . ' AND ' . $this->thisConf ['pidTable'] . '.uid NOT IN (' . implode ( ',', $processedUids ) . ')';
+               $queryArray = $this->cObj->getQuery ( $this->thisConf ['pidTable'], $this->thisConf ['event_select.'], true );
+               
+               $result = $GLOBALS ['TYPO3_DB']->exec_SELECT_queryArray ( $queryArray );
+               $processedUids = Array ();
+               while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc ( $result ) ) {
+                       if (! in_array ( $row ['uid'], $processedUids )) {
+                               if ($this->thisConf ['enableLocalizationAndVersioning']) {
+                                       if ($GLOBALS ['TSFE']->sys_language_content) {
+                                               $row = $GLOBALS ['TSFE']->sys_page->getRecordOverlay ( $this->thisConf ['pidTable'], $row, $GLOBALS ['TSFE']->sys_language_content, $GLOBALS ['TSFE']->sys_language_contentOL, '' );
+                                       }
+                                       if ($this->versioningEnabled) {
+                                               // get workspaces Overlay
+                                               $GLOBALS ['TSFE']->sys_page->versionOL ( $this->thisConf ['pidTable'], $row );
+                                       }
+                               }
+                               $row ['ts_key'] = $this->key;
+                               $row [$this->thisConf ['startTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['startTimeField']] );
+                               if ($this->thisConf ['endTimeField']) {
+                                       $row [$this->thisConf ['endTimeField']] += \TYPO3\CMS\Cal\Utility\Functions::strtotimeOffset ( $row [$this->thisConf ['endTimeField']] );
+                               }
+                               $events [gmdate ( 'Ymd', $row [$this->thisConf ['startTimeField']] )] [(gmdate ( 'Hi', $row [$this->thisConf ['startTimeField']] + $this->thisConf ['defaultLength'] ))] [$row ['uid']] = $this->createEvent ( $row, false );
+                               $processedUids [] = $row ['uid'];
+                       }
+               }
+               
+               return $events;
+       }
+       
+       /**
+        * Generates a search where clause.
+        *
+        * @param string $sw:           
+        * @return string
+        */
+       public function searchWhere($sw) {
+               return $this->cObj->searchWhere ( $sw, $this->thisConf ['search.'] ['searchEventFieldList'], $this->thisConf ['table'] );
+       }
+       
+       public function getCategoryService() {
+               if (is_object ( $this->categoryService )) {
+                       return $this->categoryService;
+               }
+               $this->categoryService = & GeneralUtility::makeInstance ( 'TYPO3\\CMS\\CalTsService\\Service\\CategoryService' );
+               return $this->categoryService;
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php
new file mode 100644 (file)
index 0000000..648bc51
--- /dev/null
@@ -0,0 +1,32 @@
+<?php 
+if (!defined('TYPO3_MODE')) {
+       die ('Access denied.');
+}
+
+$_EXTKEY = 'cal_ts_service';
+
+if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded ( 'tt_news' )) {
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile ( $_EXTKEY, 'Configuration/TypoScript/tt_news/', 'tt_news connector' );
+}
+
+if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded ( 'seminars' )) {
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile ( $_EXTKEY, 'Configuration/TypoScript/tx_seminars/', 'tx_seminars connector' );
+}
+
+if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded ( 'tt_products' )) {
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile ( $_EXTKEY, 'Configuration/TypoScript/tt_products/', 'tt_products connector' );
+}
+
+if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded ( 'wec_sermons' )) {
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile ( $_EXTKEY, 'Configuration/TypoScript/wec_sermons/', 'wec_sermons connector' );
+}
+
+if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded ( 'mbl_newsevent' )) {
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile ( $_EXTKEY, 'Configuration/TypoScript/mbl_newsevent/', 'mbl_newsevent connector' );
+}
+
+if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded ( 'sr_feuser_register' )) {
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile ( $_EXTKEY, 'Configuration/TypoScript/birthday/', 'Birthday connector' );
+}
+
+?>
\ No newline at end of file
diff --git a/Configuration/TypoScript/birthday/constants.txt b/Configuration/TypoScript/birthday/constants.txt
new file mode 100644 (file)
index 0000000..e020bb3
--- /dev/null
@@ -0,0 +1,10 @@
+plugin.tx_cal_controller.display.birthday {
+       # cat=Birthday Service for Calendar Base/general/birthday-1; type=boolean; label=Use external plugin for birthdays?: Show birthdays using a plugin other than Calendar Base.
+       externalPlugin = 0
+
+       # cat=Birthday Service for Calendar Base/general/birthday-2; type=integer; label=Page ID for birthdays: Individual birthdays are shown on this page. Only applicable if external plugins are enabled.   
+       externalPlugin.singleViewPid = 
+       
+       # cat=Birthday Service for Calendar Base/general/birthday-3; type=string; label=URL parameters for birthdays: These parameters are used in addition to the Page ID when linking to an individual birthday.
+       externalPlugin.additionalParams = 
+}
\ No newline at end of file
diff --git a/Configuration/TypoScript/birthday/setup.txt b/Configuration/TypoScript/birthday/setup.txt
new file mode 100644 (file)
index 0000000..71372d1
--- /dev/null
@@ -0,0 +1,101 @@
+plugin.tx_cal_controller {
+       display {
+               birthday {
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = fe_users.*, 'year' as freq, 20301231 as until, 1 as allday
+                       }
+                       
+                       # @description  Configure the table the records come from.
+                       pidTable = fe_users
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = (fe_users.date_of_birth < ###START### OR fe_users.date_of_birth < ###END###) and fe_users.date_of_birth > 0
+                       
+                       # @description  Define the where clause for the ? view.
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAll =
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = fe_users.uid = ###UID###
+                       
+                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
+                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+                       externalPlugin = {$plugin.tx_cal_controller.display.birthday.externalPlugin}
+                       
+                       externalPlugin {
+                               
+                               # @description  Define the pid for the external plugin single view
+                               singleViewPid = {$plugin.tx_cal_controller.display.birthday.externalPlugin.singleViewPid}
+                               
+                               # @description  Array containing the url parameter to be added to the url
+                               additionalParams = {$plugin.tx_cal_controller.display.birthday.externalPlugin.additionalParams}
+                       }
+                       
+                       # @description  Enables the localization and/or versioning of the result record
+                       enableLocalizationAndVersioning = 0
+
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = date_of_birth
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField = date_of_birth
+                       
+                       # @description  If there is no end time, you can define a default length (in minutes)
+                       defaultLength = 0
+                       
+                       # @description  For a quick and easy integration, map your record fields to the standard event fields
+                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
+                       fieldMapping {
+                               title = name
+                               description = address
+                               location =
+                               organizer =
+                               image = image
+                       }
+                       
+                       # @description  The template to be used with these records
+                       template = EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+                       
+                       # @description  The header style class to be used
+                       headerStyle = pink_catheader
+                       
+                       # @description  The body style class to be used
+                       bodyStyle = pink_catbody
+                       
+                       # @description  The title in the legend description for these records
+                       legendDescription = Birthday
+                       
+                       search {
+                               # @description  The fields, which are allowed to be searched through
+                               searchEventFieldList = fe_users.name
+                       }
+                                               
+                       # @description  Retrieving and adopting the event configuration for the event view.
+                       event {
+                               event < plugin.tx_cal_controller.view.event.event
+                               event {
+                                       title.dataWrap = |'s birthday
+                                       startdate.dataWrap >
+                                       image >
+                                       image = IMAGE
+                                       image {
+                                               file.import.field = image
+                                               file.import.stdWrap.wrap = uploads/tx_srfeuserregister/| 
+                                       }
+                                       alldayTitle.dataWrap = <img src="typo3conf/ext/cal_ts_service/Resources/Public/Images/cake.png" />&nbsp; |
+                               }
+                       }
+                       
+                       month.event < plugin.tx_cal_controller.display.birthday.event.event
+                       week.event < plugin.tx_cal_controller.display.birthday.event.event
+                       day.event < plugin.tx_cal_controller.display.birthday.event.event
+                       list.event < plugin.tx_cal_controller.display.birthday.event.event
+               }
+       }
+}
+
+calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/Configuration/TypoScript/mbl_newsevent/constants.txt b/Configuration/TypoScript/mbl_newsevent/constants.txt
new file mode 100644 (file)
index 0000000..e829abb
--- /dev/null
@@ -0,0 +1,10 @@
+plugin.tx_cal_controller.display.mbl_newsevent {
+       # cat=News Event Service for Calendar Base/general/mblnewsevent-1; type=boolean; label=Use external plugin for news events?: Show news events using a plugin other than Calendar Base.
+       externalPlugin = 0
+
+       # cat=News Event Service for Calendar Base/general/mblnewsevent-2; type=integer; label=Page ID for news events: Individual news events are shown on this page. Only applicable if external plugins are enabled. 
+       externalPlugin.singleViewPid = 
+       
+       # cat=News Event Service for Calendar Base/general/mblnewsevent-3; type=string; label=URL parameters for news events: These parameters are used in addition to the Page ID when linking to an individual news event.
+       externalPlugin.additionalParams = tx_ttnews[tt_news]=###UID###
+}
\ No newline at end of file
diff --git a/Configuration/TypoScript/mbl_newsevent/setup.txt b/Configuration/TypoScript/mbl_newsevent/setup.txt
new file mode 100644 (file)
index 0000000..baaf487
--- /dev/null
@@ -0,0 +1,111 @@
+plugin.tx_cal_controller {
+       display {
+               mbl_newsevent {
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = tt_news.*, tx_mblnewsevent_from + tx_mblnewsevent_fromtime as tx_mblnewsevent_start, tx_mblnewsevent_to + tx_mblnewsevent_totime as tx_mblnewsevent_end
+                       }
+                       
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
+                       event_select_with_cat {
+                               selectFields = tt_news.*,tt_news_cat_mm.uid_foreign, tx_mblnewsevent_from + tx_mblnewsevent_fromtime as tx_mblnewsevent_start, tx_mblnewsevent_to + tx_mblnewsevent_totime as tx_mblnewsevent_end
+                               leftjoin = tt_news_cat_mm ON (tt_news.uid = tt_news_cat_mm.uid_local) JOIN tt_news_cat ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+                       }
+                       
+                       # @description  Configure the table the records come from.
+                       pidTable = tt_news
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = tt_news.tx_mblnewsevent_isevent = 1 AND ((tx_mblnewsevent_from >= ###START### AND tx_mblnewsevent_from < ###END###) OR (tx_mblnewsevent_to < ###END### AND tx_mblnewsevent_to > ###START###)  OR (tx_mblnewsevent_to > ###END### AND tx_mblnewsevent_from < ###START###))
+                       
+                       # @description  Define the where clause for the ? view.
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAll =
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = tt_news.uid = ###UID### AND tt_news.tx_mblnewsevent_isevent = 1
+                       
+                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
+                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+                       externalPlugin = {$plugin.tx_cal_controller.display.mbl_newsevent.externalPlugin}
+                       
+                       externalPlugin {
+                               
+                               # @description  Define the pid for the external plugin single view
+                               singleViewPid = {$plugin.tx_cal_controller.display.mbl_newsevent.externalPlugin.singleViewPid}
+                               
+                               # @description  Array containing the url paramter to be added to the url
+                               additionalParams = {$plugin.tx_cal_controller.display.mbl_newsevent.externalPlugin.additionalParams}
+                       }
+                       
+                       # @description  Enables the localization and/or versioning of the result record
+                       enableLocalizationAndVersioning = 0
+
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = tx_mblnewsevent_start
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField = tx_mblnewsevent_end
+                       
+                       # @description  If there is no end time, you can define a default length (in minutes)
+                       defaultLength = 0
+                       
+                       # @description  For a quick and easy integration, map your record fields to the standard event fields
+                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
+                       fieldMapping {
+                               title = title
+                               description = bodytext
+                               location =
+                               organizer =
+                               image = image
+                       }
+                       
+                       # @description  The template to be used with these records
+                       template = EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+                       
+                       # @description  The header style class to be used
+                       headerStyle = green_catheader
+                       
+                       # @description  The body style class to be used
+                       bodyStyle = green_catbody
+                       
+                       # @description  The title in the legend description for these records
+                       legendDescription = News Event
+                       
+                       search {
+                               # @description  The fields, which are allowed to be searched through
+                               searchEventFieldList = tt_news.title,tt_news.bodytext
+                       }
+                       
+                       # @description  Define the SQL to retrieve the categories
+                       cat_select {
+                               selectFields = tt_news_cat.*,tt_news_cat_mm.uid_local
+                               leftjoin = tt_news_cat_mm ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+                               andWhere = 
+                       }
+                       
+                       # @description  The table containing the category records
+                       catTable = tt_news_cat
+                       
+                       # @description  Retrieving and adopting the event configuration for the event view.
+                       event {
+                               event < plugin.tx_cal_controller.view.event.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image >
+                           image = IMAGE
+                           image {
+                               file.import.field = image
+                               file.import.stdWrap.wrap = uploads/pics/| 
+                           }
+                               }
+                       }
+               }
+       }
+}
+
+calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/Configuration/TypoScript/tt_news/constants.txt b/Configuration/TypoScript/tt_news/constants.txt
new file mode 100644 (file)
index 0000000..76fa868
--- /dev/null
@@ -0,0 +1,10 @@
+plugin.tx_cal_controller.display.tt_news {
+       # cat=News Service for Calendar Base/general/ttnews-1; type=boolean; label=Use external plugin for news?: Show news articles using a plugin other than Calendar Base.
+       externalPlugin = 0
+
+       # cat=News Service for Calendar Base/general/ttnews-2; type=integer; label=Page ID for news: Individual news articles are shown on this page. Only applicable if external plugins are enabled.  
+       externalPlugin.singleViewPid = 
+       
+       # cat=News Service for Calendar Base/general/ttnews-3; type=string; label=URL parameters for news: These parameters are used in addition to the Page ID when linking to an individual news article.
+       externalPlugin.additionalParams = tx_ttnews[tt_news]=###UID###
+}
\ No newline at end of file
diff --git a/Configuration/TypoScript/tt_news/setup.txt b/Configuration/TypoScript/tt_news/setup.txt
new file mode 100644 (file)
index 0000000..da1ad53
--- /dev/null
@@ -0,0 +1,114 @@
+plugin.tx_cal_controller {
+       display {
+               tt_news {
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = tt_news.*
+                       }
+                       
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
+                       event_select_with_cat {
+                               selectFields = tt_news.*,tt_news_cat_mm.uid_foreign
+                               leftjoin = tt_news_cat_mm ON (tt_news.uid = tt_news_cat_mm.uid_local) JOIN tt_news_cat ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+                       }
+                       
+                       # @description  Configure the table the records come from.
+                       pidTable = tt_news
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = ((tt_news.datetime >=###START### AND tt_news.datetime+3600<=###END###) OR (tt_news.datetime+3600<=###END### AND tt_news.datetime+3600>=###START###) OR (tt_news.datetime+3600>=###END### AND tt_news.datetime<=###START###))
+                       
+                       # @description  Define the where clause for the ? view.
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAll =
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = tt_news.uid = ###UID###
+                       
+                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
+                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+                       externalPlugin = {$plugin.tx_cal_controller.display.tt_news.externalPlugin}
+                       
+                       externalPlugin {
+                               
+                               # @description  Define the pid for the external plugin single view
+                               singleViewPid = {$plugin.tx_cal_controller.display.tt_news.externalPlugin.singleViewPid}
+                               
+                               # @description  Array containing the url paramter to be added to the url
+                               additionalParams = {$plugin.tx_cal_controller.display.tt_news.externalPlugin.additionalParams}
+                       }
+                       
+                       # @description  Enables the localization and/or versioning of the result record
+                       enableLocalizationAndVersioning = 0
+                       
+                       # @description  Enables the localization and/or versioning of the category result record
+                       enableLocalizationAndVersioningCat = 0
+
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = datetime
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField =
+                       
+                       # @description  If there is no end time, you can define a default length (in minutes)
+                       defaultLength = 180
+                       
+                       # @description  For a quick and easy integration, map your record fields to the standard event fields
+                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
+                       fieldMapping {
+                               title = title
+                               description = bodytext
+                               location =
+                               organizer =
+                               image = image
+                       }
+                       
+                       # @description  The template to be used with these records
+                       template = EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+                       
+                       # @description  The header style class to be used
+                       headerStyle = red_catheader
+                       
+                       # @description  The body style class to be used
+                       bodyStyle = red_catbody
+                       
+                       # @description  The title in the legend description for these records
+                       legendDescription = News
+                       
+                       search {
+                               # @description  The fields, which are allowed to be searched through
+                               searchEventFieldList = tt_news.title,tt_news.bodytext
+                       }
+                       
+                       # @description  Define the SQL to retrieve the categories
+                       cat_select {
+                               selectFields = tt_news_cat.*,tt_news_cat_mm.uid_local
+                               leftjoin = tt_news_cat_mm ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+                               andWhere = 
+                       }
+                       
+                       # @description  The table containing the category records
+                       catTable = tt_news_cat
+                       
+                       # @description  Retrieving and adopting the event configuration for the event view.
+                       event {
+                               event < plugin.tx_cal_controller.view.event.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image >
+                           image = IMAGE
+                           image {
+                               file.import.field = image
+                               file.import.stdWrap.wrap = uploads/pics/| 
+                           }
+                               }
+                       }
+               }
+       }
+}
+
+calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/Configuration/TypoScript/tt_products/constants.txt b/Configuration/TypoScript/tt_products/constants.txt
new file mode 100644 (file)
index 0000000..8a4a8af
--- /dev/null
@@ -0,0 +1,10 @@
+plugin.tx_cal_controller.display.tt_products {
+       # cat=Products Service for Calendar Base/general/ttproducts-1; type=boolean; label=Use external plugin for products?: Show products using a plugin other than Calendar Base.
+       externalPlugin = 0
+
+       # cat=Products Service for Calendar Base/general/ttproducts-2; type=integer; label=Page ID for products: Individual products are shown on this page. Only applicable if external plugins are enabled.   
+       externalPlugin.singleViewPid = 
+       
+       # cat=Products Service for Calendar Base/general/ttproducts-3; type=string; label=URL Parameters for products: These parameters are used in addition to the Page ID when linking to an individual product.
+       externalPlugin.additionalParams = tx_ttproducts_pi1[product]=###UID###
+}
\ No newline at end of file
diff --git a/Configuration/TypoScript/tt_products/setup.txt b/Configuration/TypoScript/tt_products/setup.txt
new file mode 100644 (file)
index 0000000..f6ff3e9
--- /dev/null
@@ -0,0 +1,105 @@
+plugin.tx_cal_controller {
+       display {
+               tt_products {
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = tt_products.*
+                       }
+                       
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
+                       event_select_with_cat {
+                       }
+                       
+                       # @description  Configure the table the records come from.
+                       pidTable = tt_products
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = ((tt_products.sellstarttime>=###START### AND tt_products.sellstarttime<###END###) OR (tt_products.sellendtime<###END### AND tt_products.sellendtime>###START###) OR (tt_products.sellendtime>###END### AND tt_products.sellstarttime<###START###))
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = tt_products.uid = ###UID###
+                       
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = sellstarttime
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField = sellendtime
+                       
+                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
+                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+                       externalPlugin = {$plugin.tx_cal_controller.display.tt_products.externalPlugin}
+                       
+                       externalPlugin {
+                               
+                               # @description  Define the pid for the external plugin single view
+                               singleViewPid = {$plugin.tx_cal_controller.display.tt_products.externalPlugin.singleViewPid}
+                               
+                               # @description  String containing the url paramter to be added to the url
+                               additionalParams = {$plugin.tx_cal_controller.display.tt_products.externalPlugin.additionalParams}
+                       }
+                       
+                       # @description  Enables the localization and/or versioning of the result record
+                       enableLocalizationAndVersioning = 0
+                       
+                       # @description  If there is no end time, you can define a default length (in minutes)
+                       defaultLength = 
+                                               
+                       # @description  For a quick and easy integration, map your record fields to the standard event fields
+                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
+                       fieldMapping {
+                               title = title
+                               description = note
+                               location =
+                               organizer =
+                               image = image
+                       }
+                       
+                       # @description  The template to be used with these records
+                       template = EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+                       
+                       # @description  The header style class to be used
+                       headerStyle = green_catheader
+                       
+                       # @description  The body style class to be used
+                       bodyStyle = green_catbody
+                       
+                       # @description  The title in the legend description for these records
+                       legendDescription = Angebote
+                       
+                       search {
+                               # @description  The fields, which are allowed to be searched through
+                               searchEventFieldList = tt_products.title,tt_products.note
+                       }
+                       
+                       # @description  Define the SQL to retrieve the categories
+                       cat_select { 
+                       }
+                       
+                       # @description  The table containing the category records
+                       catTable = 
+                       
+                       # @description  Retrieving the event configuration for the event view.
+                       event {
+                               event < plugin.tx_cal_controller.view.event.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image.overridePath = uploads/pics/
+                               }
+                       }
+                       list {
+                               event < plugin.tx_cal_controller.view.list.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image.overridePath = uploads/pics/
+                               }
+                       }
+                       rss.event < plugin.tx_cal_controller.view.rss.event
+               }
+       }
+}
+
+calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/Configuration/TypoScript/tx_seminars/constants.txt b/Configuration/TypoScript/tx_seminars/constants.txt
new file mode 100644 (file)
index 0000000..1f0381f
--- /dev/null
@@ -0,0 +1,10 @@
+plugin.tx_cal_controller.display.tx_seminars {
+       # cat=Seminar Service for Calendar Base/general/txseminars-1; type=boolean; label=Use external plugin for seminars?: Show seminars using a plugin other than Calendar Base.
+       externalPlugin = 0
+
+       # cat=Seminar Service for Calendar Base/general/txseminars-2; type=integer; label=Page ID for seminars: Individual seminars are shown on this page. Only applicable if external plugins are enabled.    
+       externalPlugin.singleViewPid = 
+       
+       # cat=Seminar Service for Calendar Base/general/txseminars-3; type=string; label=URL Parameters for seminars: These parameters are used in addition to the Page ID when linking to an individual seminar.
+       externalPlugin.additionalParams = tx_seminars_pi1[showUid]=###UID###
+}
\ No newline at end of file
diff --git a/Configuration/TypoScript/tx_seminars/setup.txt b/Configuration/TypoScript/tx_seminars/setup.txt
new file mode 100644 (file)
index 0000000..931e7be
--- /dev/null
@@ -0,0 +1,145 @@
+plugin.tx_cal_controller {
+       display {
+               seminars {
+                       
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = tx_seminars_seminars.*, tx_seminars_timeslots.*, tx_seminars_timeslots.begin_date as bgndt, tx_seminars_timeslots.end_date as nddt, tx_seminars_seminars.title as mytitle, tx_seminars_timeslots.begin_date as my_startdate, tx_seminars_timeslots.end_date as my_enddate
+                               leftjoin = tx_seminars_timeslots ON (tx_seminars_seminars.uid=tx_seminars_timeslots.seminar)
+                       }
+                       
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
+                       event_select_with_cat {
+                       }
+                       
+                       # @description  Configure the table the records come from.
+                       pidTable = tx_seminars_seminars
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = ((tx_seminars_timeslots.begin_date>=###START### AND tx_seminars_timeslots.begin_date<###END###) OR (tx_seminars_timeslots.end_date<###END### AND tx_seminars_timeslots.end_date>###START###)  OR (tx_seminars_timeslots.end_date>###END### AND tx_seminars_timeslots.begin_date<###START###))
+                       
+                       # @description  Define the where clause for the ? view.
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAll =
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = tx_seminars_seminars.uid = ###UID###
+                       
+                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
+                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+                       externalPlugin = {$plugin.tx_cal_controller.display.tx_seminars.externalPlugin}
+                       
+                       externalPlugin {
+                               
+                               # @description  Define the pid for the external plugin single view
+                               singleViewPid = {$plugin.tx_cal_controller.display.tx_seminars.externalPlugin.singleViewPid}
+                               
+                               # @description  Array containing the url paramter to be added to the url
+                               additionalParams = {$plugin.tx_cal_controller.display.tx_seminars.externalPlugin.additionalParams}
+                       }
+                       
+                       # @description  Enables the localization and/or versioning of the result record
+                       enableLocalizationAndVersioning = 0
+                       
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = my_startdate
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField = my_enddate
+                       
+                       # @description  If there is no end time, you can define a default length (in minutes)
+                       defaultLength = 180
+                                               
+                       # @description  For a quick and easy integration, map your record fields to the standard event fields
+                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
+                       fieldMapping {
+                               title = mytitle
+                               description = description
+                               location =
+                               organizer =
+                               image = image
+                       }
+                       
+                       # @description  The template to be used with these records
+                       template = EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+                       
+                       # @description  The header style class to be used
+                       headerStyle = yellow_catheader
+                       
+                       # @description  The body style class to be used
+                       bodyStyle = yellow_catbody
+                       
+                       # @description  The title in the legend description for these records
+                       legendDescription = Seminar
+                       
+                       search {
+                               # @description  The fields, which are allowed to be searched through
+                               searchEventFieldList = tx_seminars.title,tx_seminars.description
+                       }
+                       
+                       # @description  Define the SQL to retrieve the categories
+                       cat_select { 
+                       }
+                       
+                       # @description  The table containing the category records
+                       catTable = 
+                       
+                       # @description  Retrieving the event configuration for the event view.
+                       event {
+                               event < plugin.tx_cal_controller.view.event.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image >
+                           image = IMAGE
+                           image {
+                               file.import.field = image
+                               file.import.stdWrap.wrap = uploads/tx_seminars/| 
+                           }
+                               }
+                       }
+                       # @description  Retrieving the event configuration for the event view.
+                       list {
+                               event < plugin.tx_cal_controller.view.list.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image >
+                           image = IMAGE
+                           image {
+                               file.import.field = image
+                               file.import.stdWrap.wrap = uploads/tx_seminars/| 
+                           }
+                               }
+                       }
+                       rss.event < plugin.tx_cal_controller.view.rss.event
+               }
+
+               seminars2 < plugin.tx_cal_controller.display.seminars
+               seminars2 {
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = tx_seminars_seminars.*, tx_seminars_seminars.title as mytitle
+                       }
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = ((tx_seminars_seminars.begin_date>=###START### AND tx_seminars_seminars.begin_date<###END###) OR (tx_seminars_seminars.end_date<###END### AND tx_seminars_seminars.end_date>###START###) OR (tx_seminars_seminars.end_date>###END### AND tx_seminars_seminars.begin_date<###START###))
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = tx_seminars_seminars.uid = ###UID###
+                       
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = begin_date
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField = end_date
+               }
+       }
+}
+
+calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/Configuration/TypoScript/wec_sermons/constants.txt b/Configuration/TypoScript/wec_sermons/constants.txt
new file mode 100644 (file)
index 0000000..81893dc
--- /dev/null
@@ -0,0 +1,9 @@
+plugin.tx_cal_controller.display.wec_sermons {
+       # cat=Sermons Service for Calendar Base/general/wecsermons-1; type=boolean; label=Use external plugin for sermons?: Show sermons using a plugin other than Calendar Base.
+       externalPlugin = 0
+
+       # cat=Sermons Service for Calendar Base/general/wecsermons-2; type=integer; label=Page ID for sermons: Individual sermons are shown on this page. Only applicable if external plugins are enabled.      
+       externalPlugin.singleViewPid = 
+       
+       # cat=Sermons Service for Calendar Base/general/wecsermons-3; type=string; label=URL Parameters for sermons: These parameters are used in addition to the Page ID when linking to an individual sermon.
+       externalPlugin.additionalParams = tx_wecsermons_pi1[showUid]=###UID###&tx_wecsermons_pi1[recordType]=tx_wecsermons_sermons
\ No newline at end of file
diff --git a/Configuration/TypoScript/wec_sermons/setup.txt b/Configuration/TypoScript/wec_sermons/setup.txt
new file mode 100644 (file)
index 0000000..06a54e9
--- /dev/null
@@ -0,0 +1,106 @@
+plugin.tx_cal_controller {
+       display {
+               wec_sermons {
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
+                       event_select {
+                               selectFields = tx_wecsermons_sermons.*, 1 AS allday
+                       }
+                       
+                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
+                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
+                       event_select_with_cat {
+                       }
+                       
+                       # @description  Configure the table the records come from.
+                       pidTable = tx_wecsermons_sermons
+                       
+                       # @description  Define the where clause for the views: day, week, month, year, list, rss
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAllWithinWhere = ((tx_wecsermons_sermons.occurrence_date >=###START### AND tx_wecsermons_sermons.occurrence_date+3600<=###END###) OR (tx_wecsermons_sermons.occurrence_date+3600<=###END### AND tx_wecsermons_sermons.occurrence_date+3600>=###START###) OR (tx_wecsermons_sermons.occurrence_date+3600>=###END### AND tx_wecsermons_sermons.occurrence_date<=###START###))
+                       
+                       # @description  Define the where clause for the ? view.
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findAll =
+                       
+                       # @description  Define the where clause for the single event views: event, ics
+                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+                       findWhere = tx_wecsermons_sermons.uid = ###UID###
+                       
+                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
+                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+                       externalPlugin = {$plugin.tx_cal_controller.display.wec_sermons.externalPlugin}
+                       
+                       externalPlugin {
+                               
+                               # @description  Define the pid for the external plugin single view
+                               singleViewPid = {$plugin.tx_cal_controller.display.wec_sermons.externalPlugin.singleViewPid}
+                               
+                               # @description  Array containing the url paramter to be added to the url
+                               additionalParams = {$plugin.tx_cal_controller.display.wec_sermons.externalPlugin.additionalParams}
+                       }
+                       
+                       # @description  Enables the localization and/or versioning of the result record
+                       enableLocalizationAndVersioning = 0
+
+                       # @description  Define the field containing the timestamp for the start time
+                       startTimeField = occurrence_date
+                       
+                       # @description  Define the field containing the timestamp for the end time
+                       endTimeField = occurrence_date
+                       
+                       # @description  If there is no end time, you can define a default length (in minutes)
+                       defaultLength = 0
+                       
+                       # @description  For a quick and easy integration, map your record fields to the standard event fields
+                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
+                       fieldMapping {
+                               title = title
+                               description = description
+                               location =
+                               organizer =
+                               image = graphic
+                       }
+                       
+                       # @description  The template to be used with these records
+                       template = EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+                       
+                       # @description  The header style class to be used
+                       headerStyle = blue_catheader
+                       
+                       # @description  The body style class to be used
+                       bodyStyle = blue_catbody
+                       
+                       # @description  The title in the legend description for these records
+                       legendDescription = Sermons
+                       
+                       search {
+                               # @description  The fields, which are allowed to be searched through
+                               searchEventFieldList = tx_wecsermons_sermons.title,tx_wecsermons_sermons.description,tx_wecsermons_sermons.keywords
+                       }
+                       
+                       # @description  Define the SQL to retrieve the categories
+                       cat_select {
+                       }
+                       
+                       # @description  The table containing the category records
+                       catTable =
+                       
+                       # @description  Retrieving and adopting the event configuration for the event view.
+                       event {
+                               event < plugin.tx_cal_controller.view.event.event
+                               event {
+                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
+                                       image >
+                           image = IMAGE
+                           image {
+                               file.import.field = image
+                               file.import.stdWrap.wrap = uploads/tx_wecsermons/| 
+                           }
+                               }
+                       }
+               }
+       }
+}
+
+calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/Documentation/Changelog/0-1-0.rst b/Documentation/Changelog/0-1-0.rst
new file mode 100644 (file)
index 0000000..b742cac
--- /dev/null
@@ -0,0 +1,7 @@
+
+0.0.1
+--------------------------------
+
+::
+
+       * Initial release
diff --git a/Documentation/Changelog/1-0-0.rst b/Documentation/Changelog/1-0-0.rst
new file mode 100644 (file)
index 0000000..2607944
--- /dev/null
@@ -0,0 +1,8 @@
+
+1.0.0
+--------------------------------
+
+::
+
+       * Raised to stable after a couple months of real world usage.
+
diff --git a/Documentation/Changelog/1-1-0.rst b/Documentation/Changelog/1-1-0.rst
new file mode 100644 (file)
index 0000000..1aaa6fc
--- /dev/null
@@ -0,0 +1,11 @@
+
+1.1.0
+--------------------------------
+
+::
+
+       * Updated to require Calendar Base 1.2.1 and greater.
+       * Added stdWrap to externalPlugin.additionalParams
+       * Added compatibility with mbl_newsevent 2.0.0.
+       * Minor bugfixes.
+
diff --git a/Documentation/Changelog/1-1-1.rst b/Documentation/Changelog/1-1-1.rst
new file mode 100644 (file)
index 0000000..5e9181d
--- /dev/null
@@ -0,0 +1,10 @@
+
+1.1.1
+--------------------------------
+
+::
+
+       * Replaced deprecated code
+       * Adjustments for new recurrence model
+       * Minor Bugfixes
+
diff --git a/Documentation/Changelog/1-2-0.rst b/Documentation/Changelog/1-2-0.rst
new file mode 100644 (file)
index 0000000..7ccdb62
--- /dev/null
@@ -0,0 +1,12 @@
+
+1.2.0
+--------------------------------
+
+::
+
+       * tx_serminars integration: 
+               Fix error if defaultLength is set  
+               adjust static TS to point to the correct picture path
+       * tt_news integration:
+               Support news of type “external URL”
+
diff --git a/Documentation/Changelog/2-0-0.rst b/Documentation/Changelog/2-0-0.rst
new file mode 100644 (file)
index 0000000..ac2342f
--- /dev/null
@@ -0,0 +1,9 @@
+
+2.0.0 - TYPO3 LTS 6.2 & TYPO3 7
+--------------------------------
+
+::
+
+       * TYPO3 6.2 & TYPO3 7 compatibility
+       * Feature     - Documentation converted to sphinx
+
diff --git a/Documentation/Changelog/Index.rst b/Documentation/Changelog/Index.rst
new file mode 100644 (file)
index 0000000..dc4df2f
--- /dev/null
@@ -0,0 +1,28 @@
+.. _ChangeLog:
+
+=============
+ChangeLog
+=============
+
+.. include:: ../Includes.txt
+
+The following is a high level overview of the changes in the Calendar Base TypoScript Service. For more details, have a look at the ticket itself at forge
+`(http://forge.typo3.org/projects/extension-cal_ts_service)
+<http://forge.typo3.org/projects/extension-cal_ts_service>`_.
+
+List of versions
+===================
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   2-0-0
+   1-2-0
+   1-1-1
+   1-1-0
+   1-0-0
+   0-1-0
+
+
diff --git a/Documentation/HowItWorks/Index.rst b/Documentation/HowItWorks/Index.rst
new file mode 100644 (file)
index 0000000..8c8aedc
--- /dev/null
@@ -0,0 +1,42 @@
+.. _HowItWorks:
+
+=======================================
+How the Cal Base TS Service Works
+=======================================
+
+.. include:: ../Includes.txt
+
+This section describes how the Calendar Base TypoScript Service works and how the core extension (Calendar Base) interacts with the different services. It is necessary that the reader has knowledge about the normal TYPO3 extension structure and the Calendar Base extension.
+
+When Calendar Base searches for events to be displayed, it looks for services, with the type “cal_event_model” and the subtype “event”. First of all it will find the “tx_cal_phpicalendar” service, which is the base service for returning the standard (tx_cal_event) events. It will continue to search other services and add any events that are found. The Calendar Base TypoScript Service offers a new service: “tx_cal_ts_service” to find events. Let's have a deeper look into this service.
+
+The tx_cal_ts_service uses only TypoScript for configuration. The base configuration path is: “plugin.tx_cal_controller.display”. Underneath this path you define an unique id, for example the table you want to records from: “tt_news” and “tt_products”
+
+.. code-block:: html
+
+       plugin.tx_cal_controller {
+         display {
+           tt_news {
+               //insert configuration here
+           }
+               tt_products {
+                   //insert configuration here
+           }
+           ....
+         }
+       }
+
+
+The service runs through each path and tries to find events. “event_select” and “event_select_with_cat” are TypoScript SELECT objects, which get completed with “pidTable” and where-clause according to the view (“findAllWithinWhere” or “findWhere”). Using the startTimeField and  endTimeField the service knows where to look for the starting time and ending time of the event. If there is no ending time, you can define a default length in minutes.
+
+To populate the standard event object with the values of the SQL result, you have to map event attributes to database fields. For example:
+
+.. code-block:: html
+
+       title = mytitle
+       description = description
+       image = image
+
+
+If you don't want Calendar Base to handle the display of your event, you can also point to the single view of your own plugin: “externalPlugin = 1”. Define a “singleViewPid” and the “additionalParams” needed by your plugin. In “additionalParams” you can use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder).
+
diff --git a/Documentation/Images/info.png b/Documentation/Images/info.png
new file mode 100644 (file)
index 0000000..9a27525
Binary files /dev/null and b/Documentation/Images/info.png differ
diff --git a/Documentation/Images/link.jpg b/Documentation/Images/link.jpg
new file mode 100644 (file)
index 0000000..f4718cb
Binary files /dev/null and b/Documentation/Images/link.jpg differ
diff --git a/Documentation/Images/note.png b/Documentation/Images/note.png
new file mode 100644 (file)
index 0000000..6d36238
Binary files /dev/null and b/Documentation/Images/note.png differ
diff --git a/Documentation/Images/rtfm.png b/Documentation/Images/rtfm.png
new file mode 100644 (file)
index 0000000..2dc0f47
Binary files /dev/null and b/Documentation/Images/rtfm.png differ
diff --git a/Documentation/Images/storage_page.png b/Documentation/Images/storage_page.png
new file mode 100644 (file)
index 0000000..646b156
Binary files /dev/null and b/Documentation/Images/storage_page.png differ
diff --git a/Documentation/Images/warn.png b/Documentation/Images/warn.png
new file mode 100644 (file)
index 0000000..9ea96c3
Binary files /dev/null and b/Documentation/Images/warn.png differ
diff --git a/Documentation/Includes.txt b/Documentation/Includes.txt
new file mode 100644 (file)
index 0000000..fb63b49
--- /dev/null
@@ -0,0 +1,15 @@
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role::   underline
+.. role::   typoscript(code)
+.. role::   ts(typoscript)
+   :class:  typoscript
+.. role::   php(code)
+
diff --git a/Documentation/Index.rst b/Documentation/Index.rst
new file mode 100644 (file)
index 0000000..0c17b92
--- /dev/null
@@ -0,0 +1,49 @@
+.. _CalTsService:
+
+======================================================
+CalTsService: TypoScript Service for Calendar Base
+======================================================
+
+.. include:: Includes.txt
+
+:Classification:
+      cal_ts_service
+
+:Version:
+      |release|
+
+:Language:
+      en
+
+:Keywords:
+      forEditors, forAdmins, forDevelopers, forIntermediates, forAdvanced, cal, typoscript
+
+:Copyright:
+      2012-2015
+
+:Author:
+      Mario Matzulla
+
+:Email:
+      mario@matzullas.de
+
+:License:
+      This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml
+
+The content of this document is related to TYPO3, a GNU/GPL CMS/Framework available from `www.typo3.org <http://www.typo3.org/>`_.
+
+
+**Table of Contents**
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   Introduction/Index
+   Overview/Index
+   Installation/Index
+   TypoScriptReference/Index
+   HowItWorks/Index
+   Changelog/Index
+
diff --git a/Documentation/Installation/Index.rst b/Documentation/Installation/Index.rst
new file mode 100644 (file)
index 0000000..5b6565e
--- /dev/null
@@ -0,0 +1,20 @@
+.. _Installation:
+
+=============
+Installation
+=============
+
+.. include:: ../Includes.txt
+
+There are two steps necessary to install all the components of the Calendar Base TypoScript Service extension. If you've installed other extensions in the past, you will run into little new here.
+
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   Step1InstallTheExtension/Index
+   Step2AddTheStaticTemplates/Index
+   Step3ConfigureThePlugin/Index
+
diff --git a/Documentation/Installation/Step1InstallTheExtension/Images.txt b/Documentation/Installation/Step1InstallTheExtension/Images.txt
new file mode 100644 (file)
index 0000000..aaa8725
--- /dev/null
@@ -0,0 +1,8 @@
+.. |img-4|      image:: ../../Images/note.png
+   :height: 15
+   :width: 15
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: Note
+
diff --git a/Documentation/Installation/Step1InstallTheExtension/Index.rst b/Documentation/Installation/Step1InstallTheExtension/Index.rst
new file mode 100644 (file)
index 0000000..e2c968c
--- /dev/null
@@ -0,0 +1,14 @@
+.. include:: Images.txt
+.. _Step1InstallTheExtension:
+
+==============================
+Step 1: Install the Extension
+==============================
+
+.. include:: ../../Includes.txt
+
+The Calendar Base TypoScript Service extension (cal_ts_service) can be installed through the typical TYPO3 installation process using the Extension Manager.
+
+|img-4| **Note**:During the installation process, the extension will check to ensure you have version 1.9.0 or later of the Calendar Base extension installed.
+
+
diff --git a/Documentation/Installation/Step2AddTheStaticTemplates/Index.rst b/Documentation/Installation/Step2AddTheStaticTemplates/Index.rst
new file mode 100644 (file)
index 0000000..547edf5
--- /dev/null
@@ -0,0 +1,25 @@
+.. _Step2AddTheStaticTemplates:
+
+================================
+Step 2: Add the Static Templates
+================================
+
+.. include:: ../../Includes.txt
+
+In order for the Calendar Base TypoScript Service extension to connect Calendar Base to other tables, you will need to add the desired Static Template to your Extension Template Record you have for the Calendar Base extension (alternatively, they can be installed in your site's main Template Record). There are currently three options to choose from:
+
+- tt_news connector
+- tx_seminars connector
+- tt_products connector
+- wec_sermons connector
+- mbl_newsevent connector
+- Birthday connector
+
+If you are using the tx_seminars (cal_ts_service) or the tt_products (cal_ts_service) you have to define the page with the single view in your TypoScript setup:
+
+plugin.tx_cal_controller.display.tt_products.externalPlugin.singleViewPid = 123
+plugin.tx_cal_controller.display.seminars.externalPlugin.singleViewPid = 456
+
+Have a look at the ":ref:`TypoScriptReference`" chapter for more information.
+
+
diff --git a/Documentation/Installation/Step3ConfigureThePlugin/Images.txt b/Documentation/Installation/Step3ConfigureThePlugin/Images.txt
new file mode 100644 (file)
index 0000000..12fa21b
--- /dev/null
@@ -0,0 +1,6 @@
+.. |img-4|      image:: ../../Images/storage_page.png
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: Record Storage Page
+
diff --git a/Documentation/Installation/Step3ConfigureThePlugin/Index.rst b/Documentation/Installation/Step3ConfigureThePlugin/Index.rst
new file mode 100644 (file)
index 0000000..e2da4ee
--- /dev/null
@@ -0,0 +1,18 @@
+.. include:: Images.txt
+.. _Step3ConfigureThePlugin:
+
+================================
+Step 3: Configure the Plugin
+================================
+
+.. include:: ../../Includes.txt
+
+Once you have completed the installation process, the next step is to configure the Calendar Base  plugin. The only thing you have to do, is to add the Storage Folder or Page containing the tt_news/tx_seminar/tt_products or whatever records you want to display in your calendar, to the Starting point (1). 
+
+|img-4| Illustration 1: Configure the Plugin
+
+Be sure to save the Flexform when you have finished configuring the plugin.
+
+Once the Flexform is configured, news, seminar, or product records should begin appearing within the Calendar on your website.
+
+
diff --git a/Documentation/Introduction/AWelcome/Index.rst b/Documentation/Introduction/AWelcome/Index.rst
new file mode 100644 (file)
index 0000000..9e0e4c6
--- /dev/null
@@ -0,0 +1,11 @@
+.. _AWelcome:
+
+=============
+A. Welcome
+=============
+
+.. include:: ../../Includes.txt
+
+The Calendar Base TypoScript Service extension provides a TyposScript-based way of displaying data from other tables as events on the calendar. The extension provides default configurations for several popular TYPO3 extensions and also allows you to define event configurations for your own tables.
+
+
diff --git a/Documentation/Introduction/BAboutThisManual/Index.rst b/Documentation/Introduction/BAboutThisManual/Index.rst
new file mode 100644 (file)
index 0000000..f2ce86e
--- /dev/null
@@ -0,0 +1,21 @@
+.. _BAboutThisManual:
+
+=====================
+B. About this Manual
+=====================
+
+.. include:: ../../Includes.txt
+
+This guide is organized into five main sections:
+
+#. **Overview:** What the Calendar Base TypoScript Service does, how it works, and what you can expect from the rest of the manual.
+
+#. **Installation:** How to install the Calendar Base TypoScript Service and how to get it running on your website.
+
+#. **Configuration:** How to configure the Calendar Base TypoScript Service for maximum impact on your website.
+
+#. **TypoScript Reference:** The reference table for the Calendar Base TypoScript Service extension commands.
+
+#. **How it Works:** Instructions on how the Calendar Base TypoScript Service extension works.
+
+
diff --git a/Documentation/Introduction/CHowToUseThisManual/Images.txt b/Documentation/Introduction/CHowToUseThisManual/Images.txt
new file mode 100644 (file)
index 0000000..f49bca8
--- /dev/null
@@ -0,0 +1,40 @@
+.. |img-3|      image:: ../../Images/info.png
+   :height: 14
+   :width: 16
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: graphics62
+
+.. |img-4|      image:: ../../Images/note.png
+   :height: 15
+   :width: 15
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: Note
+
+.. |img-5|      image:: ../../Images/warn.png
+   :height: 16
+   :width: 16
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: Caution
+
+.. |img-6|      image:: ../../Images/rtfm.png
+   :height: 15
+   :width: 18
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: Technical Stuff
+
+.. |img-7|      image:: ../../Images/link.jpg
+   :height: 15
+   :width: 18
+.. :align: left
+.. :border: 0
+.. :hspace: 12
+.. :name: Internet Link
+
diff --git a/Documentation/Introduction/CHowToUseThisManual/Index.rst b/Documentation/Introduction/CHowToUseThisManual/Index.rst
new file mode 100644 (file)
index 0000000..7f5aa56
--- /dev/null
@@ -0,0 +1,22 @@
+.. include:: Images.txt
+.. _CHowToUseThisManual:
+
+==========================
+C. How to Use this Manual
+==========================
+
+.. include:: ../../Includes.txt
+
+To help make sense of the material on the following pages, we’ve used a few icons in the margin to highlight certain information.
+
+|img-3| **Tip** : Tips are bits of information that are good to know. They may offer shortcuts to save you time or even make your website better.
+
+|img-4| **Note** : These notes are similar to tips, but usually contain information you should pay attention to. It might be details about a step that a whole operation hinges on or it may highlight an essential sequence of tasks.
+
+|img-5| **Caution** : These notes draw your attention to things that can interrupt your service or website if not done correctly. Some actions can be difficult to undo.
+
+|img-6| **Technical Stuff** : These notes will explain how stuff works. If you want to know why certain steps are necessary or are just looking for a fuller explanation, these notes should help answer your questions.
+
+|img-7| **Internet Link** : These links will guide you to a website page that will demonstrate How-To do something or link you to more advanced information on the  `http://typo3-calendar.org <http://typo3-calendar.org/>`_ or  `http://typo3.org <http://typo3.org/>`_ websites.
+
+
diff --git a/Documentation/Introduction/Index.rst b/Documentation/Introduction/Index.rst
new file mode 100644 (file)
index 0000000..acab317
--- /dev/null
@@ -0,0 +1,17 @@
+.. _Introduction:
+
+=============
+Introduction
+=============
+
+.. include:: ../Includes.txt
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   AWelcome/Index
+   BAboutThisManual/Index
+   CHowToUseThisManual/Index
+
diff --git a/Documentation/Overview/HowToGetHelp/HowToGetInvolved/Index.rst b/Documentation/Overview/HowToGetHelp/HowToGetInvolved/Index.rst
new file mode 100644 (file)
index 0000000..ec76caa
--- /dev/null
@@ -0,0 +1,12 @@
+.. _HowToGetInvolved:
+
+====================
+How to Get Involved
+====================
+
+.. include:: ../../../Includes.txt
+
+The Calendar Base developers strive for an open development process and welcome anyone in the TYPO3 community who would like to join the team. Whether you want to develop new features, test upcoming releases, write documentation, translate to new languages, or provide support for the team, there's room for you. Introduce yourself on the TYPO3 Calendar Project newsgroup at news://lists.typo3.org/typo3.projects.calendar and we'll find a place for you.
+
+The bugtracker at `http://forge.typo3.org/projects/extension-cal_ts_service <http://forge.typo3.org/projects/extension-cal_ts_service>`_ is also worth a look.
+
diff --git a/Documentation/Overview/HowToGetHelp/Index.rst b/Documentation/Overview/HowToGetHelp/Index.rst
new file mode 100644 (file)
index 0000000..7bb2aca
--- /dev/null
@@ -0,0 +1,18 @@
+.. _HowToGetHelp:
+
+================
+How to Get Help
+================
+
+.. include:: ../../Includes.txt
+
+This extension is a part of the Calendar Base. Therefore the TYPO3 Calendar Project newsgroup at news://lists.typo3.org/typo3.projects.calendar is the best place to get support for any questions regarding either extension. Post your questions and someone from the development team will be able to help.
+
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   HowToGetInvolved/Index
+
diff --git a/Documentation/Overview/Index.rst b/Documentation/Overview/Index.rst
new file mode 100644 (file)
index 0000000..847d352
--- /dev/null
@@ -0,0 +1,16 @@
+.. _Overview:
+
+=============
+Overview
+=============
+
+.. include:: ../Includes.txt
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   WhatDoesItDo/Index
+   HowToGetHelp/Index
+
diff --git a/Documentation/Overview/WhatDoesItDo/Index.rst b/Documentation/Overview/WhatDoesItDo/Index.rst
new file mode 100644 (file)
index 0000000..a68e498
--- /dev/null
@@ -0,0 +1,11 @@
+.. _WhatDoesItDo:
+
+=================
+What does it do?
+=================
+
+.. include:: ../../Includes.txt
+
+The Calendar Base TypoScript Service extension provides a TyposScript-based method for displaying data from other tables as events on the calendar. The extension provides default configurations for several popular TYPO3 extensions and also allows you to define event configurations for your own tables. By default, news articles (EXT:tt_news and EXT:mbl_newsevent), products (EXT:tt_products), fe_users birthday, sermons (EXT:wec_sermons), and seminars (EXT:seminars) can be displayed on the calendar. If you add the TypoScript configuration for a new extension, don't hesitate to submit it for inclusion in future releases.
+
+
diff --git a/Documentation/Settings.yml b/Documentation/Settings.yml
new file mode 100644 (file)
index 0000000..7b65de7
--- /dev/null
@@ -0,0 +1,15 @@
+conf.py:
+  copyright: 2010-2015
+  project: TypoScript Service for Calendar Base
+  version: 2.0
+  release: 2.0.0
+  latex_documents:
+  - - Index
+    - cal_ts_service.tex
+    - TypoScript Service for Calendar Base
+    - Mario Matzulla
+    - manual
+  latex_elements:
+    papersize: a4paper
+    pointsize: 10pt
+    preamble: \usepackage{typo3}
\ No newline at end of file
diff --git a/Documentation/TypoScriptReference/Birthday/Index.rst b/Documentation/TypoScriptReference/Birthday/Index.rst
new file mode 100644 (file)
index 0000000..9819b24
--- /dev/null
@@ -0,0 +1,323 @@
+.. _TypoScriptReferenceBirthday:
+
+===============================
+Birthday
+===============================
+
+.. include:: ../../Includes.txt
+
+This is the default birthday configuration used to show frontend user birthdays within the calendar.
+
+plugin.tx\_cal\_controller.display.birthday
+
+.. ### BEGIN~OF~TABLE ###
+
+.. container:: table-row
+
+   Property
+         event_select
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the fe_users records.
+         
+         *selectFields* = fe_users.\*, 'year' as freq, 20301231 as until, 1 as allday
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         pidTable
+
+   Data type
+         String
+
+   Description
+         Configure the table the records come from.
+
+   Default
+         fe_users
+
+
+.. container:: table-row
+
+   Property
+         findAllWithinWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the views: day, week, month, year, list, rss.
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+   Default
+         (fe_users.date_of_birth < ###START### OR fe_users.date_of_birth < ###END###) and fe_users.date_of_birth > 0
+
+
+.. container:: table-row
+
+   Property
+         findAll
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the ? view
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+         Currently not in use!!
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         findWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the single event views: event, ics
+         Use ###UID### as marker to be replaced during runtime to define the uid of the record
+
+   Default
+         fe_users.uid = ###UID###
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin
+
+   Data type
+         Boolean
+
+   Description
+         Enable this to create a link to another page containing the single view of the external plugin.
+         Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.singleViewPid
+
+   Data type
+         Integer / PID
+
+   Description
+         Define the pid for the external plugin single view
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.additionalParams
+
+   Data type
+         String / stdWrap
+
+   Description
+         Contains the paramter(s) to be added to the url. Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         endTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the end time.If there is no according field, leave it empty and define a defaultLength
+
+   Default
+         date_of_birth
+
+
+.. container:: table-row
+
+   Property
+         defaultLength
+
+   Data type
+         Integer
+
+   Description
+         If there is no end time, you can define a default length (in minutes)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         fieldMapping
+
+   Data type
+         Array
+
+   Description
+         For a quick and easy integration, map your record fields to the standard event fields
+
+   Default
+         - title = name
+         - description = address
+         - location =
+         - organizer =
+         - image = image
+
+
+.. container:: table-row
+
+   Property
+         template
+
+   Data type
+         String / Path
+
+   Description
+         The template to be used with these records
+
+   Default
+         EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+
+
+.. container:: table-row
+
+   Property
+         headerStyle
+
+   Data type
+         String
+
+   Description
+         The header style class to be used.
+
+   Default
+         pink_catheader
+
+
+.. container:: table-row
+
+   Property
+         bodyStyle
+
+   Data type
+         String
+
+   Description
+         The body style class to be used.
+
+   Default
+         pink_catbody
+
+
+.. container:: table-row
+
+   Property
+         legendDescription
+
+   Data type
+         String
+
+   Description
+         The title in the legend description for these records
+
+   Default
+         Birthday
+
+
+.. container:: table-row
+
+   Property
+         search.searchEventFieldList
+
+   Data type
+         String, CSV
+
+   Description
+         The fields, which are allowed to be searched through
+
+   Default
+         fe_users.name
+
+
+.. container:: table-row
+
+   Property
+         event.event.title.dataWrap
+
+   Data type
+         String / dataWrap
+
+   Description
+         The title wrap
+
+   Default
+         \|'s birthday
+
+
+.. container:: table-row
+
+   Property
+         event.event.image
+
+   Data type
+         cObject
+
+   Description
+         The image definition
+
+   Default
+         .. code-block:: html
+
+             image >
+             image = IMAGE
+             image {
+                       file.import.field = image
+                       file.import.stdWrap.wrap = uploads/tx_srfeuserregister/| 
+             }
+
+
+.. container:: table-row
+
+   Property
+         event.event.alldayTitle.dataWrap
+
+   Data type
+         String
+
+   Description
+         Wrap for event title.
+
+   Default
+         <img src="typo3conf/ext/cal_ts_service/Resources/Public/Images/cake.png" />&nbsp; |
+         
+
+
+.. ###### END~OF~TABLE ######
+
+[tsref:plugin.tx\_cal\_controller.display.birthday]
+
diff --git a/Documentation/TypoScriptReference/Index.rst b/Documentation/TypoScriptReference/Index.rst
new file mode 100644 (file)
index 0000000..e03aecf
--- /dev/null
@@ -0,0 +1,21 @@
+.. _TypoScriptReference:
+
+======================
+TypoScript Reference
+======================
+
+.. include:: ../Includes.txt
+
+
+.. toctree::
+   :maxdepth: 5
+   :titlesonly:
+   :glob:
+
+   Birthday/Index
+   MblNewsevent/Index
+   TtNews/Index
+   TtProducts/Index
+   TxSeminars/Index
+   WecSermons/Index
+
diff --git a/Documentation/TypoScriptReference/MblNewsevent/Index.rst b/Documentation/TypoScriptReference/MblNewsevent/Index.rst
new file mode 100644 (file)
index 0000000..0a115b2
--- /dev/null
@@ -0,0 +1,342 @@
+.. _TypoScriptReferenceMblNewsevent:
+
+====================================
+mbl_newsevent
+====================================
+
+.. include:: ../../Includes.txt
+
+This is the default mbl_newsevent configuration used to show news articles within the calendar.
+
+plugin.tx\_cal\_controller.display.mbl_newsevent
+
+.. ### BEGIN~OF~TABLE ###
+
+.. container:: table-row
+
+   Property
+         event_select
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records.
+         
+         *selectFields* = tt_news.\*
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         event_select_with_cat
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records plus their categories.
+         
+         *selectFields* = tt_news.\*,tt_news_cat_mm.uid_foreign
+         *leftjoin* = tt_news_cat_mm ON (tt_news.uid = tt_news_cat_mm.uid_local) JOIN tt_news_cat ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         pidTable
+
+   Data type
+         String
+
+   Description
+         Configure the table the records come from.
+
+   Default
+         tt_news
+
+
+.. container:: table-row
+
+   Property
+         findAllWithinWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the views: day, week, month, year, list, rss.
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+   Default
+         tt_news.tx_mblnewsevent_isevent = 1 AND ((tt_news.tx_mblnewsevent_from >= ###START### AND tt_news.tx_mblnewsevent_from < ###END###) OR (tt_news.tx_mblnewsevent_to < ###END### AND tt_news.tx_mblnewsevent_to > ###START###)  OR (tt_news.tx_mblnewsevent_to > ###END### AND tt_news.tx_mblnewsevent_from < ###START###))
+
+
+.. container:: table-row
+
+   Property
+         findAll
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the ? view
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+         Currently not in use!!
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         findWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the single event views: event, ics
+         Use ###UID### as marker to be replaced during runtime to define the uid of the record
+
+   Default
+         tt_news.uid = ###UID### AND tt_news.tx_mblnewsevent_isevent = 1
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin
+
+   Data type
+         Boolean
+
+   Description
+         Enable this to create a link to another page containing the single view of the external plugin.
+         Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.singleViewPid
+
+   Data type
+         Integer / PID
+
+   Description
+         Define the pid for the external plugin single view
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.additionalParams
+
+   Data type
+         String / stdWrap
+
+   Description
+         Contains the paramter(s) to be added to the url. Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         tx_ttnews[tt_news]=###UID###
+
+
+.. container:: table-row
+
+   Property
+         endTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the end time.If there is no according field, leave it empty and define a defaultLength
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         defaultLength
+
+   Data type
+         Integer
+
+   Description
+         If there is no end time, you can define a default length (in minutes)
+
+   Default
+         180
+
+
+.. container:: table-row
+
+   Property
+         fieldMapping
+
+   Data type
+         Array
+
+   Description
+         For a quick and easy integration, map your record fields to the standard event fields
+
+   Default
+         - title = title
+         - description = bodytext
+         - image = image
+
+
+.. container:: table-row
+
+   Property
+         template
+
+   Data type
+         String / Path
+
+   Description
+         The template to be used with these records
+
+   Default
+         EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+
+
+.. container:: table-row
+
+   Property
+         headerStyle
+
+   Data type
+         String
+
+   Description
+         The header style class to be used.
+
+   Default
+         green_catheader
+
+
+.. container:: table-row
+
+   Property
+         bodyStyle
+
+   Data type
+         String
+
+   Description
+         The body style class to be used.
+
+   Default
+         green_catbody
+
+
+.. container:: table-row
+
+   Property
+         legendDescription
+
+   Data type
+         String
+
+   Description
+         The title in the legend description for these records
+
+   Default
+         News
+
+
+.. container:: table-row
+
+   Property
+         search.searchEventFieldList
+
+   Data type
+         String, CSV
+
+   Description
+         The fields, which are allowed to be searched through
+
+   Default
+         tt_news.title,tt_news.bodytext
+
+
+.. container:: table-row
+
+   Property
+         cat_select
+
+   Data type
+         SELECT
+
+   Description
+         Define the SQL to retrieve the categories
+
+         *selectFields* = tt_news_cat.\*,tt_news_cat_mm.uid_local
+         *leftjoin* = tt_news_cat_mm ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         cat_table
+
+   Data type
+         String
+
+   Description
+         The table containing the category records
+
+   Default
+         tt_news_cat
+
+
+.. container:: table-row
+
+   Property
+         event.event.image
+
+   Data type
+         cObject
+
+   Description
+         The image definition
+
+   Default
+         .. code-block:: html
+
+             image >
+             image = IMAGE
+             image {
+                       file.import.field = image
+                       file.import.stdWrap.wrap = uploads/pics/| 
+             }
+
+
+
+.. ###### END~OF~TABLE ######
+
+[tsref:plugin.tx\_cal\_controller.display.mbl_newsevent]
+
diff --git a/Documentation/TypoScriptReference/TtNews/Index.rst b/Documentation/TypoScriptReference/TtNews/Index.rst
new file mode 100644 (file)
index 0000000..391b5d5
--- /dev/null
@@ -0,0 +1,342 @@
+.. _TypoScriptReferenceTtNews:
+
+====================================
+tt_news
+====================================
+
+.. include:: ../../Includes.txt
+
+This is the default tt_news configuration used to show news articles within the calendar.
+
+plugin.tx\_cal\_controller.display.tt_news
+
+.. ### BEGIN~OF~TABLE ###
+
+.. container:: table-row
+
+   Property
+         event_select
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records.
+         
+         *selectFields* = tt_news.\*
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         event_select_with_cat
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records plus their categories.
+         
+         *selectFields* = tt_news.\*,tt_news_cat_mm.uid_foreign
+         *leftjoin* = tt_news_cat_mm ON (tt_news.uid = tt_news_cat_mm.uid_local) JOIN tt_news_cat ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         pidTable
+
+   Data type
+         String
+
+   Description
+         Configure the table the records come from.
+
+   Default
+         tt_news
+
+
+.. container:: table-row
+
+   Property
+         findAllWithinWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the views: day, week, month, year, list, rss.
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+   Default
+         ((tt_news.datetime >=###START### AND tt_news.datetime+3600<=###END###) OR (tt_news.datetime+3600<=###END### AND tt_news.datetime+3600>=###START###) OR (tt_news.datetime+3600>=###END### AND tt_news.datetime<=###START###))
+
+
+.. container:: table-row
+
+   Property
+         findAll
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the ? view
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+         Currently not in use!!
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         findWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the single event views: event, ics
+         Use ###UID### as marker to be replaced during runtime to define the uid of the record
+
+   Default
+         tt_news.uid = ###UID###
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin
+
+   Data type
+         Boolean
+
+   Description
+         Enable this to create a link to another page containing the single view of the external plugin.
+         Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.singleViewPid
+
+   Data type
+         Integer / PID
+
+   Description
+         Define the pid for the external plugin single view
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.additionalParams
+
+   Data type
+         String / stdWrap
+
+   Description
+         Contains the paramter(s) to be added to the url. Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         tx_ttnews[tt_news]=###UID###
+
+
+.. container:: table-row
+
+   Property
+         endTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the end time.If there is no according field, leave it empty and define a defaultLength
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         defaultLength
+
+   Data type
+         Integer
+
+   Description
+         If there is no end time, you can define a default length (in minutes)
+
+   Default
+         180
+
+
+.. container:: table-row
+
+   Property
+         fieldMapping
+
+   Data type
+         Array
+
+   Description
+         For a quick and easy integration, map your record fields to the standard event fields
+
+   Default
+         - title = title
+         - description = bodytext
+         - image = image
+
+
+.. container:: table-row
+
+   Property
+         template
+
+   Data type
+         String / Path
+
+   Description
+         The template to be used with these records
+
+   Default
+         EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+
+
+.. container:: table-row
+
+   Property
+         headerStyle
+
+   Data type
+         String
+
+   Description
+         The header style class to be used.
+
+   Default
+         red_catheader
+
+
+.. container:: table-row
+
+   Property
+         bodyStyle
+
+   Data type
+         String
+
+   Description
+         The body style class to be used.
+
+   Default
+         red_catbody
+
+
+.. container:: table-row
+
+   Property
+         legendDescription
+
+   Data type
+         String
+
+   Description
+         The title in the legend description for these records
+
+   Default
+         News
+
+
+.. container:: table-row
+
+   Property
+         search.searchEventFieldList
+
+   Data type
+         String, CSV
+
+   Description
+         The fields, which are allowed to be searched through
+
+   Default
+         tt_news.title,tt_news.bodytext
+
+
+.. container:: table-row
+
+   Property
+         cat_select
+
+   Data type
+         SELECT
+
+   Description
+         Define the SQL to retrieve the categories
+
+         *selectFields* = tt_news_cat.\*,tt_news_cat_mm.uid_local
+         *leftjoin* = tt_news_cat_mm ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         cat_table
+
+   Data type
+         String
+
+   Description
+         The table containing the category records
+
+   Default
+         tt_news_cat
+
+
+.. container:: table-row
+
+   Property
+         event.event.image
+
+   Data type
+         cObject
+
+   Description
+         The image definition
+
+   Default
+         .. code-block:: html
+
+             image >
+             image = IMAGE
+             image {
+                       file.import.field = image
+                       file.import.stdWrap.wrap = uploads/pics/| 
+             }
+
+
+
+.. ###### END~OF~TABLE ######
+
+[tsref:plugin.tx\_cal\_controller.display.tt_news]
+
diff --git a/Documentation/TypoScriptReference/TtProducts/Index.rst b/Documentation/TypoScriptReference/TtProducts/Index.rst
new file mode 100644 (file)
index 0000000..1fdcbac
--- /dev/null
@@ -0,0 +1,306 @@
+.. _TypoScriptReferenceTtProducts:
+
+====================================
+tt_products
+====================================
+
+.. include:: ../../Includes.txt
+
+This is the default tt_products configuration used to show products within the calendar.
+
+plugin.tx\_cal\_controller.display.tt_products
+
+.. ### BEGIN~OF~TABLE ###
+
+.. container:: table-row
+
+   Property
+         event_select
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records.
+         
+         *selectFields* = tt_products.\*
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         pidTable
+
+   Data type
+         String
+
+   Description
+         Configure the table the records come from.
+
+   Default
+         tt_products
+
+
+.. container:: table-row
+
+   Property
+         findAllWithinWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the views: day, week, month, year, list, rss.
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+   Default
+         ((tt_products.sellstarttime>=###START### AND tt_products.sellstarttime<###END###) OR (tt_products.sellendtime<###END### AND tt_products.sellendtime>###START###) OR (tt_products.sellendtime>###END### AND tt_products.sellstarttime<###START###))
+
+
+.. container:: table-row
+
+   Property
+         findAll
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the ? view
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+         Currently not in use!!
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         findWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the single event views: event, ics
+         Use ###UID### as marker to be replaced during runtime to define the uid of the record
+
+   Default
+         tt_products.uid = ###UID###
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin
+
+   Data type
+         Boolean
+
+   Description
+         Enable this to create a link to another page containing the single view of the external plugin.
+         Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.singleViewPid
+
+   Data type
+         Integer / PID
+
+   Description
+         Define the pid for the external plugin single view
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.additionalParams
+
+   Data type
+         String / stdWrap
+
+   Description
+         Contains the paramter(s) to be added to the url. Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         tx_ttproducts_pi1[product]=###UID###
+
+
+.. container:: table-row
+
+   Property
+         startTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the start time
+
+   Default
+         sellstarttime
+
+
+.. container:: table-row
+
+   Property
+         endTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the end time.If there is no according field, leave it empty and define a defaultLength
+
+   Default
+         sellendtime
+
+
+.. container:: table-row
+
+   Property
+         defaultLength
+
+   Data type
+         Integer
+
+   Description
+         If there is no end time, you can define a default length (in minutes)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         fieldMapping
+
+   Data type
+         Array
+
+   Description
+         For a quick and easy integration, map your record fields to the standard event fields
+
+   Default
+         - title = title
+         - description = note
+         - image = image
+
+
+.. container:: table-row
+
+   Property
+         template
+
+   Data type
+         String / Path
+
+   Description
+         The template to be used with these records
+
+   Default
+         EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+
+
+.. container:: table-row
+
+   Property
+         headerStyle
+
+   Data type
+         String
+
+   Description
+         The header style class to be used.
+
+   Default
+         green_catheader
+
+
+.. container:: table-row
+
+   Property
+         bodyStyle
+
+   Data type
+         String
+
+   Description
+         The body style class to be used.
+
+   Default
+         green_catbody
+
+
+.. container:: table-row
+
+   Property
+         legendDescription
+
+   Data type
+         String
+
+   Description
+         The title in the legend description for these records
+
+   Default
+         Angebote
+
+
+.. container:: table-row
+
+   Property
+         search.searchEventFieldList
+
+   Data type
+         String, CSV
+
+   Description
+         The fields, which are allowed to be searched through
+
+   Default
+         tt_products.title,tt_products.note
+
+
+.. container:: table-row
+
+   Property
+         event.event.image
+
+   Data type
+         cObject
+
+   Description
+         The image definition
+
+   Default
+         .. code-block:: html
+
+             image >
+             image = IMAGE
+             image {
+                       file.import.field = image
+                       file.import.stdWrap.wrap = uploads/pics/| 
+             }
+
+
+
+.. ###### END~OF~TABLE ######
+
+[tsref:plugin.tx\_cal\_controller.display.tt_products]
+
diff --git a/Documentation/TypoScriptReference/TxSeminars/Index.rst b/Documentation/TypoScriptReference/TxSeminars/Index.rst
new file mode 100644 (file)
index 0000000..82a2579
--- /dev/null
@@ -0,0 +1,307 @@
+.. _TypoScriptReferenceTxSeminars:
+
+====================================
+tx_seminars
+====================================
+
+.. include:: ../../Includes.txt
+
+This is the default tx_seminars configuration used to show seminars within the calendar.
+
+plugin.tx\_cal\_controller.display.tx_seminars
+
+.. ### BEGIN~OF~TABLE ###
+
+.. container:: table-row
+
+   Property
+         event_select
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records.
+         
+         *selectFields* = tx_seminars_seminars.\*, tx_seminars_timeslots.\*, tx_seminars_timeslots.begin_date as bgndt, tx_seminars_timeslots.end_date as nddt, tx_seminars_seminars.title as mytitle, tx_seminars_timeslots.begin_date as my_startdate, tx_seminars_timeslots.end_date as my_enddate
+         *leftjoin* = tx_seminars_timeslots ON (tx_seminars_seminars.uid=tx_seminars_timeslots.seminar)
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         pidTable
+
+   Data type
+         String
+
+   Description
+         Configure the table the records come from.
+
+   Default
+         tx_seminars_seminars
+
+
+.. container:: table-row
+
+   Property
+         findAllWithinWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the views: day, week, month, year, list, rss.
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+   Default
+         ((tx_seminars_timeslots.begin_date>=###START### AND tx_seminars_timeslots.begin_date<###END###) OR (tx_seminars_timeslots.end_date<###END### AND tx_seminars_timeslots.end_date>###START###)  OR (tx_seminars_timeslots.end_date>###END### AND tx_seminars_timeslots.begin_date<###START###))
+
+
+.. container:: table-row
+
+   Property
+         findAll
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the ? view
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+         Currently not in use!!
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         findWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the single event views: event, ics
+         Use ###UID### as marker to be replaced during runtime to define the uid of the record
+
+   Default
+         tx_seminars_seminars.uid = ###UID###
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin
+
+   Data type
+         Boolean
+
+   Description
+         Enable this to create a link to another page containing the single view of the external plugin.
+         Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.singleViewPid
+
+   Data type
+         Integer / PID
+
+   Description
+         Define the pid for the external plugin single view
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.additionalParams
+
+   Data type
+         String / stdWrap
+
+   Description
+         Contains the paramter(s) to be added to the url. Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         tx_seminars_pi1[showUid]=###UID###
+
+
+.. container:: table-row
+
+   Property
+         startTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the start time
+
+   Default
+         my_startdate
+
+
+.. container:: table-row
+
+   Property
+         endTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the end time.If there is no according field, leave it empty and define a defaultLength
+
+   Default
+         my_enddate
+
+
+.. container:: table-row
+
+   Property
+         defaultLength
+
+   Data type
+         Integer
+
+   Description
+         If there is no end time, you can define a default length (in minutes)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         fieldMapping
+
+   Data type
+         Array
+
+   Description
+         For a quick and easy integration, map your record fields to the standard event fields
+
+   Default
+         - title = mytitle
+         - description = description
+         - image = image
+
+
+.. container:: table-row
+
+   Property
+         template
+
+   Data type
+         String / Path
+
+   Description
+         The template to be used with these records
+
+   Default
+         EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+
+
+.. container:: table-row
+
+   Property
+         headerStyle
+
+   Data type
+         String
+
+   Description
+         The header style class to be used.
+
+   Default
+         yellow_catheader
+
+
+.. container:: table-row
+
+   Property
+         bodyStyle
+
+   Data type
+         String
+
+   Description
+         The body style class to be used.
+
+   Default
+         yellow_catbody
+
+
+.. container:: table-row
+
+   Property
+         legendDescription
+
+   Data type
+         String
+
+   Description
+         The title in the legend description for these records
+
+   Default
+         Seminar
+
+
+.. container:: table-row
+
+   Property
+         search.searchEventFieldList
+
+   Data type
+         String, CSV
+
+   Description
+         The fields, which are allowed to be searched through
+
+   Default
+         tx_seminars.title,tx_seminars.description
+
+
+.. container:: table-row
+
+   Property
+         event.event.image
+
+   Data type
+         cObject
+
+   Description
+         The image definition
+
+   Default
+         .. code-block:: html
+
+             image >
+             image = IMAGE
+             image {
+                       file.import.field = image
+                       file.import.stdWrap.wrap = uploads/tx_seminars/| 
+             }
+
+
+
+.. ###### END~OF~TABLE ######
+
+[tsref:plugin.tx\_cal\_controller.display.tx_seminars]
+
diff --git a/Documentation/TypoScriptReference/WecSermons/Index.rst b/Documentation/TypoScriptReference/WecSermons/Index.rst
new file mode 100644 (file)
index 0000000..7b29d75
--- /dev/null
@@ -0,0 +1,306 @@
+.. _TypoScriptReferenceWecSermon:
+
+====================================
+wec_sermons
+====================================
+
+.. include:: ../../Includes.txt
+
+This is the default wec_sermons configuration used to show sermons within the calendar.
+
+plugin.tx\_cal\_controller.display.wec_sermons
+
+.. ### BEGIN~OF~TABLE ###
+
+.. container:: table-row
+
+   Property
+         event_select
+
+   Data type
+         SELECT
+
+   Description
+         This is the heart of the connection SQL. It will be used in conjunction with the view-where (findallWithinWhere, findAll and findWhere) to retrieve the tt_news records.
+         
+         *selectFields* = tx_wecsermons_sermons.\*, 1 AS allday
+
+   Default
+         See description
+
+
+.. container:: table-row
+
+   Property
+         pidTable
+
+   Data type
+         String
+
+   Description
+         Configure the table the records come from.
+
+   Default
+         tx_wecsermons_sermons
+
+
+.. container:: table-row
+
+   Property
+         findAllWithinWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the views: day, week, month, year, list, rss.
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+   Default
+         ((tx_wecsermons_sermons.occurrence_date >=###START### AND tx_wecsermons_sermons.occurrence_date+3600<=###END###) OR (tx_wecsermons_sermons.occurrence_date+3600<=###END### AND tx_wecsermons_sermons.occurrence_date+3600>=###START###) OR (tx_wecsermons_sermons.occurrence_date+3600>=###END### AND tx_wecsermons_sermons.occurrence_date<=###START###))
+
+
+.. container:: table-row
+
+   Property
+         findAll
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the ? view
+         Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
+
+         Currently not in use!!
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         findWhere
+
+   Data type
+         String
+
+   Description
+         Define the where clause for the single event views: event, ics
+         Use ###UID### as marker to be replaced during runtime to define the uid of the record
+
+   Default
+         tx_wecsermons_sermons.uid = ###UID###
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin
+
+   Data type
+         Boolean
+
+   Description
+         Enable this to create a link to another page containing the single view of the external plugin.
+         Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.singleViewPid
+
+   Data type
+         Integer / PID
+
+   Description
+         Define the pid for the external plugin single view
+
+   Default
+         -
+
+
+.. container:: table-row
+
+   Property
+         externalPlugin.additionalParams
+
+   Data type
+         String / stdWrap
+
+   Description
+         Contains the paramter(s) to be added to the url. Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
+
+   Default
+         tx_wecsermons_pi1[showUid]=###UID###&tx_wecsermons_pi1[recordType]=tx_wecsermons_sermons
+
+
+.. container:: table-row
+
+   Property
+         startTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the start time
+
+   Default
+         occurrence_date
+
+
+.. container:: table-row
+
+   Property
+         endTimeField
+
+   Data type
+         String
+
+   Description
+         Define the field containing the timestamp for the end time.If there is no according field, leave it empty and define a defaultLength
+
+   Default
+         occurrence_date
+
+
+.. container:: table-row
+
+   Property
+         defaultLength
+
+   Data type
+         Integer
+
+   Description
+         If there is no end time, you can define a default length (in minutes)
+
+   Default
+         0
+
+
+.. container:: table-row
+
+   Property
+         fieldMapping
+
+   Data type
+         Array
+
+   Description
+         For a quick and easy integration, map your record fields to the standard event fields
+
+   Default
+         - title = title
+         - description = description
+         - image = graphic
+
+
+.. container:: table-row
+
+   Property
+         template
+
+   Data type
+         String / Path
+
+   Description
+         The template to be used with these records
+
+   Default
+         EXT:cal_ts_service/Resources/Private/Templates/ts.tmpl
+
+
+.. container:: table-row
+
+   Property
+         headerStyle
+
+   Data type
+         String
+
+   Description
+         The header style class to be used.
+
+   Default
+         blue_catheader
+
+
+.. container:: table-row
+
+   Property
+         bodyStyle
+
+   Data type
+         String
+
+   Description
+         The body style class to be used.
+
+   Default
+         blue_catbody
+
+
+.. container:: table-row
+
+   Property
+         legendDescription
+
+   Data type
+         String
+
+   Description
+         The title in the legend description for these records
+
+   Default
+         Sermons
+
+
+.. container:: table-row
+
+   Property
+         search.searchEventFieldList
+
+   Data type
+         String, CSV
+
+   Description
+         The fields, which are allowed to be searched through
+
+   Default
+         tx_wecsermons_sermons.title,tx_wecsermons_sermons.description,tx_wecsermons_sermons.keywords
+
+
+.. container:: table-row
+
+   Property
+         event.event.image
+
+   Data type
+         cObject
+
+   Description
+         The image definition
+
+   Default
+         .. code-block:: html
+
+             image >
+             image = IMAGE
+             image {
+                       file.import.field = image
+                       file.import.stdWrap.wrap = uploads/tx_wecsermons/| 
+             }
+
+
+
+.. ###### END~OF~TABLE ######
+
+[tsref:plugin.tx\_cal\_controller.display.wec_sermons]
+
diff --git a/Resources/Private/Language/locallang.xml b/Resources/Private/Language/locallang.xml
new file mode 100755 (executable)
index 0000000..9ccf467
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<T3locallang>
+       <meta type="array">
+               <description></description>
+               <type>module</type>
+               <csh_table></csh_table>
+               <labelContext type="array">
+               </labelContext>
+       </meta>
+       <data type="array">
+               <languageKey index="default" type="array">
+                       <label index="l_birthday">Birthday</label>
+               </languageKey>
+               <languageKey index="de" type="array">
+                       <label index="l_birthday">Geburtstag von</label>
+               </languageKey>
+       </data>
+       <orig_text>
+       </orig_text>
+</T3locallang>
\ No newline at end of file
diff --git a/Resources/Private/Templates/ts.tmpl b/Resources/Private/Templates/ts.tmpl
new file mode 100755 (executable)
index 0000000..6579dd9
--- /dev/null
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<title>ts event example template</title>\r
+</head>\r
+\r
+<body>\r
+\r
+<h1>TS EVENT TEMPLATE</h1>\r
+<h2>EXAMPLE</h2>\r
+\r
+<br />\r
+<pre>\r
+\r
+<strong>Common markers:</strong>\r
+\r
+\r
+<!--###TEMPLATE_TS_EVENT### begin -->\r
+<!--phpicalendar_event.tmpl-->\r
+<div class="cal-single-item">\r
+       <div class="cal-single-timedata">###STARTDATE### ###STARTTIME### </div>\r
+               <h2>###TITLE###</h2>\r
+               ###CATEGORY###\r
+               ###IMAGE### \r
+               ###DESCRIPTION###\r
+               ###BODYTEXT###\r
+</div>\r
+<!--/phpicalendar_event.tmpl-->\r
+<!--###TEMPLATE_TS_EVENT### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_ALLDAY### begin -->\r
+<div class="###HEADERSTYLE###_allday"><!-- ###EVENT_LINK### start -->###TITLE###<!-- ###EVENT_LINK### end --></div>\r
+<!--###TEMPLATE_TS_EVENT_ALLDAY### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_DAY### begin -->\r
+class="eventbg2 ###BODYSTYLE###">\r
+<div class="eventfont">\r
+       <div class="###HEADERSTYLE###">###STATUS###<b>###STARTTIME### - ###ENDTIME###</b></div>\r
+       <div class="padd">###EDIT_LINK###<!-- ###EVENT_LINK### start -->###TITLE###<!-- ###EVENT_LINK### end --></div>\r
+</div>\r
+<!--###TEMPLATE_TS_EVENT_DAY### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_WEEK### begin -->\r
+class="eventbg2 ###BODYSTYLE###">\r
+<div class="eventfont">\r
+       <div class="###HEADERSTYLE###">###STATUS###<b>###STARTTIME### - ###ENDTIME###</b></div>\r
+       <div class="padd">###EDIT_LINK###<!-- ###EVENT_LINK### start -->###TITLE###<!-- ###EVENT_LINK### end --></div>\r
+</div>\r
+\r
+<!--###TEMPLATE_TS_EVENT_WEEK### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_MONTH### begin -->\r
+<div class="V9"><span class="###HEADERSTYLE###_bullet" >&bull;</span><span class="###HEADERSTYLE###_text"><!-- ###EVENT_LINK### start -->###STARTTIME###: ###TITLE###<!-- ###EVENT_LINK### end --></span></div>\r
+<!--###TEMPLATE_TS_EVENT_MONTH### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_MONTH_ALLDAY### begin -->\r
+<div class="V9"><span class="###HEADERSTYLE###_bullet" >&bull;</span><span class="###HEADERSTYLE###_text"><!-- ###EVENT_LINK### start -->###TITLE###<!-- ###EVENT_LINK### end --></span></div>\r
+<!--###TEMPLATE_TS_EVENT_MONTH_ALLDAY### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_YEAR### begin -->\r
+<div class="V9"><!-- ###EVENT_LINK### start --><span class="###HEADERSTYLE###_bullet" >&bull;</span><!-- ###EVENT_LINK### end --></div>\r
+<!--###TEMPLATE_TS_EVENT_YEAR### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_PREVIEW### begin -->\r
+<table>\r
+<tr><td>###TITLE_LABEL###</td><td>###TITLE###</td></tr>\r
+<tr><td>###STARTDATE_LABEL###</td><td>###STARTDATE###</td></tr>\r
+<tr><td>###ENDDATE_LABEL###</td><td>###ENDDATE###</td></tr>\r
+<tr><td>###STARTTIME_LABEL###</td><td>###STARTTIME###</td></tr>\r
+<tr><td>###ENDTIME_LABEL###</td><td>###ENDTIME###</td></tr>\r
+<tr><td>###DESCRIPTION_LABEL###</td><td>###DESCRIPTION###</td></tr>\r
+</table>\r
+<!--###TEMPLATE_TS_EVENT_PREVIEW### end -->\r
+\r
+<!--###TEMPLATE_TS_EVENT_TOMORROW### begin -->\r
+<div class="V9"><span class="###HEADERSTYLE###_bullet ###HEADERSTYLE###_legend_bullet">&bull;</span><span class="###HEADERSTYLE###_text ###HEADERSTYLE###_legend_text">###TITLE###</span></div>\r
+<!--###TEMPLATE_TS_EVENT_TOMORROW### end -->\r
+\r
+<!-- ###TEMPLATE_TS_EVENT_LIST_ODD### start -->\r
+       <dt>\r
+               ###IMAGE###\r
+               <!-- ###EVENT_LINK### start-->###TITLE###<!-- ###EVENT_LINK### end--><br />\r
+               ###STARTDATE### ###ENDDATE### <span class="V9G">###STARTTIME### ###ENDTIME###</span><br />\r
+               <br /><span class="V9G">###CATEGORY_LINK###</span>\r
+       </dt>\r
+       <dd>###DESCRIPTION###</dd>\r
+<!-- ###TEMPLATE_TS_EVENT_LIST_ODD### end -->\r
+<!-- ###TEMPLATE_TS_EVENT_LIST_EVEN### start -->\r
+       <dt class="even">\r
+               ###IMAGE###\r
+               <!-- ###EVENT_LINK### start-->###TITLE###<!-- ###EVENT_LINK### end--><br />\r
+               ###STARTDATE### ###ENDDATE### <span class="V9G">###STARTTIME### ###ENDTIME###</span><br />\r
+               <br /><span class="V9G">###CATEGORY_LINK###</span>\r
+       </dt>\r
+       <dd class="even">###DESCRIPTION###</dd>\r
+<!-- ###TEMPLATE_TS_EVENT_LIST_EVEN### end -->\r
+\r
+<!-- ###TEMPLATE_TS_EVENT_RSS### start -->\r
+               <item>\r
+                       <title>###TITLE###</title>\r
+                       <link><!-- ###EVENT_LINK### start --><!-- ###EVENT_LINK### end --></link>\r
+                       <guid><!-- ###EVENT_LINK### start --><!-- ###EVENT_LINK### end --></guid>\r
+                       <pubDate>###CREATE_DATE###</pubDate>\r
+                       <content:encoded>\r
+                       <![CDATA[\r
+                               ###CATEGORY###\r
+                               ###STARTDATE### ###STARTTIME###\r
+                               ###ENDDATE### ###ENDTIME###\r
+                               ###LOCATION###\r
+                               ###ORGANIZER###\r
+                               ###DESCRIPTION### <!-- ###EVENT_LINK### start -->###MORE_LABEL###<!-- ###EVENT_LINK### end -->\r
+                       ]]>\r
+                       </content:encoded>\r
+                       <description><![CDATA[\r
+                               ###CATEGORY###\r
+                               ###STARTDATE### ###STARTTIME###\r
+                               ###ENDDATE### ###ENDTIME###\r
+                               ###LOCATION###\r
+                               ###ORGANIZER###\r
+                               ###DESCRIPTION_STRIPTAGS### <!-- ###EVENT_LINK### start -->###MORE_LABEL###<!-- ###EVENT_LINK### end -->\r
+                               <hr/>\r
+                               ]]>\r
+                       </description>\r
+               </item>\r
+<!-- ###TEMPLATE_TS_EVENT_RSS### end -->\r
+\r
+<!-- ###TEMPLATE_TS_EVENT_ICS### start -->\r
+BEGIN:VEVENT\r
+UID:###GUID###\r
+###DTSTAMP###\r
+###DTSTART_YEAR_MONTH_DAY_HOUR_MINUTE###\r
+###DTEND_YEAR_MONTH_DAY_HOUR_MINUTE###\r
+###CATEGORY###\r
+###TITLE###\r
+###DESCRIPTION###\r
+###LOCATION###\r
+###ATTACHMENT_URL###\r
+###RRULE###\r
+###EXDATE###\r
+###EXRULE###\r
+###ORGANIZER###\r
+###ATTENDEE###\r
+END:VEVENT\r
+<!-- ###TEMPLATE_TS_EVENT_ICS### end -->\r
+</body>\r
+</html>        
\ No newline at end of file
diff --git a/Resources/Public/Images/cake.png b/Resources/Public/Images/cake.png
new file mode 100644 (file)
index 0000000..4ef151a
Binary files /dev/null and b/Resources/Public/Images/cake.png differ
diff --git a/credits.txt b/credits.txt
new file mode 100755 (executable)
index 0000000..794416b
--- /dev/null
@@ -0,0 +1,5 @@
+Thanks goes to:
+
+
+Mark James: http://www.famfamfam.com/lab/icons/silk/
+       - For the cake icon.
\ No newline at end of file
diff --git a/doc/manual.sxw b/doc/manual.sxw
deleted file mode 100644 (file)
index 24d30db..0000000
Binary files a/doc/manual.sxw and /dev/null differ
index 28c346a..d44a323 100755 (executable)
 ########################################################################
 
 $EM_CONF[$_EXTKEY] = array(
-       'title' => 'Typoscript Service for Calendar Base',
-       'description' => 'Connects external tables to Calendar Base through a Typoscript-based configuration.',
+       'title' => 'TypoScript Service for Calendar Base',
+       'description' => 'Connects external tables to Calendar Base through a TypoScript-based configuration.',
        'category' => 'plugin',
        'shy' => 0,
-       'dependencies' => 'cal',
-       'conflicts' => '',
        'priority' => '',
        'loadOrder' => '',
        'module' => '',
        'state' => 'stable',
        'uploadfolder' => 0,
        'createDirs' => '',
-       'modify_tables' => '',
        'clearCacheOnLoad' => 0,
-       'lockType' => '',
        'author' => 'Mario Matzulla',
        'author_email' => 'mario@matzullas.de',
-       'author_company' => '',
-       'CGLcompliance' => '',
-       'CGLcompliance_note' => '',
-       'version' => '1.2-dev',
+       'version' => '2.0.0',
        'constraints' => array(
                'depends' => array(
-                       'cal' => '',
+                       'cal' => '1.9.0-',
                ),
-               'conflicts' => array(
-               ),
-               'suggests' => array(
-               ),
-       ),
-       '_md5_values_when_last_written' => 'a:23:{s:9:"ChangeLog";s:4:"c4c3";s:12:"ext_icon.gif";s:4:"35b9";s:17:"ext_localconf.php";s:4:"e718";s:14:"ext_tables.php";s:4:"a833";s:22:"icon_tx_cal_events.gif";s:4:"475a";s:13:"locallang.xml";s:4:"6ad6";s:14:"doc/manual.sxw";s:4:"6289";s:31:"model/class.tx_cal_ts_model.php";s:4:"eee1";s:44:"service/class.tx_cal_ts_category_service.php";s:4:"03fa";s:35:"service/class.tx_cal_ts_service.php";s:4:"96ff";s:29:"static/birthday/constants.txt";s:4:"4569";s:25:"static/birthday/setup.txt";s:4:"7424";s:34:"static/mbl_newsevent/constants.txt";s:4:"77f9";s:30:"static/mbl_newsevent/setup.txt";s:4:"916c";s:28:"static/tt_news/constants.txt";s:4:"bd51";s:24:"static/tt_news/setup.txt";s:4:"a678";s:32:"static/tt_products/constants.txt";s:4:"af8e";s:28:"static/tt_products/setup.txt";s:4:"3347";s:32:"static/tx_seminars/constants.txt";s:4:"6a19";s:28:"static/tx_seminars/setup.txt";s:4:"fb77";s:32:"static/wec_sermons/constants.txt";s:4:"a1ff";s:28:"static/wec_sermons/setup.txt";s:4:"96d2";s:16:"template/ts.tmpl";s:4:"477f";}',
-       'suggests' => array(
        ),
 );
 
index e5d29f8..6f46b1d 100755 (executable)
@@ -1,35 +1,43 @@
-<?php\r
-if (!defined ('TYPO3_MODE'))   die ('Access denied.');\r
-\r
-/**\r
- *  Both views and model are provided using TYPO3 services.  Models should be\r
- *  of the type 'cal_model' with a an extension key specific to that model.\r
- *  Views can be of two types.  The 'cal_view' type is used for views that \r
- *  display multiple days.  Within this type, subtypes for 'single', 'day', \r
- *  'week', 'month', 'year', and 'custom' are available.  The default views \r
- *  each have the key 'default'.  Custom views tied to a specific model should \r
- *  have service keys identical to the key of that model.\r
- */\r
-\r
-/* Cal Example Concrete Model */\r
-t3lib_extMgm::addService($_EXTKEY,  'cal_event_model' /* sv type */,  'tx_cal_ts_service' /* sv key */,\r
-       array(\r
-               'title' => 'Cal Example Model', 'description' => '', 'subtype' => 'event',\r
-               'available' => TRUE, 'priority' => 50, 'quality' => 50,\r
-               'os' => '', 'exec' => '',\r
-               'classFile' => t3lib_extMgm::extPath($_EXTKEY).'service/class.tx_cal_ts_service.php',\r
-               'className' => 'tx_cal_ts_service',\r
-       )\r
-);\r
-\r
-/* Cal ttnews category Model */\r
-t3lib_extMgm::addService($_EXTKEY,  'cal_category_model' /* sv type */,  'tx_cal_ts_category_service' /* sv key */,\r
-       array(\r
-               'title' => 'Cal Example Model', 'description' => '', 'subtype' => 'category',\r
-               'available' => TRUE, 'priority' => 50, 'quality' => 50,\r
-               'os' => '', 'exec' => '',\r
-               'classFile' => t3lib_extMgm::extPath($_EXTKEY).'service/class.tx_cal_ts_category_service.php',\r
-               'className' => 'tx_cal_ts_category_service',\r
-       )\r
-);\r
+<?php
+if (! defined ( 'TYPO3_MODE' ))
+       die ( 'Access denied.' );
+
+/**
+ * Both views and model are provided using TYPO3 services.
+ * Models should be
+ * of the type 'cal_model' with a an extension key specific to that model.
+ * Views can be of two types. The 'cal_view' type is used for views that
+ * display multiple days. Within this type, subtypes for 'single', 'day',
+ * 'week', 'month', 'year', and 'custom' are available. The default views
+ * each have the key 'default'. Custom views tied to a specific model should
+ * have service keys identical to the key of that model.
+ */
+       
+/* Cal Example Concrete Model */
+\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addService ( $_EXTKEY, 'cal_event_model' /* sv type */,  'tx_cal_ts_service' /* sv key */,\r
+       array (
+               'title' => 'TypoScript Service for cal',
+               'description' => '',
+               'subtype' => 'event',
+               'available' => TRUE,
+               'priority' => 50,
+               'quality' => 50,
+               'os' => '',
+               'exec' => '',
+               'className' => 'TYPO3\\CMS\\CalTsService\\Service\\TypoScriptService' 
+) );
+
+/* Cal ttnews category Model */
+\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addService ( $_EXTKEY, 'cal_category_model' /* sv type */,  'tx_cal_ts_category_service' /* sv key */,\r
+       array (
+               'title' => 'TypoScript Category Service for cal',
+               'description' => '',
+               'subtype' => 'category',
+               'available' => TRUE,
+               'priority' => 50,
+               'quality' => 50,
+               'os' => '',
+               'exec' => '',
+               'className' => 'TYPO3\\CMS\\CalTsService\\Service\\CategoryService' 
+) );
 ?>
\ No newline at end of file
index 1afae85..8685619 100755 (executable)
@@ -1,26 +1,5 @@
-<?php\r
-if (!defined ('TYPO3_MODE'))   die ('Access denied.');\r
-\r
-if(t3lib_extMgm::isLoaded('tt_news')) {\r
-       t3lib_extMgm::addStaticFile($_EXTKEY,'static/tt_news/','tt_news');      \r
-}\r
-\r
-if(t3lib_extMgm::isLoaded('seminars')) {\r
-       t3lib_extMgm::addStaticFile($_EXTKEY,'static/tx_seminars/','tx_seminars');      \r
-}\r
-\r
-if(t3lib_extMgm::isLoaded('tt_products')) {\r
-       t3lib_extMgm::addStaticFile($_EXTKEY,'static/tt_products/','tt_products');      \r
-}\r
-\r
-if(t3lib_extMgm::isLoaded('wec_sermons')) {\r
-       t3lib_extMgm::addStaticFile($_EXTKEY,'static/wec_sermons/','wec_sermons');      \r
-}\r
-\r
-if(t3lib_extMgm::isLoaded('mbl_newsevent')) {\r
-       t3lib_extMgm::addStaticFile($_EXTKEY,'static/mbl_newsevent/','mbl_newsevent');\r
-}\r
-\r
-t3lib_extMgm::addStaticFile($_EXTKEY,'static/birthday/','birthday');\r
-\r
+<?php
+if (! defined ( 'TYPO3_MODE' ))
+       die ( 'Access denied.' );
+
 ?>
\ No newline at end of file
diff --git a/locallang.xml b/locallang.xml
deleted file mode 100755 (executable)
index 9ccf467..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<T3locallang>
-       <meta type="array">
-               <description></description>
-               <type>module</type>
-               <csh_table></csh_table>
-               <labelContext type="array">
-               </labelContext>
-       </meta>
-       <data type="array">
-               <languageKey index="default" type="array">
-                       <label index="l_birthday">Birthday</label>
-               </languageKey>
-               <languageKey index="de" type="array">
-                       <label index="l_birthday">Geburtstag von</label>
-               </languageKey>
-       </data>
-       <orig_text>
-       </orig_text>
-</T3locallang>
\ No newline at end of file
diff --git a/model/class.tx_cal_ts_model.php b/model/class.tx_cal_ts_model.php
deleted file mode 100644 (file)
index b28ed96..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2004 
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-
-require_once(t3lib_extMgm::extPath('cal').'model/class.tx_cal_phpicalendar_model.php');
-
-/**
- * A concrete model for the calendar.
- *
- * @author Mario Matzulla <mario(at)matzullas.de>
- */
-class tx_cal_ts_model extends tx_cal_phpicalendar_model {
-       
-       var $thisConf;
-       
-       function tx_cal_ts_model($row, $isException, $serviceKey, $conf=Array()){
-               $this->tx_cal_phpicalendar_model($row, false, $serviceKey);
-               $this->controller = &tx_cal_registry::Registry('basic','controller');
-               $this->thisConf = $conf;
-               $this->conf['view.'][$this->conf['view'].'.']['event.'] = array_merge($this->conf['view.'][$this->conf['view'].'.']['event.'],(array)$conf[$this->conf['view'].'.']['event.']);
-               $this->isException = $isException;      
-               $this->createEvent($row, $isException);
-               $this->setType('tx_cal_ts_service');
-       }
-       
-       # @override
-       function tx_cal_base_model(&$serviceKey){
-               $this->conf = tx_cal_registry::Registry('basic','conf');
-               $this->serviceKey = &$serviceKey;
-       }
-       
-       function createEvent($row){
-               $this->setType($this->serviceKey);
-               $this->row = $row;
-               $this->setUid($row['uid']);
-               $this->setAllday($row['allday']);
-               $this->setExtUrl($row['ext_url']);
-
-               $start = new tx_cal_date(gmdate('Ymd',$row[$this->thisConf['startTimeField']]));
-               $start->setTZbyId('UTC');
-               $start->setMinute(gmdate('i',$row[$this->thisConf['startTimeField']]));
-               $start->setHour(gmdate('H',$row[$this->thisConf['startTimeField']]));
-               
-               if(!$row[$this->thisConf['endTimeField']] && $this->thisConf['defaultLength'] && !$this->isAllday()){
-                       $end = new tx_cal_date();
-                       $end->copy($start);
-                       $end->addSeconds($this->thisConf['defaultLength']*60);
-               }else{
-                       $end = new tx_cal_date(gmdate('Ymd',$row[$this->thisConf['endTimeField']]));
-                       $end->setTZbyId('UTC');
-                       $end->setMinute(gmdate('i',$row[$this->thisConf['endTimeField']]));
-                       $end->setHour(gmdate('H',$row[$this->thisConf['endTimeField']]));
-               }
-               
-               $this->setStart($start);
-               $this->setEnd($end);
-               
-               $this->setFreq($row['freq']);
-               $this->setByDay($row['byday']);
-               $this->setByMonthDay($row['bymonthday']);
-               $this->setByMonth($row['bymonth']);
-               if(isset($row['until'])){
-                       $until = new tx_cal_date($row['until']);
-                       $until->setTZbyId('UTC');
-                       $this->setUntil($until);
-               }       
-               foreach((Array)$this->thisConf['fieldMapping.'] as $field => $value){
-                       switch ($field){
-                               case 'image':
-                                       $this->setImage(t3lib_div::trimExplode(',',$row[$this->thisConf['fieldMapping.']['image']]));
-                                       break;
-                               default:
-                                       $funcName = 'set'.ucwords(strtolower($field));
-                                       if(method_exists($this,$funcName)) {
-                                               $this->$funcName($row[$this->thisConf['fieldMapping.'][$field]]);
-                                       }
-                       }
-               }
-               
-               $this->externalPlugin = $this->thisConf['externalPlugin'];
-       }
-       
-       function getCategoryHeaderStyle(&$template, &$rems, &$sims, $view){
-               $sims['###HEADERSTYLE###'] = $this->thisConf['headerStyle'];
-       }
-       
-       function getCategoryBodyStyle(&$template, &$rems, &$sims, $view){
-               $sims['###BODYSTYLE###'] = $this->thisConf['bodyStyle'];
-       }
-       
-       /**
-         * Returns the headerstyle name
-         */
-        function getHeaderStyle(){
-               return $this->thisConf['headerStyle'];
-        }
-        
-        /**
-         * Returns the bodystyle name
-         */
-        function getBodyStyle(){
-               return $this->thisConf['bodyStyle'];
-        }
-
-       function renderEventForDay() {
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT_DAY###');
-       }
-
-       function renderEventForWeek() {
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT_WEEK###');
-       }
-
-       function renderEventForAllDay() {
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT_ALLDAY###');
-       }
-
-       function renderEventForMonth() {
-               if($this->isAllday()){
-                       return $this->renderEventFor('MONTH_ALLDAY');
-               }
-               return $this->renderEventFor('MONTH');
-       }
-       
-       function renderEventForYear() {
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT_YEAR###');
-       }
-
-       function renderEvent() {
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT###');
-       }
-       
-       function renderTomorrowsEvent() {
-               $this->isTomorrow = true;
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT_TOMORROW###');
-       }
-       
-       function renderEventFor($viewType){
-               return $this->fillTemplate('###TEMPLATE_TS_EVENT_'.strtoupper($viewType).'###');
-       }
-       
-       function fillTemplate($subpartMarker){
-#              $this->controller->piVars['ts_table'] = $this->thisConf['table'];
-               $cObj = &$this->controller->cObj;
-               $page = $cObj->fileResource($this->thisConf['template']);
-               if ($page == '') {
-                       return '<h3>calendar: no template file found:</h3>' . $this->thisConf['template'];
-               }
-               $page = $cObj->getSubpart($page,$subpartMarker);
-               $rems = array ();
-               $sims = array ();
-               $wrapped = array();
-               $this->getMarker($page, $sims, $rems, $wrapped);
-#              unset($this->controller->piVars['ts_table']);
-               $return = $this->finish($cObj->substituteMarkerArrayCached($page, $sims, $rems, $wrapped));
-               return $return;
-       }
-       
-       function getSubheader(){
-               return $this->subheader;
-       }
-       
-       function setSubheader($s){
-               $this->subheader = $s;
-       }
-       
-       function getUntil(){
-               if(!isset($this->until) || $this->until==0){
-                       return new tx_cal_date('00000101');
-               }
-               return $this->until;    
-       }
-       
-       function getCategory(){
-               return $this->category;
-       }
-       
-       function setCategory($cat){
-               $this->category = $cat;
-       }
-       
-       function getImageMarker(& $template, & $sims, & $rems, & $wrapped, $view){
-               $tempConfig = $this->conf['view.'][$view.'.'][$this->objectType.'.']['image.'];
-               $this->conf['view.'][$view.'.'][$this->objectType.'.']['image.'] = $this->thisConf[$this->conf['view'].'.'][$this->objectType.'.']['image.'];
-               parent::getImageMarker($template, $sims, $rems, $wrapped, $view);
-               $this->conf['view.'][$view.'.'][$this->objectType.'.']['image.'] = $tempConfig;
-       }
-       
-       /**
-        * Returns the Link to the external plugin
-        */
-       function getExternalPluginEventLink() {
-               $cObj = &$this->controller->cObj;
-               if ($this->ext_url) {
-                       return $this->controller->pi_linkTP(
-                               '|',
-                               array(),
-                               0,
-                               $this->ext_url
-                       );
-               }
-               $params = $cObj->stdWrap($this->thisConf['externalPlugin.']['additionalParams'],$this->thisConf['externalPlugin.']['additionalParams.']);
-               $rems = array ();
-               $sims = array ();
-               $wrapped = array();
-               $this->getMarker($params, $rems, $sims, $wrapped);
-               $params = $cObj->substituteMarkerArrayCached($params, $sims, $rems, $wrapped);
-               $paramArray = t3lib_div::trimExplode('|',$params,1);
-               $urlParams = array();
-               foreach($paramArray as $parameter){
-                       $valArray = t3lib_div::trimExplode('=',$parameter,1);
-                       $urlParams[$valArray[0]]=$valArray[1];
-               }
-
-               return $this->controller->pi_linkTP(
-                       '|',
-                       $urlParams,
-                       $this->conf['cache'],
-                       $this->thisConf['externalPlugin.']['singleViewPid']
-               );
-               
-       }
-       
-       function addAdditionalSingleViewUrlParams(&$currentParams){
-               $currentParams['ts_table'] = str_replace('.','',$this->row['ts_key']);
-       }
-       
-       function cloneEvent() {
-               $event = t3lib_div :: makeInstance(get_class($this), $this->getValuesAsArray(), $this->isException, $this->getType(), $this->thisConf);
-               $event->setIsClone(true);
-               return $event;
-       }
-}
-
-
-
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cal_ts_service/model/class.tx_cal_ts_model.php'])     {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cal_ts_service/model/class.tx_cal_ts_model.php']);
-}
-?>
\ No newline at end of file
diff --git a/service/class.tx_cal_ts_category_service.php b/service/class.tx_cal_ts_category_service.php
deleted file mode 100755 (executable)
index 2edc741..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/***************************************************************
-* Copyright notice
-*
-* (c) 2005 Foundation for Evangelism
-* All rights reserved
-*
-* This file is part of the Web-Empowered Church (WEC)
-* (http://webempoweredchurch.org) ministry of the Foundation for Evangelism
-* (http://evangelize.org). The WEC is developing TYPO3-based
-* (http://typo3.org) free software for churches around the world. Our desire
-* is to use the Internet to help offer new life through Jesus Christ. Please
-* see http://WebEmpoweredChurch.org/Jesus.
-*
-* You can redistribute this file and/or modify it under the terms of the
-* GNU General Public License as published by the Free Software Foundation;
-* either version 2 of the License, or (at your option) any later version.
-*
-* The GNU General Public License can be found at
-* http://www.gnu.org/copyleft/gpl.html.
-*
-* This file is distributed in the hope that it will be useful for ministry,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* This copyright notice MUST APPEAR in all copies of the file!
-***************************************************************/
-
-require_once(t3lib_extMgm::extPath('cal').'service/class.tx_cal_category_service.php');
-
-/**
- * Base model for the category.  Provides basic model functionality that other
- * models can use or override by extending the class.  
- *
- * @author Mario Matzulla <mario@matzullas.de>
- * @package TYPO3
- * @subpackage cal
- */
-class tx_cal_ts_category_service extends tx_cal_category_service {
-       
-       var $key = '';
-       
-       function tx_cal_ts_category_service(){
-               $this->tx_cal_category_service();
-       }
-       
-       function getCategorySearchString($pidList, $includePublic){
-               return '';
-               if($this->conf['category']!=''){
-                       $categorySearchString .= ' AND tt_news_cat_mm.uid_foreign IN ('.$this->conf['category'].')';
-               }
-               return $categorySearchString;
-       }
-       
-       /**
-        * Search for categories
-        */
-       function getCategoryArray($pidList, &$categoryArrayToBeFilled, $showPublicCategories=true){
-               
-               if($this->conf['display.']){
-                       foreach($this->conf['display.'] as $this->key => $conf){
-                               $this->thisConf = $conf;
-                               $this->categoryArrayByUid = array();
-                               $this->categoryArrayByEventUid = array();
-                               $this->categoryArrayByCalendarUid = array();
-                               $this->_getCategoryArray($pidList, $showPublicCategories);
-                               $categoryArrayToBeFilled[$this->key] = array($this->categoryArrayByUid,$this->categoryArrayByEventUid,$this->categoryArrayByCalendarUid);
-                       }
-               }
-       }
-               
-       /**
-        * Search for categories
-        */
-       function _getCategoryArray($pidList, $showPublicCategories=true){
-               if($this->rightsObj->isLoggedIn() && $showPublicCategories){
-                       $feUserId = $this->rightsObj->getUserId();
-               }else if($this->rightsObj->isLoggedIn()){
-                       $feUserId = $this->rightsObj->getUserId();
-               }
-
-               $categoryIds = array();
-               $dbIds = array();
-               $fileIds = array();
-               $extUrlIds = array();
-               if($this->thisConf['cat_select.']){
-                       $this->thisConf['cat_select.']['pidInList'] = $pidList;\r
-                       if($this->thisConf['enableLocalizationAndVersioningCat']){\r
-                               $this->thisConf['cat_select.']['andWhere'] .= $this->getAdditionalWhereForLocalizationAndVersioning($this->thisConf['catTable']);\r
-                       }
-                       $queryArray = $this->cObj->getQuery($this->thisConf['catTable'],$this->thisConf['cat_select.'],true);
-                       $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-                       while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                               if($this->thisConf['enableLocalizationAndVersioningCat']){\r
-                                       if ($GLOBALS['TSFE']->sys_language_content) {\r
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['catTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');\r
-                                       }\r
-                                       if ($this->versioningEnabled) {\r
-                                               // get workspaces Overlay\r
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['catTable'],$row);\r
-                                       }\r
-                               }\r
-                               if(!$this->categoryArrayByUid[$row['uid']]){
-                                       $category = $this->createCategory($row);
-                                       $category->setHeaderStyle($this->thisConf['headerStyle']);
-                                       $category->setBodyStyle($this->thisConf['bodyStyle']);
-                                       if($row['uid_local']){
-                                               $this->categoryArrayByEventUid[$row['uid_local']] = $category;
-                                       }
-                                       $this->categoryArrayByUid[$row['uid']] = $category;
-                                       $this->categoryArrayByCalendarUid['0'.'###'.$this->thisConf['legendDescription']][] = $category->getUid();
-                               }
-                       }\r
-               }
-               return;
-       }
-       
-       function createCategory($row){
-               return t3lib_div::makeInstance('tx_cal_category_model',$row, $this->getServiceKey());
-       }
-       
-
-}
-
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cal_ts_service/service/class.tx_cal_ts_category_service.php'])        {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cal_ts_service/service/class.tx_cal_ts_category_service.php']);
-}
-?>
\ No newline at end of file
diff --git a/service/class.tx_cal_ts_service.php b/service/class.tx_cal_ts_service.php
deleted file mode 100755 (executable)
index 9241e6b..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-<?php
-/***************************************************************
-* Copyright notice
-*
-* (c) 2005 All rights reserved
-*
-* You can redistribute this file and/or modify it under the terms of the
-* GNU General Public License as published by the Free Software Foundation;
-* either version 2 of the License, or (at your option) any later version.
-*
-* The GNU General Public License can be found at
-* http://www.gnu.org/copyleft/gpl.html.
-*
-* This file is distributed in the hope that it will be useful for ministry,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* This copyright notice MUST APPEAR in all copies of the file!
-***************************************************************/
-
-require_once(t3lib_extMgm::extPath('cal').'service/class.tx_cal_event_service.php');
-require_once(t3lib_extMgm::extPath('cal_ts_service').'model/class.tx_cal_ts_model.php');
-require_once(t3lib_extMgm::extPath('cal').'controller/class.tx_cal_functions.php');
-
-
-/**
- * This model fetches all tt_news between a start- and endtime or by uid.
- *
- * @author Mario Matzulla <mario@matzullas.de>
- * @package TYPO3
- * @subpackage cal
- */
-class tx_cal_ts_service extends tx_cal_event_service {
-
-       var $thisConf;
-       var $key = '';
-       
-       /**
-        *  Finds all events.
-        *
-        *  @return             array                   The array of events represented by the model.
-        */
-       function findAllWithin($start_date, $end_date, $pidList) {
-               $this->setStartAndEndPoint($start_date, $end_date);
-               $events = array();
-               if($this->conf['display.']){
-                       foreach($this->conf['display.'] as $this->key => $conf){
-                               $this->thisConf = $conf;
-                               $eventsFromService = $this->_findAllWithin($start_date->getDate(DATE_FORMAT_UNIXTIME), $end_date->getDate(DATE_FORMAT_UNIXTIME), $pidList);
-                               $this->mergeEvents($events,$eventsFromService);
-                       }
-               }
-
-               return $events;
-       }
-       
-       function _findAllWithin($start_date, $end_date, $pidList) {
-               $events = array();
-               
-               // with categories
-               $service = &$this->getCategoryService();
-               $categories = array();
-               $service->getCategoryArray($pidList, $categories);
-               $processedUids = array(0);
-               $where = $this->cObj->substituteMarkerArrayCached($this->thisConf['findAllWithinWhere'], array('###START###'=>$start_date,'###END###'=>$end_date), array(), array());
-               if($this->thisConf['enableLocalizationAndVersioning']){
-                       $where .= $this->getAdditionalWhereForLocalizationAndVersioning($this->thisConf['pidTable']);
-               }
-               if($this->thisConf['event_select_with_cat.']){
-                       $this->thisConf['event_select_with_cat.']['pidInList'] = $pidList;
-                       $this->thisConf['event_select_with_cat.']['andWhere'] = $where;
-                       $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select_with_cat.'],true);
-       
-                       $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-                       
-                       $event = null;
-                       while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                               if(!in_array($row['uid'],$processedUids)){
-                                       if($this->thisConf['enableLocalizationAndVersioning']){
-                                               if ($GLOBALS['TSFE']->sys_language_content) {
-                                                       $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                               }
-                                               if ($this->versioningEnabled) {
-                                                       // get workspaces Overlay
-                                                       $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                               }
-                                       }
-                                       $row['ts_key'] = $this->key;
-                                       $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                                       if($this->thisConf['endTimeField']){
-                                               $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                                       }
-                                       $event = $this->createEvent($row, false);
-                                       if ($this->extConf['useNewRecurringModel']){
-                                               $this->recurringEvent($event);
-                                               $events_tmp = $this->getRecurringEventsFromIndex($event);
-                                       } else {
-                                               $events_tmp = $this->recurringEvent($event);
-                                       }
-                                       if(!empty($events)){
-                                               $this->mergeEvents($events,$events_tmp);
-                                       }else{
-                                               $events = $events_tmp;
-                                       }
-                                       $processedUids[] = $row['uid'];
-                               }
-                               if($categories[$this->key][0][$row['uid_foreign']]){
-                                       $event->addCategory($categories[$this->key][0][$row['uid_foreign']]);
-                               }
-                       }
-               }
-               // without categories
-               $this->thisConf['event_select.']['pidInList'] = $pidList;
-               $this->thisConf['event_select.']['andWhere'] = $where.' AND '.$this->thisConf['pidTable'].'.uid NOT IN ('.implode(',',$processedUids).')';
-               $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select.'],true);
-               $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-               $processedUids = array();
-
-               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                       if(!in_array($row['uid'],$processedUids)){
-                               if($this->thisConf['enableLocalizationAndVersioning']){
-                                       if ($GLOBALS['TSFE']->sys_language_content) {
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                       }
-                                       if ($this->versioningEnabled) {
-                                               // get workspaces Overlay
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                       }
-                               }
-                               $row['ts_key'] = $this->key;
-                               $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                               if($this->thisConf['endTimeField']){
-                                       $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                               }
-                               $event = $this->createEvent($row, false);
-
-                               if ($this->extConf['useNewRecurringModel']){
-                                       $this->recurringEvent($event);
-                                       $events_tmp = $this->getRecurringEventsFromIndex($event);
-                               } else {
-                                       $events_tmp = $this->recurringEvent($event);
-                               }
-                               if(!empty($events)){
-                                       $this->mergeEvents($events,$events_tmp);
-                               }else{
-                                       $events = $events_tmp;
-                               }
-                               $processedUids[] = $row['uid'];
-                       }
-               }
-               return $events;
-       }
-       
-       /**
-        *  Finds all events.
-        *
-        *  @return             array                   The array of events represented by the model.
-        */
-       function findAll($pidList) {
-               $events = array();
-               if($this->conf['display.']){
-                       foreach($this->conf['display.'] as $this->key => $conf){
-                               $this->thisConf = $conf;
-                               $eventsFromService = $this->_findAll($pidList);
-                               $this->mergeEvents($events,$eventsFromService);
-                       }
-               }
-               return $events;
-       }
-       
-       function _findAll($pidList){
-               $events = array();
-               
-               // Find records with categories
-               $service = &$this->getCategoryService();
-               $categories = array();
-               $service->getCategoryArray($pidList, $categories);
-               
-               $where = $this->cObj->substituteMarkerArrayCached($this->thisConf['findAll'], array('###START###'=>$start_date,'###END###'=>$end_date), array(), array());
-               if($this->thisConf['enableLocalizationAndVersioning']){
-                       $where .= $this->getAdditionalWhereForLocalizationAndVersioning($this->thisConf['pidTable']);
-               }
-               $this->thisConf['event_select_with_cat.']['pidInList'] = $pidList;
-               $this->thisConf['event_select_with_cat.']['andWhere'] = $where;
-               $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select_with_cat.'],true);
-               $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-               $processedUids = array(0);
-               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                       if(!in_array($row['uid'],$processedUids)){
-                               if($this->thisConf['enableLocalizationAndVersioning']){
-                                       if ($GLOBALS['TSFE']->sys_language_content) {
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                       }
-                                       if ($this->versioningEnabled) {
-                                               // get workspaces Overlay
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                       }
-                               }
-                               $row['ts_key'] = $this->key;
-                               $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                               if($this->thisConf['endTimeField']){
-                                       $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                               }
-                               $event = $this->createEvent($row, false);
-                               $events[gmdate('Ymd',$row[$this->thisConf['startTimeField']])][(gmdate('Hi',$row[$this->thisConf['startTimeField']]+$this->thisConf['defaultLength']))][$row['uid']] = $event;
-                               $processedUids[] = $row['uid'];
-                       }
-                       if($categories[$this->key][0][$row['uid_foreign']]){
-                               $event->addCategory($categories[$this->key][0][$row['uid_foreign']]);
-                       }
-               }
-               
-               // Find records without categories
-               $this->thisConf['event_select.']['pidInList'] = $pidList;
-               $this->thisConf['event_select.']['andWhere'] = ($where!=''?$where.' AND ':'').$this->thisConf['pidTable'].'.uid NOT IN ('.implode(',',$processedUids).')';
-               $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select.'],true);
-
-               $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-               $processedUids = array();
-               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                       if(!in_array($row['uid'],$processedUids)){
-                               if($this->thisConf['enableLocalizationAndVersioning']){
-                                       if ($GLOBALS['TSFE']->sys_language_content) {
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                       }
-                                       if ($this->versioningEnabled) {
-                                               // get workspaces Overlay
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                       }
-                               }
-                               $row['ts_key'] = $this->key;
-                               $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                               if($this->thisConf['endTimeField']){
-                                       $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                               }
-                               $events[gmdate('Ymd',$row[$this->thisConf['startTimeField']])][(gmdate('Hi',$row[$this->thisConf['startTimeField']]+$this->thisConf['defaultLength']))][$row['uid']] = $this->createEvent($row, false);
-                               $processedUids[] = $row['uid'];
-                       }
-               }
-               
-               return $events;
-       }
-       
-       /**
-        *  Finds a single event.
-        *
-        *  @return             object                  The event represented by the model.
-        */     
-       function find($uid, $pidList) {
-               $this->key = $this->controller->piVars['ts_table'].'.';
-               $service = &$this->getCategoryService();
-               $categories = array();
-               $service->getCategoryArray($pidList, $categories);
-               if($this->conf['display.'][$this->controller->piVars['ts_table'].'.']){
-                       $this->thisConf = $this->conf['display.'][$this->controller->piVars['ts_table'].'.'];
-                       $where = $this->cObj->substituteMarkerArrayCached($this->thisConf['findWhere'], array('###START###'=>$start_date,'###END###'=>$end_date,'###UID###'=>$this->controller->piVars['uid']), array(), array());
-                       if($this->thisConf['enableLocalizationAndVersioning']){
-                               $where .= $this->getAdditionalWhereForLocalizationAndVersioning($this->thisConf['pidTable']);
-                       }
-                       // find with
-                       $this->thisConf['event_select_with_cat.']['pidInList'] = $pidList;
-                       $this->thisConf['event_select_with_cat.']['andWhere'] = $where;
-                       $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select_with_cat.'],true);
-                       $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-                       $event = null;
-                       $processedUids = array(0);
-                       while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) { 
-                               if(!in_array($row['uid'],$processedUids)){
-                                       if($this->thisConf['enableLocalizationAndVersioning']){
-                                               if ($GLOBALS['TSFE']->sys_language_content) {
-                                                       $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                               }
-                                               if ($this->versioningEnabled) {
-                                                       // get workspaces Overlay
-                                                       $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                               }
-                                       }
-                                       $row['ts_key'] = $this->key;
-                                       $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                                       if($this->thisConf['endTimeField']){
-                                               $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                                       }
-                                       $event = $this->createEvent($row, false);
-                                       $processedUids[] = $row['uid'];
-                               }
-                               if($categories[$this->key][0][$row['uid_foreign']]){
-                                       $event->addCategory($categories[$this->key][0][$row['uid_foreign']]);
-                               }
-                       }
-                       if($event){
-                               return $event;
-                       }
-                       
-                       // find without
-                       $this->thisConf['event_select.']['pidInList'] = $pidList;
-                       $this->thisConf['event_select.']['andWhere'] = $where.' AND '.$this->thisConf['pidTable'].'.uid NOT IN ('.implode(',',$processedUids).')';
-                       $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select.'],true);
-                       $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-                       $events = array();
-                       $processedUids = array();
-                       while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) { 
-                               if($this->thisConf['enableLocalizationAndVersioning']){
-                                       if ($GLOBALS['TSFE']->sys_language_content) {
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                       }
-                                       if ($this->versioningEnabled) {
-                                               // get workspaces Overlay
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                       }
-                               }
-                               $row['ts_key'] = $this->key;
-                               $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                               if($this->thisConf['endTimeField']){
-                                       $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                               }
-                               $event = $this->createEvent($row, false);
-                       }
-                       return $event;
-               }
-               return null;
-       }
-       
-       function createEvent($row, $isException){
-               return t3lib_div :: makeInstance('tx_cal_ts_model',$row, $isException, $this->getServiceKey(), $this->thisConf);
-       }
-
-       
-       function search($pidList='', $starttime, $endtime, $searchword, $locationIds){
-               $events = array();
-               if($this->conf['display.']){
-                       foreach($this->conf['display.'] as $this->key => $conf){
-                               $this->thisConf = $conf;
-                               $eventsFromService = $this->_search($pidList, $starttime, $endtime, $searchword, $locationIds);
-                               $this->mergeEvents($events,$eventsFromService);
-                       }
-               }
-               return $events;
-       }
-       
-       function _search($pidList='', $starttime, $endtime, $searchword, $locationIds){
-               $events=array();
-               $where = '';
-               if($searchword!=''){
-                       $where = $this->searchWhere($searchword);
-               }
-               
-               $events = array();
-               // Find records with categories
-               $service = &$this->getCategoryService();
-               $categories = array();
-               $service->getCategoryArray($pidList, $categories);
-               
-               if($this->thisConf['enableLocalizationAndVersioning']){
-                       $where .= $this->getAdditionalWhereForLocalizationAndVersioning($this->thisConf['pidTable']);
-               }
-               $this->thisConf['event_select_with_cat.']['pidInList'] = $pidList;
-               $this->thisConf['event_select_with_cat.']['where'] = '1=1'.$where;
-               $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select_with_cat.'],true);
-               $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-               $processedUids = array(0);
-               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                       if(!in_array($row['uid'],$processedUids)){
-                               if($this->thisConf['enableLocalizationAndVersioning']){
-                                       if ($GLOBALS['TSFE']->sys_language_content) {
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                       }
-                                       if ($this->versioningEnabled) {
-                                               // get workspaces Overlay
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                       }
-                               }
-                               $row['ts_key'] = $this->key;
-                               $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                               if($this->thisConf['endTimeField']){
-                                       $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                               }
-                               $event = $this->createEvent($row, false);
-                               $events[gmdate('Ymd',$row[$this->thisConf['startTimeField']])][(gmdate('Hi',$row[$this->thisConf['startTimeField']]+$this->thisConf['defaultLength']))][$row['uid']] = $event;
-                               $processedUids[] = $row['uid'];
-                       }
-                       if($categories[$this->key][0][$row['uid_foreign']]){
-                               $event->addCategory($categories[$this->key][0][$row['uid_foreign']]);
-                       }
-               }
-               
-               // Find records without categories
-               $this->thisConf['event_select.']['pidInList'] = $pidList;
-               $this->thisConf['event_select.']['where'] = '1=1 '.$where.' AND '.$this->thisConf['pidTable'].'.uid NOT IN ('.implode(',',$processedUids).')';
-               $queryArray = $this->cObj->getQuery($this->thisConf['pidTable'],$this->thisConf['event_select.'],true);
-
-               $result = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArray);
-               $processedUids = array();
-               while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
-                       if(!in_array($row['uid'],$processedUids)){
-                               if($this->thisConf['enableLocalizationAndVersioning']){
-                                       if ($GLOBALS['TSFE']->sys_language_content) {
-                                               $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay($this->thisConf['pidTable'], $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL, '');
-                                       }
-                                       if ($this->versioningEnabled) {
-                                               // get workspaces Overlay
-                                               $GLOBALS['TSFE']->sys_page->versionOL($this->thisConf['pidTable'],$row);
-                                       }
-                               }
-                               $row['ts_key'] = $this->key;
-                               $row[$this->thisConf['startTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['startTimeField']]);
-                               if($this->thisConf['endTimeField']){
-                                       $row[$this->thisConf['endTimeField']] += tx_cal_functions::strtotimeOffset($row[$this->thisConf['endTimeField']]);
-                               }
-                               $events[gmdate('Ymd',$row[$this->thisConf['startTimeField']])][(gmdate('Hi',$row[$this->thisConf['startTimeField']]+$this->thisConf['defaultLength']))][$row['uid']] = $this->createEvent($row, false);
-                               $processedUids[] = $row['uid'];
-                       }
-               }
-               
-               return $events;
-       }
-       
-       /**
-        * Generates a search where clause.
-        *
-        * @param       string          $sw: searchword(s)
-        * @return      string          querypart
-        */
-       function searchWhere($sw) {
-               $where = $this->cObj->searchWhere($sw, $this->thisConf['search.']['searchEventFieldList'], $this->thisConf['table']);
-               return $where;
-       }
-       
-       function &getCategoryService(){
-               if(is_object($this->categoryService)){
-                       return $this->categoryService;  
-               }
-               require_once(t3lib_extMgm::extPath('cal_ts_service').'service/class.tx_cal_ts_category_service.php');
-               $this->categoryService = & t3lib_div :: makeInstance('tx_cal_ts_category_service');
-               return $this->categoryService;
-       }
-
-}
-
-
-
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cal_ts_service/service/class.tx_cal_ts_service.php']) {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cal_ts_service/service/class.tx_cal_ts_service.php']);
-}
-
-?>
\ No newline at end of file
diff --git a/static/birthday/constants.txt b/static/birthday/constants.txt
deleted file mode 100755 (executable)
index e020bb3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-plugin.tx_cal_controller.display.birthday {
-       # cat=Birthday Service for Calendar Base/general/birthday-1; type=boolean; label=Use external plugin for birthdays?: Show birthdays using a plugin other than Calendar Base.
-       externalPlugin = 0
-
-       # cat=Birthday Service for Calendar Base/general/birthday-2; type=integer; label=Page ID for birthdays: Individual birthdays are shown on this page. Only applicable if external plugins are enabled.   
-       externalPlugin.singleViewPid = 
-       
-       # cat=Birthday Service for Calendar Base/general/birthday-3; type=string; label=URL parameters for birthdays: These parameters are used in addition to the Page ID when linking to an individual birthday.
-       externalPlugin.additionalParams = 
-}
\ No newline at end of file
diff --git a/static/birthday/setup.txt b/static/birthday/setup.txt
deleted file mode 100755 (executable)
index 6a35680..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-plugin.tx_cal_controller {
-       display {
-               birthday {
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = fe_users.*, 'year' as freq, 20301231 as until, 1 as allday
-                       }
-                       
-                       # @description  Configure the table the records come from.
-                       pidTable = fe_users
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = (fe_users.date_of_birth < ###START### OR fe_users.date_of_birth < ###END###) and fe_users.date_of_birth > 0
-                       
-                       # @description  Define the where clause for the ? view.
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAll =
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = fe_users.uid = ###UID###
-                       
-                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
-                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
-                       externalPlugin = {$plugin.tx_cal_controller.display.birthday.externalPlugin}
-                       
-                       externalPlugin {
-                               
-                               # @description  Define the pid for the external plugin single view
-                               singleViewPid = {$plugin.tx_cal_controller.display.birthday.externalPlugin.singleViewPid}
-                               
-                               # @description  Array containing the url parameter to be added to the url
-                               additionalParams = {$plugin.tx_cal_controller.display.birthday.externalPlugin.additionalParams}
-                       }
-                       
-                       # @description  Enables the localization and/or versioning of the result record
-                       enableLocalizationAndVersioning = 0
-
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = date_of_birth
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField = date_of_birth
-                       
-                       # @description  If there is no end time, you can define a default length (in minutes)
-                       defaultLength = 0
-                       
-                       # @description  For a quick and easy integration, map your record fields to the standard event fields
-                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
-                       fieldMapping {
-                               title = name
-                               description = address
-                               location =
-                               organizer =
-                               image = image
-                       }
-                       
-                       # @description  The template to be used with these records
-                       template = EXT:cal_ts_service/template/ts.tmpl
-                       
-                       # @description  The header style class to be used
-                       headerStyle = pink_catheader
-                       
-                       # @description  The body style class to be used
-                       bodyStyle = pink_catbody
-                       
-                       # @description  The title in the legend description for these records
-                       legendDescription = Birthday
-                       
-                       search {
-                               # @description  The fields, which are allowed to be searched through
-                               searchEventFieldList = fe_users.name
-                       }
-                                               
-                       # @description  Retrieving and adopting the event configuration for the event view.
-                       event {
-                               event < plugin.tx_cal_controller.view.event.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/pics/
-                                       alldayTitle.dataWrap = {LLL:EXT:cal_ts_service/locallang.xml:l_birthday}:&nbsp; |
-                               }
-                       }
-                       
-                       month.event < plugin.tx_cal_controller.display.birthday.event.event
-                       week.event < plugin.tx_cal_controller.display.birthday.event.event
-                       day.event < plugin.tx_cal_controller.display.birthday.event.event
-                       list.event < plugin.tx_cal_controller.display.birthday.event.event
-               }
-       }
-}
-
-calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/static/mbl_newsevent/constants.txt b/static/mbl_newsevent/constants.txt
deleted file mode 100755 (executable)
index e829abb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-plugin.tx_cal_controller.display.mbl_newsevent {
-       # cat=News Event Service for Calendar Base/general/mblnewsevent-1; type=boolean; label=Use external plugin for news events?: Show news events using a plugin other than Calendar Base.
-       externalPlugin = 0
-
-       # cat=News Event Service for Calendar Base/general/mblnewsevent-2; type=integer; label=Page ID for news events: Individual news events are shown on this page. Only applicable if external plugins are enabled. 
-       externalPlugin.singleViewPid = 
-       
-       # cat=News Event Service for Calendar Base/general/mblnewsevent-3; type=string; label=URL parameters for news events: These parameters are used in addition to the Page ID when linking to an individual news event.
-       externalPlugin.additionalParams = tx_ttnews[tt_news]=###UID###
-}
\ No newline at end of file
diff --git a/static/mbl_newsevent/setup.txt b/static/mbl_newsevent/setup.txt
deleted file mode 100755 (executable)
index 4c3bf94..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-plugin.tx_cal_controller {
-       display {
-               mbl_newsevent {
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = tt_news.*, tx_mblnewsevent_from + tx_mblnewsevent_fromtime as tx_mblnewsevent_start, tx_mblnewsevent_to + tx_mblnewsevent_totime as tx_mblnewsevent_end
-                       }
-                       
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
-                       event_select_with_cat {
-                               selectFields = tt_news.*,tt_news_cat_mm.uid_foreign, tx_mblnewsevent_from + tx_mblnewsevent_fromtime as tx_mblnewsevent_start, tx_mblnewsevent_to + tx_mblnewsevent_totime as tx_mblnewsevent_end
-                               leftjoin = tt_news_cat_mm ON (tt_news.uid = tt_news_cat_mm.uid_local) JOIN tt_news_cat ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
-                       }
-                       
-                       # @description  Configure the table the records come from.
-                       pidTable = tt_news
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = tt_news.tx_mblnewsevent_isevent = 1 AND ((tx_mblnewsevent_from >= ###START### AND tx_mblnewsevent_from < ###END###) OR (tx_mblnewsevent_to < ###END### AND tx_mblnewsevent_to > ###START###)  OR (tx_mblnewsevent_to > ###END### AND tx_mblnewsevent_from < ###START###))
-                       
-                       # @description  Define the where clause for the ? view.
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAll =
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = tt_news.uid = ###UID### AND tt_news.tx_mblnewsevent_isevent = 1
-                       
-                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
-                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
-                       externalPlugin = {$plugin.tx_cal_controller.display.mbl_newsevent.externalPlugin}
-                       
-                       externalPlugin {
-                               
-                               # @description  Define the pid for the external plugin single view
-                               singleViewPid = {$plugin.tx_cal_controller.display.mbl_newsevent.externalPlugin.singleViewPid}
-                               
-                               # @description  Array containing the url paramter to be added to the url
-                               additionalParams = {$plugin.tx_cal_controller.display.mbl_newsevent.externalPlugin.additionalParams}
-                       }
-                       
-                       # @description  Enables the localization and/or versioning of the result record
-                       enableLocalizationAndVersioning = 0
-
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = tx_mblnewsevent_start
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField = tx_mblnewsevent_end
-                       
-                       # @description  If there is no end time, you can define a default length (in minutes)
-                       defaultLength = 0
-                       
-                       # @description  For a quick and easy integration, map your record fields to the standard event fields
-                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
-                       fieldMapping {
-                               title = title
-                               description = bodytext
-                               location =
-                               organizer =
-                               image = image
-                       }
-                       
-                       # @description  The template to be used with these records
-                       template = EXT:cal_ts_service/template/ts.tmpl
-                       
-                       # @description  The header style class to be used
-                       headerStyle = green_catheader
-                       
-                       # @description  The body style class to be used
-                       bodyStyle = green_catbody
-                       
-                       # @description  The title in the legend description for these records
-                       legendDescription = News Event
-                       
-                       search {
-                               # @description  The fields, which are allowed to be searched through
-                               searchEventFieldList = tt_news.title,tt_news.bodytext
-                       }
-                       
-                       # @description  Define the SQL to retrieve the categories
-                       cat_select {
-                               selectFields = tt_news_cat.*,tt_news_cat_mm.uid_local
-                               leftjoin = tt_news_cat_mm ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
-                               andWhere = 
-                       }
-                       
-                       # @description  The table containing the category records
-                       catTable = tt_news_cat
-                       
-                       # @description  Retrieving and adopting the event configuration for the event view.
-                       event {
-                               event < plugin.tx_cal_controller.view.event.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/pics/
-                               }
-                       }
-               }
-       }
-}
-
-calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/static/tt_news/constants.txt b/static/tt_news/constants.txt
deleted file mode 100755 (executable)
index 76fa868..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-plugin.tx_cal_controller.display.tt_news {
-       # cat=News Service for Calendar Base/general/ttnews-1; type=boolean; label=Use external plugin for news?: Show news articles using a plugin other than Calendar Base.
-       externalPlugin = 0
-
-       # cat=News Service for Calendar Base/general/ttnews-2; type=integer; label=Page ID for news: Individual news articles are shown on this page. Only applicable if external plugins are enabled.  
-       externalPlugin.singleViewPid = 
-       
-       # cat=News Service for Calendar Base/general/ttnews-3; type=string; label=URL parameters for news: These parameters are used in addition to the Page ID when linking to an individual news article.
-       externalPlugin.additionalParams = tx_ttnews[tt_news]=###UID###
-}
\ No newline at end of file
diff --git a/static/tt_news/setup.txt b/static/tt_news/setup.txt
deleted file mode 100755 (executable)
index 6825df5..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-plugin.tx_cal_controller {
-       display {
-               tt_news {
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = tt_news.*
-                       }
-                       
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
-                       event_select_with_cat {
-                               selectFields = tt_news.*,tt_news_cat_mm.uid_foreign
-                               leftjoin = tt_news_cat_mm ON (tt_news.uid = tt_news_cat_mm.uid_local) JOIN tt_news_cat ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
-                       }
-                       
-                       # @description  Configure the table the records come from.
-                       pidTable = tt_news
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = ((tt_news.datetime >=###START### AND tt_news.datetime+3600<=###END###) OR (tt_news.datetime+3600<=###END### AND tt_news.datetime+3600>=###START###) OR (tt_news.datetime+3600>=###END### AND tt_news.datetime<=###START###))
-                       
-                       # @description  Define the where clause for the ? view.
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAll =
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = tt_news.uid = ###UID###
-                       
-                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
-                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
-                       externalPlugin = {$plugin.tx_cal_controller.display.tt_news.externalPlugin}
-                       
-                       externalPlugin {
-                               
-                               # @description  Define the pid for the external plugin single view
-                               singleViewPid = {$plugin.tx_cal_controller.display.tt_news.externalPlugin.singleViewPid}
-                               
-                               # @description  Array containing the url paramter to be added to the url
-                               additionalParams = {$plugin.tx_cal_controller.display.tt_news.externalPlugin.additionalParams}
-                       }
-                       
-                       # @description  Enables the localization and/or versioning of the result record
-                       enableLocalizationAndVersioning = 0
-                       
-                       # @description  Enables the localization and/or versioning of the category result record
-                       enableLocalizationAndVersioningCat = 0
-
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = datetime
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField =
-                       
-                       # @description  If there is no end time, you can define a default length (in minutes)
-                       defaultLength = 180
-                       
-                       # @description  For a quick and easy integration, map your record fields to the standard event fields
-                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
-                       fieldMapping {
-                               title = title
-                               description = bodytext
-                               location =
-                               organizer =
-                               image = image
-                       }
-                       
-                       # @description  The template to be used with these records
-                       template = EXT:cal_ts_service/template/ts.tmpl
-                       
-                       # @description  The header style class to be used
-                       headerStyle = red_catheader
-                       
-                       # @description  The body style class to be used
-                       bodyStyle = red_catbody
-                       
-                       # @description  The title in the legend description for these records
-                       legendDescription = News
-                       
-                       search {
-                               # @description  The fields, which are allowed to be searched through
-                               searchEventFieldList = tt_news.title,tt_news.bodytext
-                       }
-                       
-                       # @description  Define the SQL to retrieve the categories
-                       cat_select {
-                               selectFields = tt_news_cat.*,tt_news_cat_mm.uid_local
-                               leftjoin = tt_news_cat_mm ON (tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
-                               andWhere = 
-                       }
-                       
-                       # @description  The table containing the category records
-                       catTable = tt_news_cat
-                       
-                       # @description  Retrieving and adopting the event configuration for the event view.
-                       event {
-                               event < plugin.tx_cal_controller.view.event.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/pics/
-                               }
-                       }
-               }
-       }
-}
-
-calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/static/tt_products/constants.txt b/static/tt_products/constants.txt
deleted file mode 100755 (executable)
index 8a4a8af..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-plugin.tx_cal_controller.display.tt_products {
-       # cat=Products Service for Calendar Base/general/ttproducts-1; type=boolean; label=Use external plugin for products?: Show products using a plugin other than Calendar Base.
-       externalPlugin = 0
-
-       # cat=Products Service for Calendar Base/general/ttproducts-2; type=integer; label=Page ID for products: Individual products are shown on this page. Only applicable if external plugins are enabled.   
-       externalPlugin.singleViewPid = 
-       
-       # cat=Products Service for Calendar Base/general/ttproducts-3; type=string; label=URL Parameters for products: These parameters are used in addition to the Page ID when linking to an individual product.
-       externalPlugin.additionalParams = tx_ttproducts_pi1[product]=###UID###
-}
\ No newline at end of file
diff --git a/static/tt_products/setup.txt b/static/tt_products/setup.txt
deleted file mode 100755 (executable)
index 04e1ae6..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-plugin.tx_cal_controller {
-       display {
-               tt_products {
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = tt_products.*
-                       }
-                       
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
-                       event_select_with_cat {
-                       }
-                       
-                       # @description  Configure the table the records come from.
-                       pidTable = tt_products
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = ((tt_products.sellstarttime>=###START### AND tt_products.sellstarttime<###END###) OR (tt_products.sellendtime<###END### AND tt_products.sellendtime>###START###) OR (tt_products.sellendtime>###END### AND tt_products.sellstarttime<###START###))
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = tt_products.uid = ###UID###
-                       
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = sellstarttime
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField = sellendtime
-                       
-                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
-                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
-                       externalPlugin = {$plugin.tx_cal_controller.display.tt_products.externalPlugin}
-                       
-                       externalPlugin {
-                               
-                               # @description  Define the pid for the external plugin single view
-                               singleViewPid = {$plugin.tx_cal_controller.display.tt_products.externalPlugin.singleViewPid}
-                               
-                               # @description  String containing the url paramter to be added to the url
-                               additionalParams = {$plugin.tx_cal_controller.display.tt_products.externalPlugin.additionalParams}
-                       }
-                       
-                       # @description  Enables the localization and/or versioning of the result record
-                       enableLocalizationAndVersioning = 0
-                       
-                       # @description  If there is no end time, you can define a default length (in minutes)
-                       defaultLength = 
-                                               
-                       # @description  For a quick and easy integration, map your record fields to the standard event fields
-                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
-                       fieldMapping {
-                               title = title
-                               description = note
-                               location =
-                               organizer =
-                               image = image
-                       }
-                       
-                       # @description  The template to be used with these records
-                       template = EXT:cal_ts_service/template/ts.tmpl
-                       
-                       # @description  The header style class to be used
-                       headerStyle = green_catheader
-                       
-                       # @description  The body style class to be used
-                       bodyStyle = green_catbody
-                       
-                       # @description  The title in the legend description for these records
-                       legendDescription = Angebote
-                       
-                       search {
-                               # @description  The fields, which are allowed to be searched through
-                               searchEventFieldList = tt_products.title,tt_products.note
-                       }
-                       
-                       # @description  Define the SQL to retrieve the categories
-                       cat_select { 
-                       }
-                       
-                       # @description  The table containing the category records
-                       catTable = 
-                       
-                       # @description  Retrieving the event configuration for the event view.
-                       event {
-                               event < plugin.tx_cal_controller.view.event.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/pics/
-                               }
-                       }
-                       list {
-                               event < plugin.tx_cal_controller.view.list.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/pics/
-                               }
-                       }
-                       rss.event < plugin.tx_cal_controller.view.rss.event
-               }
-       }
-}
-
-calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/static/tx_seminars/constants.txt b/static/tx_seminars/constants.txt
deleted file mode 100755 (executable)
index 1f0381f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-plugin.tx_cal_controller.display.tx_seminars {
-       # cat=Seminar Service for Calendar Base/general/txseminars-1; type=boolean; label=Use external plugin for seminars?: Show seminars using a plugin other than Calendar Base.
-       externalPlugin = 0
-
-       # cat=Seminar Service for Calendar Base/general/txseminars-2; type=integer; label=Page ID for seminars: Individual seminars are shown on this page. Only applicable if external plugins are enabled.    
-       externalPlugin.singleViewPid = 
-       
-       # cat=Seminar Service for Calendar Base/general/txseminars-3; type=string; label=URL Parameters for seminars: These parameters are used in addition to the Page ID when linking to an individual seminar.
-       externalPlugin.additionalParams = tx_seminars_pi1[showUid]=###UID###
-}
\ No newline at end of file
diff --git a/static/tx_seminars/setup.txt b/static/tx_seminars/setup.txt
deleted file mode 100755 (executable)
index c45324f..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-plugin.tx_cal_controller {
-       display {
-               seminars {
-                       
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = tx_seminars_seminars.*, tx_seminars_timeslots.*, tx_seminars_timeslots.begin_date as bgndt, tx_seminars_timeslots.end_date as nddt, tx_seminars_seminars.title as mytitle, tx_seminars_timeslots.begin_date as my_startdate, tx_seminars_timeslots.end_date as my_enddate
-                               leftjoin = tx_seminars_timeslots ON (tx_seminars_seminars.uid=tx_seminars_timeslots.seminar)
-                       }
-                       
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
-                       event_select_with_cat {
-                       }
-                       
-                       # @description  Configure the table the records come from.
-                       pidTable = tx_seminars_seminars
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = ((tx_seminars_timeslots.begin_date>=###START### AND tx_seminars_timeslots.begin_date<###END###) OR (tx_seminars_timeslots.end_date<###END### AND tx_seminars_timeslots.end_date>###START###)  OR (tx_seminars_timeslots.end_date>###END### AND tx_seminars_timeslots.begin_date<###START###))
-                       
-                       # @description  Define the where clause for the ? view.
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAll =
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = tx_seminars_seminars.uid = ###UID###
-                       
-                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
-                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
-                       externalPlugin = {$plugin.tx_cal_controller.display.tx_seminars.externalPlugin}
-                       
-                       externalPlugin {
-                               
-                               # @description  Define the pid for the external plugin single view
-                               singleViewPid = {$plugin.tx_cal_controller.display.tx_seminars.externalPlugin.singleViewPid}
-                               
-                               # @description  Array containing the url paramter to be added to the url
-                               additionalParams = {$plugin.tx_cal_controller.display.tx_seminars.externalPlugin.additionalParams}
-                       }
-                       
-                       # @description  Enables the localization and/or versioning of the result record
-                       enableLocalizationAndVersioning = 0
-                       
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = my_startdate
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField = my_enddate
-                       
-                       # @description  If there is no end time, you can define a default length (in minutes)
-                       defaultLength = 180
-                                               
-                       # @description  For a quick and easy integration, map your record fields to the standard event fields
-                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
-                       fieldMapping {
-                               title = mytitle
-                               description = description
-                               location =
-                               organizer =
-                               image = image
-                       }
-                       
-                       # @description  The template to be used with these records
-                       template = EXT:cal_ts_service/template/ts.tmpl
-                       
-                       # @description  The header style class to be used
-                       headerStyle = yellow_catheader
-                       
-                       # @description  The body style class to be used
-                       bodyStyle = yellow_catbody
-                       
-                       # @description  The title in the legend description for these records
-                       legendDescription = Seminar
-                       
-                       search {
-                               # @description  The fields, which are allowed to be searched through
-                               searchEventFieldList = tx_seminars.title,tx_seminars.description
-                       }
-                       
-                       # @description  Define the SQL to retrieve the categories
-                       cat_select { 
-                       }
-                       
-                       # @description  The table containing the category records
-                       catTable = 
-                       
-                       # @description  Retrieving the event configuration for the event view.
-                       event {
-                               event < plugin.tx_cal_controller.view.event.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/tx_seminars/
-                               }
-                       }
-                       # @description  Retrieving the event configuration for the event view.
-                       list {
-                               event < plugin.tx_cal_controller.view.list.event
-                               event {
-                                       # @description  The default image path is related to the tx_cal_{object type}. Therefore the path has to be overwritten
-                                       image.overridePath = uploads/tx_seminars/
-                               }
-                       }
-                       rss.event < plugin.tx_cal_controller.view.rss.event
-               }
-
-               seminars2 < plugin.tx_cal_controller.display.seminars
-               seminars2 {
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = tx_seminars_seminars.*, tx_seminars_seminars.title as mytitle
-                       }
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = ((tx_seminars_seminars.begin_date>=###START### AND tx_seminars_seminars.begin_date<###END###) OR (tx_seminars_seminars.end_date<###END### AND tx_seminars_seminars.end_date>###START###) OR (tx_seminars_seminars.end_date>###END### AND tx_seminars_seminars.begin_date<###START###))
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = tx_seminars_seminars.uid = ###UID###
-                       
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = begin_date
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField = end_date
-               }
-       }
-}
-
-calRSS.10.display < plugin.tx_cal_controller.display
\ No newline at end of file
diff --git a/static/wec_sermons/constants.txt b/static/wec_sermons/constants.txt
deleted file mode 100755 (executable)
index 81893dc..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-plugin.tx_cal_controller.display.wec_sermons {
-       # cat=Sermons Service for Calendar Base/general/wecsermons-1; type=boolean; label=Use external plugin for sermons?: Show sermons using a plugin other than Calendar Base.
-       externalPlugin = 0
-
-       # cat=Sermons Service for Calendar Base/general/wecsermons-2; type=integer; label=Page ID for sermons: Individual sermons are shown on this page. Only applicable if external plugins are enabled.      
-       externalPlugin.singleViewPid = 
-       
-       # cat=Sermons Service for Calendar Base/general/wecsermons-3; type=string; label=URL Parameters for sermons: These parameters are used in addition to the Page ID when linking to an individual sermon.
-       externalPlugin.additionalParams = tx_wecsermons_pi1[showUid]=###UID###&tx_wecsermons_pi1[recordType]=tx_wecsermons_sermons
\ No newline at end of file
diff --git a/static/wec_sermons/setup.txt b/static/wec_sermons/setup.txt
deleted file mode 100755 (executable)
index e905853..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-plugin.tx_cal_controller {
-       display {
-               wec_sermons {
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records.
-                       event_select {
-                               selectFields = tx_wecsermons_sermons.*, 1 AS allday
-                       }
-                       
-                       # @description  This is the heart of the connection SQL. It will be used in conjunction with 
-                       #                               the view-where (findallWithinWhere, findAll and findWhere) to retrieve the according records plus their categories.
-                       event_select_with_cat {
-                       }
-                       
-                       # @description  Configure the table the records come from.
-                       pidTable = tx_wecsermons_sermons
-                       
-                       # @description  Define the where clause for the views: day, week, month, year, list, rss
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAllWithinWhere = ((tx_wecsermons_sermons.occurrence_date >=###START### AND tx_wecsermons_sermons.occurrence_date+3600<=###END###) OR (tx_wecsermons_sermons.occurrence_date+3600<=###END### AND tx_wecsermons_sermons.occurrence_date+3600>=###START###) OR (tx_wecsermons_sermons.occurrence_date+3600>=###END### AND tx_wecsermons_sermons.occurrence_date<=###START###))
-                       
-                       # @description  Define the where clause for the ? view.
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findAll =
-                       
-                       # @description  Define the where clause for the single event views: event, ics
-                       #                               Use ###START### and ###END### as marker to be replaced during runtime with the timeframe
-                       findWhere = tx_wecsermons_sermons.uid = ###UID###
-                       
-                       # @description  Enable this to create a link to another page containing the single view of the external plugin.
-                       #                               Use ###DB_FIELD### to retrieve record related informations from the database (DB_FIELD is a placeholder)
-                       externalPlugin = {$plugin.tx_cal_controller.display.wec_sermons.externalPlugin}
-                       
-                       externalPlugin {
-                               
-                               # @description  Define the pid for the external plugin single view
-                               singleViewPid = {$plugin.tx_cal_controller.display.wec_sermons.externalPlugin.singleViewPid}
-                               
-                               # @description  Array containing the url paramter to be added to the url
-                               additionalParams = {$plugin.tx_cal_controller.display.wec_sermons.externalPlugin.additionalParams}
-                       }
-                       
-                       # @description  Enables the localization and/or versioning of the result record
-                       enableLocalizationAndVersioning = 0
-
-                       # @description  Define the field containing the timestamp for the start time
-                       startTimeField = occurrence_date
-                       
-                       # @description  Define the field containing the timestamp for the end time
-                       endTimeField = occurrence_date
-                       
-                       # @description  If there is no end time, you can define a default length (in minutes)
-                       defaultLength = 0
-                       
-                       # @description  For a quick and easy integration, map your record fields to the standard event fields
-                       #                               You can always use ###DB_FIELD### (where DB_FIELD is a placeholder for a database row entry) to insert database values  
-                       fieldMapping {
-                               title = title
-                               description = description
-                               location =
-                               organizer =
-                               image = graphic
-                       }
-                       
-                       # @description  The template to be used with these records
-                       template = EXT:cal_ts_service/template/ts.tmpl
-                       
-                       # @description  The header style class to be used
-                       headerStyle = blue_catheader
-                       
-                       # @description  The body style class to be used
-                       bodyStyle = blue_catbody
-                       
-                       # @description  The title in the legend description for these records
-                       legendDescription = Sermons
-                       
-                       search {
-                               # @description  The fields, which are allowed to be searched through
-                               searchEventFieldList = tx_wecsermons_sermons.title,tx_wecsermons_sermons.description,tx_wecsermons_sermons.keywords
-                       }
-                       
-                       # @description  Define the SQL to retrieve the categories
-                       cat_select {
-                       }
-                       
-                       # @description  The table containing the category records
-                       catTable =
-                       
-                       # @description  Retrieving and adopting the event configuration for the event view.
-                       event {
-                               event < plugin.tx_cal_controller.view.event.event
-                               event {
-