Different Bug fixes. Changed Version to 1.7.1 stable. 27/32527/2 master
authorStefan Precht <sprecht@gmx.de>
Fri, 29 Aug 2014 20:53:36 +0000 (22:53 +0200)
committerStefan Precht <sprecht@gmx.de>
Fri, 29 Aug 2014 21:39:33 +0000 (23:39 +0200)
Change-Id: I5b3bd4df54a117fb196eeb9e70d2f801f7df4159
Reviewed-on: http://review.typo3.org/32527
Reviewed-by: Stefan Precht <sprecht@gmx.de>
Tested-by: Stefan Precht <sprecht@gmx.de>
ChangeLog
api/classes/class.tx_abcourses.AbcoursesBase.php
ext_emconf.php
flexform_ds.xml
hooks/class.tx_abcourses_metadata.php
locallang_db.xml
pi1/class.tx_abcourses_pi1.php
tca.php

index 4cc964d..3073db5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 (add new changes on top of this file)
 
+14-08-29 Stefan Precht <sprecht@gmx.de>
+- Fixed a bug within the course-detail template.
+- Added landDisable=1 to FlexForm's meta node
+- Added default value within *_metadata's constructor and implemented fallbacks if cObj is not set
+- check for empty needles (but if there are some, it is most likely an ext missconfiguration)
+- set tca maxitems for participants of an event to 100
+- changed version to stable 1.7.1
+- changed dependency on typo3 to 6.0.0-0.0.0
+
 14-08-18 Stefan Precht <sprecht@gmx.de>
 - Added seodesc attribute to a course.
 - now this is used for rendering the meta description
index 3b8d412..598170f 100644 (file)
@@ -26,7 +26,7 @@
  * Base class for abcourses content objects.
  *
  */
-class cAbcoursesBase extends tslib_pibase {
+class cAbcoursesBase extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {
        var $arrData = '';
        var $fError = 0;
 
index fa5d9bc..0bf5589 100644 (file)
@@ -15,21 +15,21 @@ $EM_CONF[$_EXTKEY] = array (
        'description' => 'An extension for dealing with seminars and appointments with extensive opportunities for advertising your appointments and for subscribing to them. Subscriptions can be stored as tt_address. Offers different hooks.',
        'category' => 'plugin',
        'shy' => 0,
-       'version' => '1.7.0',
+       'version' => '1.7.1',
        'dependencies' => 'cms,tt_address',
        'conflicts' => '',
        'priority' => '',
        'loadOrder' => '',
        'module' => '',
-       'state' => 'beta',
+       'state' => 'stable',
        'uploadfolder' => 1,
        'createDirs' => 'uploads/tx_abcourses/rte/',
        'modify_tables' => 'tt_address, tt_content',
        'clearcacheonload' => 1,
        'lockType' => '',
        'author' => 'Andreas Behrens and Stefan Precht',
-       'author_email' => 'Andreas Behrens <behrens@b-networks.de>, Stefan Precht <info@stefanprecht.de>',
-       'author_company' => '@b-networks, Precht IT Beratung & Softwareentwicklung, SYMPLASSON GmbH, Tallence GmbH',
+       'author_email' => 'Stefan Precht <info@stefanprecht.de>, Andreas Behrens <behrens@b-networks.de>',
+       'author_company' => 'Precht IT Beratung & Softwareentwicklung, @b-networks, SYMPLASSON GmbH, Tallence GmbH',
        'CGLcompliance' => '',
        'CGLcompliance_note' => '',
        'constraints' => 
@@ -37,8 +37,8 @@ $EM_CONF[$_EXTKEY] = array (
                'depends' => 
                array (
             'php' => '5.3.7-5.5.99',
-            'typo3' => '6.2.4',
-                       'tt_address' => '2.3.5',
+            'typo3' => '6.0.0-0.0.0',
+                       'tt_address' => '2.3.5-0.0.0',
                ),
                'conflicts' => 
                array (
index a51e23c..37ecd5b 100644 (file)
@@ -1,8 +1,6 @@
 <T3DataStructure>
        <meta>
-               <!--
-                       <langDisable>1</langDisable>
-                       <langChildren>1</langChildren>!-->
+        <langDisable>1</langDisable>
        </meta>
        <sheets>
                <sDEF>
index e47d2ea..a814dd3 100644 (file)
@@ -43,8 +43,13 @@ class tx_abcourses_metadata {
     private $conf = array();
     public $cObj = null; //as userFunc accesses this, it needs to be public
 
-
-    function __construct($cObj)
+    /**
+     * To avoid bothering WARN message when instantiated with makeInstance, the parameter cObj is set to null by
+     * default. Make instance accesses the property directly. wtf. How ever. Take care to set this manually, if you use
+     * normal instantiation.
+     * @param string $cObj
+     */
+    function __construct($cObj=null)
     {
         $this->cObj = $cObj;
 
@@ -93,9 +98,13 @@ class tx_abcourses_metadata {
         $keywords = $this->getCurrentCourse()->getSingleData(cCourse::KEYWORDS);
         if (!empty($keywords)) {
             $keywords = htmlspecialchars($keywords);
+            if (!empty($this->cObj)) {
             $GLOBALS['TSFE']->additionalHeaderData['abcourses_keywords'] = $this->cObj->stdWrap($keywords,
                 $this->conf['keywords.']['keywordsWrap.']);
-            //$GLOBALS['TSFE']->additionalHeaderData['abcourses_keywords'] = "<meta keywords=\"".$keywords."\"/>";
+            } else {
+                //just as fallback
+                $GLOBALS['TSFE']->additionalHeaderData['abcourses_keywords'] = "<meta keywords=\"".$keywords."\"/>";
+            }
         }
     }
 
@@ -107,11 +116,15 @@ class tx_abcourses_metadata {
             $description = $this->cObj->parseFunc($description, $this->descriptionParseFuncConfig);
             $description = strip_tags($description);
             $description = mb_substr($description,0,$this->descriptionLength,'UTF-8');
+
+            if (!empty($this->cObj)) {
             $GLOBALS['TSFE']->additionalHeaderData['abcourses_description'] = $this->cObj->stdWrap($description,
                 $this->conf['description.']['seoDescWrap.']);
-            //$GLOBALS['TSFE']->additionalHeaderData['abcourses_description'] = "<meta description=\"".$description."\" />";
+            } else {
+                //just as fallback
+                $GLOBALS['TSFE']->additionalHeaderData['abcourses_description'] = "<meta description=\"".$description."\" />";
+            }
         }
-
     }
 
     /**
index 881e881..23f9261 100644 (file)
             <label index="tx_abcourses_hotel.rating.I.3">3 Sterne</label>
             <label index="tx_abcourses_hotel.rating.I.4">4 Sterne</label>
             <label index="tx_abcourses_hotel.rating.I.5">5 Sterne</label>
-            <label index="tx_abcourses_arrangement">Buchunsoption</label>
+            <label index="tx_abcourses_arrangement">Buchungsoption</label>
             <label index="tx_abcourses_arrangement.backendname">Backend Titel (gezeigt im BE)</label>
             <label index="tx_abcourses_arrangement.frontendname">Bezeichnung für den Anwender</label>
             <label index="tx_abcourses_arrangement.hotel">Hotel</label>
index 62bbdc3..c30730b 100644 (file)
@@ -35,7 +35,7 @@ require_once(t3lib_extMgm::extPath('abcourses') . 'api/classes/class.tx_abcourse
 require_once(t3lib_extMgm::extPath('abcourses') . 'api/util/class.tx_abcourses.utils.php');
 
 
-class tx_abcourses_pi1 extends tslib_pibase
+class tx_abcourses_pi1 extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
 {
     var $prefixId = 'tx_abcourses_pi1'; // Same as class name
     var $scriptRelPath = 'pi1/class.tx_abcourses_pi1.php'; // Path to this script relative to the extension dir.
@@ -471,17 +471,16 @@ class tx_abcourses_pi1 extends tslib_pibase
         //load the objectlayer
         $objLoader =& $GLOBALS['T3_VAR']['abcourses']['cLoader'];
 
-        //get the categorys object. this should be already initialised.
-        $objCategorys =& $objLoader->get_objCategorys();
+        //get the categories object. this should be already initialised.
+        $objCategories =& $objLoader->get_objCategorys();
 
-        $MA = array();
         $renderedCategorys = "";
 
-        if (!is_array($objCategorys->get_arrData())) {
+        if (!is_array($objCategories->get_arrData())) {
             return $this->templateNoData;
         }
 
-        foreach ($objCategorys->get_arrData() as $categoryId => $Category) {
+        foreach ($objCategories->get_arrData() as $categoryId => $Category) {
             //render the view for the current category record
             $Category->load_arrCourses($objLoader, $lConf['nextevents'], $this->INITEVENTS);
             $renderedCategorys .= $Category->printme($lTemplateCategory, $this, $lConf);
@@ -701,23 +700,13 @@ class tx_abcourses_pi1 extends tslib_pibase
         $lTrainertemplateRow = $this->cObj->getSubpart($lTrainertemplate, '###ROWTRAINER###'); // Subpart extrahieren
         $lNoTrainertemplate = $this->cObj->getSubpart($lTemplate, '###NOTRAINER###'); // Subpart extrahieren
 
-        $lParticipantstemplate = $this->cObj->getSubpart($lTemplate, '###PARTICIPANTS###'); // Subpart extrahieren
-        $lParticipantstemplate = $this->cObj->getSubpart($lTemplate, '###NOPARTICIPANTS###'); // Subpart extrahieren
-
-        $lEventTrainertemplate = $this->cObj->getSubpart($lEventtemplate, '###EVENTTRAINER###'); // Subpart extrahieren
-        $lEventTrainertemplateRow = $this->cObj->getSubpart($lTrainertemplate, '###EVENTROWTRAINER###'); // Subpart extrahieren
-        $lEventNoTrainertemplate = $this->cObj->getSubpart($lEventtemplate, '###EVENTNOTRAINER###'); // Subpart extrahieren
-
-        $lPagetemplate = $this->cObj->getSubpart($lEventtemplate, '###PAGE###'); // Subpart extrahieren
+        $lPagetemplate = $this->cObj->getSubpart($lTemplate, '###PAGE###'); // Subpart extrahieren
         $lPagetemplateRow = $this->cObj->getSubpart($lPagetemplate, '###ROWPAGE###'); // Subpart extrahieren
-        $lNoPagetemplate = $this->cObj->getSubpart($lEventtemplate, '###NOPAGE###'); // Subpart extrahieren
+        $lNoPagetemplate = $this->cObj->getSubpart($lPagetemplate, '###NOPAGE###'); // Subpart extrahieren
 
         $templateTeachingaids = $this->cObj->getSubpart($lTemplate, '###TEACHINGAIDS###');
         $templateFiles = $this->cObj->getSubpart($lTemplate, '###FILES###');
 
-
-        $sRet = ''; // Variable für Ausgabe
-
         //Übergabeparameter prüfen
         if (!isset($this->piVars['courseId'])) {
             return $this->templateNoData;
@@ -882,12 +871,10 @@ class tx_abcourses_pi1 extends tslib_pibase
         //TODO Change this to the oop approach
 
         //Filter für Termine setzen. Termin darf $ago Tage zurückliegen.
-        $datefilter = '';
         $ago = intval($lConf['showEventsAgo']);
         $time = time() - ($ago * 24 * 3600);
         $datefilter = ' AND tx_abcourses_event.coursestart >= ' . mktime(0, 0, 0, date('m', $time), date('d', $time), date('Y', $time));
 
-        $rsEvents = '';
         $rsEvents = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query(
             'tx_abcourses_event.*',
             'tx_abcourses_event',
@@ -2219,16 +2206,17 @@ class tx_abcourses_pi1 extends tslib_pibase
 
         $sFormdata = '';
 
+        $mailLabels = $this->conf['subscribe.']['mailLabels'];
         foreach ($MA as $key => $value) {
             $label = strtolower(trim($key, "#"));
-
-            $mailLabels = $this->conf['subscribe.']['mailLabels'];
-
-            $pos = strpos($mailLabels, $label);
-            if (!($pos === false) && $value) {
-                $sFormdata .= $this->pi_getLL($label, ucfirst($label)) . ': ';
-                //Next line is important to avoid Mailform injection
-                $sFormdata .= wordwrap(rawurldecode($value)) . "\n";
+            $label = trim($label, " ");
+            if (!empty($label)) {
+                $pos = strpos($mailLabels, $label);
+                if (!($pos === false) && $value) {
+                    $sFormdata .= $this->pi_getLL($label, ucfirst($label)) . ': ';
+                    //next line is important to avoid mailform injection
+                    $sFormdata .= wordwrap(rawurldecode($value)) . "\n";
+                }
             }
         }
 
diff --git a/tca.php b/tca.php
index a961c6d..0421859 100644 (file)
--- a/tca.php
+++ b/tca.php
@@ -696,6 +696,7 @@ $TCA["tx_abcourses_event"] = Array (
                                                "allowed" => "tt_address",
                                 "size" => 5,        ## WOP:[tables][4][fields][8][conf_relations_selsize]
                                 "minitems" => 0,
+                                "maxitems" => 100,
                                 "MM" => "tx_abcourses_event_participants_mm",        ## WOP:[tables][4][fields][8][conf_relations_mm]
                                 "wizards" => Array(
                                         "_PADDING" => 2,