/** * Adds T3Jquery as Lib * @param string color * @param string delta */ public function render() { // checks if t3jquery is loaded if (t3lib_extMgm::isLoaded('t3jquery')) { require_once t3lib_extMgm::extPath('t3jquery') . 'class.tx_t3jquery.php'; } // if t3jquery is loaded and the custom Library had been created if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } return ''; }
/** * Parse all images into the template * @param $data * @return string */ public function parseTemplate($dir = '', $onlyJS = false) { $this->pagerenderer = t3lib_div::makeInstance('tx_imagecarousel_pagerenderer'); $this->pagerenderer->setConf($this->conf); // define the directory of images if ($dir == '') { $dir = $this->imageDir; } // define the contentKey if not exist if ($this->getContentKey() == '') { $this->setContentKey($this->extKey . '_key'); } // define the jQuery mode and function if ($this->conf['jQueryNoConflict']) { $jQueryNoConflict = "jQuery.noConflict();"; } else { $jQueryNoConflict = ""; } preg_match("/^([0-9]*)/i", $this->conf['imagewidth'], $reg_width); preg_match("/^([0-9]*)/i", $this->conf['imageheight'], $reg_height); $css_width = is_numeric($reg_width[1]) ? $reg_width[1] . "px" : $this->conf['imagewidth']; $css_height = is_numeric($reg_height[1]) ? $reg_height[1] . "px" : $this->conf['imageheight']; // define the js files $this->pagerenderer->addJsFile($this->conf['jQueryCloudCarousel']); // get the options from config $options = array(); if (is_numeric($this->conf['minScale'])) { $options[] = "minScale: {$this->conf['minScale']}"; } if (is_numeric($this->conf['reflHeight'])) { $options[] = "reflHeight: {$this->conf['reflHeight']}"; } if (is_numeric($this->conf['reflGap'])) { $options[] = "reflGap: {$this->conf['reflGap']}"; } if (is_numeric($this->conf['reflOpacity'])) { $options[] = "reflOpacity: {$this->conf['reflOpacity']}"; } if (is_numeric($this->conf['xRadius'])) { $options[] = "xRadius: {$this->conf['xRadius']}"; } if (is_numeric($this->conf['yRadius'])) { $options[] = "yRadius: {$this->conf['yRadius']}"; } $options[] = "xPos: " . (is_numeric($this->conf['xPos']) ? $this->conf['xPos'] : intval($this->conf['carouselwidth'] / 2)); $options[] = "yPos: " . (is_numeric($this->conf['yPos']) ? $this->conf['yPos'] : intval($this->conf['carouselheight'] / 2) - $this->conf['reflHeight']); if (is_numeric($this->conf['speed'])) { $options[] = "speed: {$this->conf['speed']}"; } if ($this->conf['FPS'] > 0) { $options[] = "FPS: {$this->conf['FPS']}"; } if ($this->conf['autoRotate']) { $options[] = "autoRotate: '{$this->conf['autoRotate']}'"; } if (is_numeric($this->conf['autoRotateDelay'])) { $options[] = "autoRotateDelay: {$this->conf['autoRotateDelay']}"; } if ($this->conf['mouseWheel']) { $options[] = "mouseWheel: true"; } if ($this->conf['bringToFront']) { $options[] = "bringToFront: true"; } if ($this->conf['buttonLeft']) { $options[] = "buttonLeft: jQuery('#{$this->getContentKey()}-left')"; } if ($this->conf['buttonRight']) { $options[] = "buttonRight: jQuery('#{$this->getContentKey()}-right')"; } if ($this->conf['titleBox']) { $options[] = "titleBox: jQuery('#{$this->getContentKey()}-alt')"; } if ($this->conf['altBox']) { $options[] = "altBox: jQuery('#{$this->getContentKey()}-title')"; } // checks if t3jquery is loaded if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); if ($this->conf['mouseWheel'] && class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger($this->pagerenderer->getExtensionVersion('t3jquery')) <= 1010003) { $this->pagerenderer->addJsFile($this->conf['jQueryMouseWheel']); } } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); if ($this->conf['mouseWheel']) { $this->pagerenderer->addJsFile($this->conf['jQueryMouseWheel']); } } $this->pagerenderer->addJS($jQueryNoConflict . "\njQuery(document).ready(function() {\n\tjQuery('#{$this->getContentKey()}').CloudCarousel(" . (count($options) ? "{\n\t\t" . implode(",\n\t\t", $options) . "\n\t}" : "") . ");\n});"); $this->pagerenderer->addCSS("\n#{$this->getContentKey()} {\n\twidth: {$this->conf['carouselwidth']}px;\n\theight: {$this->conf['carouselheight']}px;\n\toverflow: scroll;\n\tdisplay: hidden\n}"); // Add the ressources $this->pagerenderer->addResources(); if ($onlyJS === true) { return true; } $return_string = NULL; $images = NULL; $descriptions = NULL; $navigation = NULL; $markerArray = array('BUTTON_LEFT' => NULL, 'BUTTON_RIGHT' => NULL, 'TITLE_BOX' => NULL, 'ALT_BOX' => NULL, 'DESCRIPTIONS' => NULL); $GLOBALS['TSFE']->register['key'] = $this->getContentKey(); $GLOBALS['TSFE']->register['imagewidth'] = $this->conf['imagewidth']; $GLOBALS['TSFE']->register['imageheight'] = $this->conf['imageheight']; $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT'] = 0; if (count($this->images) > 0) { foreach ($this->images as $key => $image_name) { $image = null; $imgConf = $this->conf['carousel.'][$this->type . '.']['image.']; $totalImagePath = $this->imageDir . $image_name; $GLOBALS['TSFE']->register['file'] = $totalImagePath; $GLOBALS['TSFE']->register['href'] = $this->hrefs[$key]; $GLOBALS['TSFE']->register['caption'] = $this->captions[$key]; $GLOBALS['TSFE']->register['description'] = $this->description[$key]; $GLOBALS['TSFE']->register['CURRENT_ID'] = $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT'] + 1; if ($this->hrefs[$key]) { $imgConf['imageLinkWrap.'] = $imgConf['imageHrefWrap.']; } $image = $this->cObj->IMAGE($imgConf); $images .= $this->cObj->typolink($image, $imgConf['imageLinkWrap.']); $descriptions .= trim($this->cObj->cObjGetSingle($this->conf['carousel.'][$this->type . '.']['description'], $this->conf['carousel.'][$this->type . '.']['description.'])); $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT']++; } if ($this->conf['buttonLeft']) { $buttonLeft = trim($this->cObj->cObjGetSingle($this->conf['carousel.'][$this->type . '.']['buttonLeft'], $this->conf['carousel.'][$this->type . '.']['buttonLeft.'])); $markerArray['BUTTON_LEFT'] = $this->cObj->stdWrap($buttonLeft, $this->conf['carousel.'][$this->type . '.']['buttonLeftWrap.']); } if ($this->conf['buttonRight']) { $buttonRight = trim($this->cObj->cObjGetSingle($this->conf['carousel.'][$this->type . '.']['buttonRight'], $this->conf['carousel.'][$this->type . '.']['buttonRight.'])); $markerArray['BUTTON_RIGHT'] = $this->cObj->stdWrap($buttonRight, $this->conf['carousel.'][$this->type . '.']['buttonRightWrap.']); } if ($this->conf['titleBox']) { $titleBox = trim($this->cObj->cObjGetSingle($this->conf['carousel.'][$this->type . '.']['titleBox'], $this->conf['carousel.'][$this->type . '.']['titleBox.'])); $markerArray['TITLE_BOX'] = $this->cObj->stdWrap($titleBox, $this->conf['carousel.'][$this->type . '.']['titleBoxWrap.']); } if ($this->conf['altBox']) { $altBox = trim($this->cObj->cObjGetSingle($this->conf['carousel.'][$this->type . '.']['altBox'], $this->conf['carousel.'][$this->type . '.']['altBox.'])); $markerArray['ALT_BOX'] = $this->cObj->stdWrap($altBox, $this->conf['carousel.'][$this->type . '.']['altBoxWrap.']); } $markerArray['DESCRIPTIONS'] = $this->cObj->stdWrap($descriptions, $this->conf['carousel.'][$this->type . '.']['descriptionWrap.']); // the stdWrap $images = $this->cObj->stdWrap($images, $this->conf['carousel.'][$this->type . '.']['stdWrap.']); $return_string = $this->cObj->substituteMarkerArray($images, $markerArray, '###|###', 0); } return $this->pi_wrapInBaseClass($return_string); }
/** * Function to be used from TypoScript to add Javascript after the jquery.js * * This is a small wrapper for adding javascripts script after the jQuery Library. * This is needed in some situations because headerdata added with "page.headerData" * is placed BEFORE the headerdata which is added using PHP. * * Usage: * * includeLibs.t3jquery = EXT:t3jquery/class.tx_t3jquery.php * page.10 = USER * page.10.userFunc = tx_t3jquery->addJS * page.10.jsfile = fileadmin/testscript.js * page.10.jsurl = http://www.example.com/script.js * page.10.jsdata = alert('Hello World!'); * page.10.forceOnTop = 0 * page.10.compress = 0 * page.10.type = text/javascript * page.10.allWrap = * page.10.jsinline = 0 * page.10.tofooter = 1 * * @param string $content: Content input, ignore (just put blank string) * @param array $conf: TypoScript configuration of the plugin! * @return void */ function addJS($content, $conf) { // set the cObj from TSFE $cObj = $GLOBALS['TSFE']->cObj; // Set the tofooter to TRUE if integrateToFooter is set $confArr = tx_t3jquery::getConf(); if ($confArr['integrateToFooter']) { $conf['tofooter'] = 'footer'; } // If the jQuery lib is not added to page yet, add it! tx_t3jquery::addJqJS(); // where should be the data stored (footer or header) / Fix moveJsFromHeaderToFooter (add all scripts to the footer) $conf['tofooter'] = $conf['tofooter'] || $GLOBALS['TSFE']->config['config']['moveJsFromHeaderToFooter'] ? 'footer' : 'header'; $conf['compress'] = $conf['compress'] || $conf['jsminify']; $conf['type'] = $conf['type'] ? $conf['type'] : 'text/javascript'; // Append JS file if ($conf['jsfile'] || $conf['jsfile.']) { $jsfile = preg_replace('|^' . PATH_site . '|i', '', t3lib_div::getFileAbsFileName($cObj->stdWrap($conf['jsfile'], $conf['jsfile.']))); // Add the Javascript if file exists if ($jsfile != '' && file_exists(PATH_site . $jsfile)) { tx_t3jquery::addJsFile($jsfile, $conf); } else { t3lib_div::devLog('\'' . $jsfile . '\' does not exists!', 't3jquery', 2); } } // add JS URL if ($conf['jsurl'] || $conf['jsurl.']) { tx_t3jquery::addJsFile($cObj->stdWrap($conf['jsurl'], $conf['jsurl.']), $conf); } // add JS data if ($conf['jsdata'] || $conf['jsdata.']) { $jsdata = trim($cObj->stdWrap($conf['jsdata'], $conf['jsdata.'])); if ($jsdata != '') { tx_t3jquery::addJsInlineCode(md5($jsdata), $jsdata, $conf); } } // add JS ready code if ($conf['jsready'] || $conf['jsready.']) { $jsready = trim($cObj->stdWrap($conf['jsready'], $conf['jsready.'])); if ($jsready != '') { $temp_js = 'jQuery(document).ready(function() {' . $jsready . '});'; tx_t3jquery::addJsInlineCode(md5($jsready), $temp_js, $conf); } } }
/** * Generates the module content * @return void */ function moduleContent() { if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('t3jquery')) { require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('t3jquery') . 'class.tx_t3jquery.php'; tx_t3jquery::addJqJS(); $this->content .= tx_t3jquery::getJqJSBE(); } $typo3Version = class_exists('t3lib_utility_VersionNumber') ? t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) : \TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version); if ($typo3Version >= 6000000) { $t3lib_BEfuncAlias = '\\TYPO3\\CMS\\Backend\\Utility\\BackendUtility'; } else { $t3lib_BEfuncAlias = 't3lib_BEfunc'; } $this->iconWorks = method_exists('t3lib_iconWorks', 'getSpriteIcon'); $this->mod_info = $this->getExtensionInfo('multishop'); $this->get = $_GET; $this->post = $_POST; switch ((string) $this->MOD_SETTINGS['function']) { case 1: require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('multishop') . 'mod1/pages/welcome.php'; break; case 2: require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('multishop') . 'mod1/pages/administration.php'; break; case 3: require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('multishop') . 'mod1/pages/help.php'; break; case 4: require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('multishop') . 'mod1/pages/migration.php'; break; } $year = date("Y"); if ($year == 2010) { $year_string .= $year; } else { $year_string .= '2010-' . $year; } $this->content .= ' <center> '; $this->content .= ' <a title="Click for more information about TYPO3 Multishop" href="http://www.typo3multishop.com/?utm_source=Typo3Multishop_Backend&utm_medium=cpc&utm_term=Typo3Multishop&utm_content=Listing&utm_campaign=Typo3Multishop" target="_blank"><img src="' . $this->FULL_HTTP_URL_MS . 'mod1/images/typo3multishop.png"></a><br><strong>version: ' . $this->mod_info['version'] . '</strong><BR><BR> <a title="Follow TYPO3 Multishop on Twitter" href="http://twitter.com/typo3multishop" target="_blank"><img src="' . $this->FULL_HTTP_URL_MS . 'mod1/images/twitter.png"></a> <a title="Follow TYPO3 Multishop on LinkedIn" href="http://www.linkedin.com/groups?gid=3117344" target="_blank"><img src="' . $this->FULL_HTTP_URL_MS . 'mod1/images/linkedin.png"></a> <a title="Follow TYPO3 Multishop on FaceBook" href="http://www.facebook.com/typo3multishop" target="_blank"><img src="' . $this->FULL_HTTP_URL_MS . 'mod1/images/facebook.png"></a> <br>skype: typo3multishop<BR><BR> <a title="copyright ' . $year_string . ' by BVB Media BV" href="http://www.bvbmedia.com/?utm_source=Typo3Multishop_Backend&utm_medium=cpc&utm_term=Typo3Multishop&utm_content=Listing&utm_campaign=Typo3Multishop" target="_blank">copyright ' . $year_string . ' to BVB Media BV</a><br> webdevelopment by <a href="http://www.basvanbeek.nl/?utm_source=Typo3Multishop_Backend&utm_medium=cpc&utm_term=Typo3Multishop&utm_content=Listing&utm_campaign=Typo3Multishop" target="_blank">Bas van Beek</a> - <a href="mailto:bvbmedia@gmail.com">bvbmedia@gmail.com</a><br> </center> '; }
/** * Adds "t3jquery" extension's library to page header. * * @access public * * @return boolean TRUE on success or FALSE on error */ public static function loadJQuery() { // Ensure extension "t3jquery" is available. if (t3lib_extMgm::isLoaded('t3jquery')) { require_once t3lib_extMgm::extPath('t3jquery') . 'class.tx_t3jquery.php'; } // Is "t3jquery" loaded? if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); return TRUE; } else { if (TYPO3_DLOG) { t3lib_div::devLog('[tx_dlf_helper->loadJQuery()] JQuery not available', self::$extKey, SYSLOG_SEVERITY_ERROR); } return FALSE; } }
/** * The main method of the PlugIn * * @param string $content: The PlugIn content * @param array $conf: The PlugIn configuration * @return string The content that is displayed on the website */ public function main($content, $conf) { $this->content = $content; $this->conf = $conf; $this->pi_setPiVarDefaults(); $this->pi_loadLL(); // get the config from EXT $this->confArr = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['jfmulticontent']); $this->pagerenderer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_jfmulticontent_pagerenderer'); $this->pagerenderer->setConf($this->conf); // Plugin or template? if ($this->cObj->data['list_type'] == $this->extKey . '_pi1') { // It's a content, all data from flexform $this->lConf['style'] = $this->getFlexformData('general', 'style'); if ($this->lConf['style'] != 'typoscript') { $this->lConf['columnOrder'] = $this->getFlexformData('general', 'columnOrder', in_array($this->lConf['style'], array('2column', '3column', '4column', '5column'))); $this->lConf['column1'] = $this->getFlexformData('general', 'column1', in_array($this->lConf['style'], array('2column', '3column', '4column', '5column'))); $this->lConf['column2'] = $this->getFlexformData('general', 'column2', in_array($this->lConf['style'], array('2column', '3column', '4column', '5column'))); $this->lConf['column3'] = $this->getFlexformData('general', 'column3', in_array($this->lConf['style'], array('3column', '4column', '5column'))); $this->lConf['column4'] = $this->getFlexformData('general', 'column4', in_array($this->lConf['style'], array('4column', '5column'))); $this->lConf['column5'] = $this->getFlexformData('general', 'column5', in_array($this->lConf['style'], array('5column'))); $this->lConf['equalize'] = $this->getFlexformData('general', 'equalize', in_array($this->lConf['style'], array('1column', '2column', '3column', '4column', '5column'))); $debuglog = $this->lConf['style'] == 'tab'; $this->lConf['tabCollapsible'] = $this->getFlexformData('general', 'tabCollapsible', $debuglog); $this->lConf['tabOpen'] = $this->getFlexformData('general', 'tabOpen', $debuglog); $this->lConf['tabRandomContent'] = $this->getFlexformData('general', 'tabRandomContent', $debuglog); $this->lConf['tabEvent'] = $this->getFlexformData('general', 'tabEvent', $debuglog); $this->lConf['tabHeightStyle'] = $this->getFlexformData('general', 'tabHeightStyle', $debuglog); $this->lConf['tabCookieExpires'] = $this->getFlexformData('general', 'tabCookieExpires', $debuglog); $this->lConf['tabCookieRoot'] = $this->getFlexformData('general', 'tabCookieRoot', $debuglog); $this->lConf['tabHideEffect'] = $this->getFlexformData('general', 'tabHideEffect', $debuglog); $this->lConf['tabHideTransition'] = $this->getFlexformData('general', 'tabHideTransition', $debuglog); $this->lConf['tabHideTransitiondir'] = $this->getFlexformData('general', 'tabHideTransitiondir', $debuglog); $this->lConf['tabHideTransitionduration'] = $this->getFlexformData('general', 'tabHideTransitionduration', $debuglog); $this->lConf['tabShowEffect'] = $this->getFlexformData('general', 'tabShowEffect', $debuglog); $this->lConf['tabShowTransition'] = $this->getFlexformData('general', 'tabShowTransition', $debuglog); $this->lConf['tabShowTransitiondir'] = $this->getFlexformData('general', 'tabShowTransitiondir', $debuglog); $this->lConf['tabShowTransitionduration'] = $this->getFlexformData('general', 'tabShowTransitionduration', $debuglog); $debuglog = $this->lConf['style'] == 'accordion'; $this->lConf['accordionCollapsible'] = $this->getFlexformData('general', 'accordionCollapsible', $debuglog); $this->lConf['accordionClosed'] = $this->getFlexformData('general', 'accordionClosed', $debuglog); $this->lConf['accordionOpen'] = $this->getFlexformData('general', 'accordionOpen', $debuglog); $this->lConf['accordionRandomContent'] = $this->getFlexformData('general', 'accordionRandomContent', $debuglog); $this->lConf['accordionEvent'] = $this->getFlexformData('general', 'accordionEvent', $debuglog); $this->lConf['accordionHeightStyle'] = $this->getFlexformData('general', 'accordionHeightStyle', $debuglog); $this->lConf['accordionAnimate'] = $this->getFlexformData('general', 'accordionAnimate', $debuglog); $this->lConf['accordionTransition'] = $this->getFlexformData('general', 'accordionTransition', $debuglog); $this->lConf['accordionTransitiondir'] = $this->getFlexformData('general', 'accordionTransitiondir', $debuglog); $this->lConf['accordionTransitionduration'] = $this->getFlexformData('general', 'accordionTransitionduration', $debuglog); $debuglog = $this->lConf['style'] == 'slider'; $this->lConf['sliderWidth'] = $this->getFlexformData('general', 'sliderWidth', $debuglog); $this->lConf['sliderHeight'] = $this->getFlexformData('general', 'sliderHeight', $debuglog); $this->lConf['sliderResizeContents'] = $this->getFlexformData('general', 'sliderResizeContents', $debuglog); $this->lConf['sliderTheme'] = $this->getFlexformData('general', 'sliderTheme', $debuglog); $this->lConf['sliderMode'] = $this->getFlexformData('general', 'sliderMode', $debuglog); $this->lConf['sliderOpen'] = $this->getFlexformData('general', 'sliderOpen', $debuglog); $this->lConf['sliderRandomContent'] = $this->getFlexformData('general', 'sliderRandomContent', $debuglog); $this->lConf['sliderHashTags'] = $this->getFlexformData('general', 'sliderHashTags', $debuglog); $this->lConf['sliderBuildArrows'] = $this->getFlexformData('general', 'sliderBuildArrows', $debuglog); $this->lConf['sliderToggleArrows'] = $this->getFlexformData('general', 'sliderToggleArrows', $debuglog); $this->lConf['sliderNavigation'] = $this->getFlexformData('general', 'sliderNavigation', $debuglog); $this->lConf['sliderStartStop'] = $this->getFlexformData('general', 'sliderStartStop', $debuglog); $this->lConf['sliderPanelFromHeader'] = $this->getFlexformData('general', 'sliderPanelFromHeader', $debuglog); $this->lConf['sliderToggleControls'] = $this->getFlexformData('general', 'sliderToggleControls', $debuglog); $this->lConf['sliderAutoStart'] = $this->getFlexformData('general', 'sliderAutoStart', $debuglog); $this->lConf['sliderPauseOnHover'] = $this->getFlexformData('general', 'sliderPauseOnHover', $debuglog); $this->lConf['sliderAllowRapidChange'] = $this->getFlexformData('general', 'sliderAllowRapidChange', $debuglog); $this->lConf['sliderResumeOnVideoEnd'] = $this->getFlexformData('general', 'sliderResumeOnVideoEnd', $debuglog); $this->lConf['sliderStopAtEnd'] = $this->getFlexformData('general', 'sliderStopAtEnd', $debuglog); $this->lConf['sliderPlayRtl'] = $this->getFlexformData('general', 'sliderPlayRtl', $debuglog); $this->lConf['sliderTransition'] = $this->getFlexformData('general', 'sliderTransition', $debuglog); $this->lConf['sliderTransitiondir'] = $this->getFlexformData('general', 'sliderTransitiondir', $debuglog); $this->lConf['sliderTransitionduration'] = $this->getFlexformData('general', 'sliderTransitionduration', $debuglog); $this->lConf['sliderAutoplay'] = $this->getFlexformData('general', 'sliderAutoplay', $debuglog); $debuglog = $this->lConf['style'] == 'slidedeck'; $this->lConf['slidedeckHeight'] = $this->getFlexformData('general', 'slidedeckHeight', $debuglog); $this->lConf['slidedeckTransition'] = $this->getFlexformData('general', 'slidedeckTransition', $debuglog); $this->lConf['slidedeckTransitiondir'] = $this->getFlexformData('general', 'slidedeckTransitiondir', $debuglog); $this->lConf['slidedeckTransitionduration'] = $this->getFlexformData('general', 'slidedeckTransitionduration', $debuglog); $this->lConf['slidedeckStart'] = $this->getFlexformData('general', 'slidedeckStart', $debuglog); $this->lConf['slidedeckActivecorner'] = $this->getFlexformData('general', 'slidedeckActivecorner', $debuglog); $this->lConf['slidedeckIndex'] = $this->getFlexformData('general', 'slidedeckIndex', $debuglog); $this->lConf['slidedeckScroll'] = $this->getFlexformData('general', 'slidedeckScroll', $debuglog); $this->lConf['slidedeckKeys'] = $this->getFlexformData('general', 'slidedeckKeys', $debuglog); $this->lConf['slidedeckHidespines'] = $this->getFlexformData('general', 'slidedeckHidespines', $debuglog); $debuglog = $this->lConf['style'] == 'easyaccordion'; $this->lConf['easyaccordionSkin'] = $this->getFlexformData('general', 'easyaccordionSkin', $debuglog); $this->lConf['easyaccordionOpen'] = $this->getFlexformData('general', 'easyaccordionOpen', $debuglog); $this->lConf['easyaccordionWidth'] = $this->getFlexformData('general', 'easyaccordionWidth', $debuglog); $this->lConf['easyaccordionSlideNum'] = $this->getFlexformData('general', 'easyaccordionSlideNum', $debuglog); $debuglog = $this->lConf['style'] == 'booklet'; $this->lConf['bookletWidth'] = $this->getFlexformData('general', 'bookletWidth', $debuglog); $this->lConf['bookletHeight'] = $this->getFlexformData('general', 'bookletHeight', $debuglog); $this->lConf['bookletSpeed'] = $this->getFlexformData('general', 'bookletSpeed', $debuglog); $this->lConf['bookletStartingPage'] = $this->getFlexformData('general', 'bookletStartingPage', $debuglog); $this->lConf['bookletRTL'] = $this->getFlexformData('general', 'bookletRTL', $debuglog); $this->lConf['bookletTransition'] = $this->getFlexformData('general', 'bookletTransition', $debuglog); $this->lConf['bookletTransitiondir'] = $this->getFlexformData('general', 'bookletTransitiondir', $debuglog); $this->lConf['bookletPagePadding'] = $this->getFlexformData('general', 'bookletPagePadding', $debuglog); $this->lConf['bookletPageNumbers'] = $this->getFlexformData('general', 'bookletPageNumbers', $debuglog); $this->lConf['bookletManual'] = $this->getFlexformData('general', 'bookletManual', $debuglog); $this->lConf['bookletShadows'] = $this->getFlexformData('general', 'bookletShadows', $debuglog); $this->lConf['bookletClosed'] = $this->getFlexformData('general', 'bookletClosed', $debuglog); $this->lConf['bookletCovers'] = $this->getFlexformData('general', 'bookletCovers', $debuglog); $this->lConf['bookletAutoCenter'] = $this->getFlexformData('general', 'bookletAutoCenter', $debuglog); $this->lConf['bookletHash'] = $this->getFlexformData('general', 'bookletHash', $debuglog); $this->lConf['bookletKeyboard'] = $this->getFlexformData('general', 'bookletKeyboard', $debuglog); $this->lConf['bookletAuto'] = $this->getFlexformData('general', 'bookletAuto', $debuglog); $this->lConf['bookletDelay'] = $this->getFlexformData('general', 'bookletDelay', $debuglog); $this->lConf['bookletOverlays'] = $this->getFlexformData('general', 'bookletOverlays', $debuglog); $this->lConf['bookletArrows'] = $this->getFlexformData('general', 'bookletArrows', $debuglog); $this->lConf['bookletArrowsHide'] = $this->getFlexformData('general', 'bookletArrows', $debuglog); $this->lConf['bookletHovers'] = $this->getFlexformData('general', 'bookletHovers', $debuglog); $this->lConf['delayDuration'] = $this->getFlexformData('general', 'delayDuration', in_array($this->lConf['style'], array('slider', 'slidedeck', 'easyaccordion'))); $this->lConf['autoplayCycle'] = $this->getFlexformData('general', 'autoplayCycle', $this->lConf['style'] == 'slidedeck'); // columns $this->conf['config.']['column1'] = $this->lConf['column1']; $this->conf['config.']['column2'] = $this->lConf['column2']; $this->conf['config.']['column3'] = $this->lConf['column3']; $this->conf['config.']['column4'] = $this->lConf['column4']; $this->conf['config.']['column5'] = $this->lConf['column5']; $this->conf['config.']['columnOrder'] = $this->lConf['columnOrder']; if ($this->lConf['equalize'] < 2) { $this->conf['config.']['equalize'] = $this->lConf['equalize']; } // tab if ($this->lConf['tabCollapsible'] < 2) { $this->conf['config.']['tabCollapsible'] = $this->lConf['tabCollapsible']; } if ($this->lConf['tabOpen'] >= 0) { $this->conf['config.']['tabOpen'] = $this->lConf['tabOpen']; } if ($this->lConf['tabRandomContent'] < 2) { $this->conf['config.']['tabRandomContent'] = $this->lConf['tabRandomContent']; } if (strlen($this->lConf['tabCookieExpires']) > 0) { $this->conf['config.']['tabCookieExpires'] = $this->lConf['tabCookieExpires']; } if ($this->lConf['tabCookieRoot'] < 2) { $this->conf['config.']['tabCookieRoot'] = $this->lConf['tabCookieRoot']; } if ($this->lConf['tabHideEffect']) { $this->conf['config.']['tabHideEffect'] = $this->lConf['tabHideEffect']; } if ($this->lConf['tabHideTransition']) { $this->conf['config.']['tabHideTransition'] = $this->lConf['tabHideTransition']; } if ($this->lConf['tabHideTransitiondir']) { $this->conf['config.']['tabHideTransitiondir'] = $this->lConf['tabHideTransitiondir']; } if ($this->lConf['tabHideTransitionduration'] > 0) { $this->conf['config.']['tabHideTransitionduration'] = $this->lConf['tabHideTransitionduration']; } if ($this->lConf['tabShowEffect']) { $this->conf['config.']['tabShowEffect'] = $this->lConf['tabShowEffect']; } if ($this->lConf['tabShowTransition']) { $this->conf['config.']['tabShowTransition'] = $this->lConf['tabShowTransition']; } if ($this->lConf['tabShowTransitiondir']) { $this->conf['config.']['tabShowTransitiondir'] = $this->lConf['tabShowTransitiondir']; } if ($this->lConf['tabShowTransitionduration'] > 0) { $this->conf['config.']['tabShowTransitionduration'] = $this->lConf['tabShowTransitionduration']; } if (in_array($this->lConf['tabEvent'], array('click', 'mouseover'))) { $this->conf['config.']['tabEvent'] = $this->lConf['tabEvent']; } if (in_array($this->lConf['tabHeightStyle'], array('auto', 'fill', 'content'))) { $this->conf['config.']['tabHeightStyle'] = $this->lConf['tabHeightStyle']; } // accordion if ($this->lConf['accordionCollapsible'] < 2) { $this->conf['config.']['accordionCollapsible'] = $this->lConf['accordionCollapsible']; } if ($this->lConf['accordionClosed'] < 2) { $this->conf['config.']['accordionClosed'] = $this->lConf['accordionClosed']; } if ($this->lConf['accordionOpen'] > 0) { $this->conf['config.']['accordionOpen'] = $this->lConf['accordionOpen']; } if ($this->lConf['accordionRandomContent'] < 2) { $this->conf['config.']['accordionRandomContent'] = $this->lConf['accordionRandomContent']; } if ($this->lConf['accordionEvent']) { $this->conf['config.']['accordionEvent'] = $this->lConf['accordionEvent']; } if (in_array($this->lConf['accordionHeightStyle'], array('auto', 'fill', 'content'))) { $this->conf['config.']['accordionHeightStyle'] = $this->lConf['accordionHeightStyle']; } if ($this->lConf['accordionAnimate'] < 2) { $this->conf['config.']['accordionAnimate'] = $this->lConf['accordionAnimate']; } if ($this->lConf['accordionTransition']) { $this->conf['config.']['accordionTransition'] = $this->lConf['accordionTransition']; } if ($this->lConf['accordionTransitiondir']) { $this->conf['config.']['accordionTransitiondir'] = $this->lConf['accordionTransitiondir']; } if ($this->lConf['accordionTransitionduration'] > 0) { $this->conf['config.']['accordionTransitionduration'] = $this->lConf['accordionTransitionduration']; } // slider if ($this->lConf['sliderWidth']) { $this->conf['config.']['sliderWidth'] = $this->lConf['sliderWidth']; } if ($this->lConf['sliderHeight']) { $this->conf['config.']['sliderHeight'] = $this->lConf['sliderHeight']; } if ($this->lConf['sliderResizeContents'] < 2) { $this->conf['config.']['sliderResizeContents'] = $this->lConf['sliderResizeContents']; } if ($this->lConf['sliderTheme']) { $this->conf['config.']['sliderTheme'] = $this->lConf['sliderTheme']; } if ($this->lConf['sliderMode']) { $this->conf['config.']['sliderMode'] = $this->lConf['sliderMode']; } if ($this->lConf['sliderOpen'] > 0) { $this->conf['config.']['sliderOpen'] = $this->lConf['sliderOpen']; } if ($this->lConf['sliderRandomContent'] < 2) { $this->conf['config.']['sliderRandomContent'] = $this->lConf['sliderRandomContent']; } if ($this->lConf['sliderHashTags'] < 2) { $this->conf['config.']['sliderHashTags'] = $this->lConf['sliderHashTags']; } if ($this->lConf['sliderBuildArrows'] < 2) { $this->conf['config.']['sliderBuildArrows'] = $this->lConf['sliderBuildArrows']; } if ($this->lConf['sliderToggleArrows'] < 2) { $this->conf['config.']['sliderToggleArrows'] = $this->lConf['sliderToggleArrows']; } if ($this->lConf['sliderNavigation'] < 2) { $this->conf['config.']['sliderNavigation'] = $this->lConf['sliderNavigation']; } if ($this->lConf['sliderStartStop'] < 2) { $this->conf['config.']['sliderStartStop'] = $this->lConf['sliderStartStop']; } if ($this->lConf['sliderPanelFromHeader'] < 2) { $this->conf['config.']['sliderPanelFromHeader'] = $this->lConf['sliderPanelFromHeader']; } if ($this->lConf['sliderToggleControls'] < 2) { $this->conf['config.']['sliderToggleControls'] = $this->lConf['sliderToggleControls']; } if ($this->lConf['sliderAutoStart'] < 2) { $this->conf['config.']['sliderAutoStart'] = $this->lConf['sliderAutoStart']; } if ($this->lConf['sliderPauseOnHover'] < 2) { $this->conf['config.']['sliderPauseOnHover'] = $this->lConf['sliderPauseOnHover']; } if ($this->lConf['sliderAllowRapidChange'] < 2) { $this->conf['config.']['sliderAllowRapidChange'] = $this->lConf['sliderAllowRapidChange']; } if ($this->lConf['sliderResumeOnVideoEnd'] < 2) { $this->conf['config.']['sliderResumeOnVideoEnd'] = $this->lConf['sliderResumeOnVideoEnd']; } if ($this->lConf['sliderStopAtEnd'] < 2) { $this->conf['config.']['sliderStopAtEnd'] = $this->lConf['sliderStopAtEnd']; } if ($this->lConf['sliderPlayRtl'] < 2) { $this->conf['config.']['sliderPlayRtl'] = $this->lConf['sliderPlayRtl']; } if ($this->lConf['sliderTransition']) { $this->conf['config.']['sliderTransition'] = $this->lConf['sliderTransition']; } if ($this->lConf['sliderTransitiondir']) { $this->conf['config.']['sliderTransitiondir'] = $this->lConf['sliderTransitiondir']; } if ($this->lConf['sliderTransitionduration'] > 0) { $this->conf['config.']['sliderTransitionduration'] = $this->lConf['sliderTransitionduration']; } if ($this->lConf['sliderAutoplay'] < 2) { $this->conf['config.']['sliderAutoplay'] = $this->lConf['sliderAutoplay']; } // slidedeck if ($this->lConf['slidedeckHeight'] > 0) { $this->conf['config.']['slidedeckHeight'] = $this->lConf['slidedeckHeight']; } if ($this->lConf['slidedeckTransition']) { $this->conf['config.']['slidedeckTransition'] = $this->lConf['slidedeckTransition']; } if ($this->lConf['slidedeckTransitiondir']) { $this->conf['config.']['slidedeckTransitiondir'] = $this->lConf['slidedeckTransitiondir']; } if ($this->lConf['slidedeckTransitionduration'] > 0) { $this->conf['config.']['slidedeckTransitionduration'] = $this->lConf['slidedeckTransitionduration']; } if ($this->lConf['slidedeckStart'] > 0) { $this->conf['config.']['slidedeckStart'] = $this->lConf['slidedeckStart']; } if ($this->lConf['slidedeckActivecorner'] < 2) { $this->conf['config.']['slidedeckActivecorner'] = $this->lConf['slidedeckActivecorner']; } if ($this->lConf['slidedeckIndex'] < 2) { $this->conf['config.']['slidedeckIndex'] = $this->lConf['slidedeckIndex']; } if ($this->lConf['slidedeckScroll'] < 2) { $this->conf['config.']['slidedeckScroll'] = $this->lConf['slidedeckScroll']; } if ($this->lConf['slidedeckKeys'] < 2) { $this->conf['config.']['slidedeckKeys'] = $this->lConf['slidedeckKeys']; } if ($this->lConf['slidedeckHidespines'] < 2) { $this->conf['config.']['slidedeckHidespines'] = $this->lConf['slidedeckHidespines']; } // easyAccordion if ($this->lConf['easyaccordionSkin']) { $this->conf['config.']['easyaccordionSkin'] = $this->lConf['easyaccordionSkin']; } if ($this->lConf['easyaccordionOpen'] > 0) { $this->conf['config.']['easyaccordionOpen'] = $this->lConf['easyaccordionOpen']; } if ($this->lConf['easyaccordionWidth'] > 0) { $this->conf['config.']['easyaccordionWidth'] = $this->lConf['easyaccordionWidth']; } if ($this->lConf['easyaccordionSlideNum'] < 2) { $this->conf['config.']['easyaccordionSlideNum'] = $this->lConf['easyaccordionSlideNum']; } // booklet if ($this->lConf['bookletWidth'] > 0) { $this->conf['config.']['bookletWidth'] = $this->lConf['bookletWidth']; } if ($this->lConf['bookletHeight'] > 0) { $this->conf['config.']['bookletHeight'] = $this->lConf['bookletHeight']; } if ($this->lConf['bookletSpeed'] > 0) { $this->conf['config.']['bookletSpeed'] = $this->lConf['bookletSpeed']; } if ($this->lConf['bookletStartingPage'] > 0) { $this->conf['config.']['bookletStartingPage'] = $this->lConf['bookletStartingPage']; } if ($this->lConf['bookletRTL'] < 2) { $this->conf['config.']['bookletRTL'] = $this->lConf['bookletRTL']; } if ($this->lConf['bookletTransition']) { $this->conf['config.']['bookletTransition'] = $this->lConf['bookletTransition']; } if ($this->lConf['bookletTransitiondir']) { $this->conf['config.']['bookletTransitiondir'] = $this->lConf['bookletTransitiondir']; } if ($this->lConf['bookletPagePadding'] != '') { $this->conf['config.']['bookletPagePadding'] = $this->lConf['bookletPagePadding']; } if ($this->lConf['bookletPageNumbers'] < 2) { $this->conf['config.']['bookletPageNumbers'] = $this->lConf['bookletPageNumbers']; } if ($this->lConf['bookletManual'] < 2) { $this->conf['config.']['bookletManual'] = $this->lConf['bookletManual']; } if ($this->lConf['bookletShadows'] < 2) { $this->conf['config.']['bookletShadows'] = $this->lConf['bookletShadows']; } if ($this->lConf['bookletClosed'] < 2) { $this->conf['config.']['bookletClosed'] = $this->lConf['bookletClosed']; } if ($this->lConf['bookletCovers'] < 2) { $this->conf['config.']['bookletCovers'] = $this->lConf['bookletCovers']; } if ($this->lConf['bookletAutoCenter'] < 2) { $this->conf['config.']['bookletAutoCenter'] = $this->lConf['bookletAutoCenter']; } if ($this->lConf['bookletHash'] < 2) { $this->conf['config.']['bookletHash'] = $this->lConf['bookletHash']; } if ($this->lConf['bookletKeyboard'] < 2) { $this->conf['config.']['bookletKeyboard'] = $this->lConf['bookletKeyboard']; } if ($this->lConf['bookletAuto'] < 2) { $this->conf['config.']['bookletAuto'] = $this->lConf['bookletAuto']; } if ($this->lConf['bookletDelay'] < 2) { $this->conf['config.']['bookletDelay'] = $this->lConf['bookletDelay']; } if ($this->lConf['bookletOverlays'] < 2) { $this->conf['config.']['bookletOverlays'] = $this->lConf['bookletOverlays']; } if ($this->lConf['bookletArrows'] < 2) { $this->conf['config.']['bookletArrows'] = $this->lConf['bookletArrows']; } if ($this->lConf['bookletArrowsHide'] < 2) { $this->conf['config.']['bookletArrowsHide'] = $this->lConf['bookletArrowsHide']; } if ($this->lConf['bookletHovers'] < 2) { $this->conf['config.']['bookletHovers'] = $this->lConf['bookletHovers']; } // autoplay if ($this->lConf['delayDuration'] > 0) { $this->conf['config.']['delayDuration'] = $this->lConf['delayDuration']; } if ($this->lConf['autoplayCycle'] < 2) { $this->conf['config.']['autoplayCycle'] = $this->lConf['autoplayCycle']; } $this->conf['config.']['style'] = $this->lConf['style']; } $this->lConf['titles'] = $this->getFlexformData('title', 'titles'); $this->lConf['attributes'] = $this->getFlexformData('attribute', 'attributes'); $this->lConf['options'] = $this->getFlexformData('special', 'options'); $this->lConf['optionsOverride'] = $this->getFlexformData('special', 'optionsOverride'); if ($this->cObj->data['tx_jfmulticontent_view']) { $this->conf['config.']['view'] = $this->cObj->data['tx_jfmulticontent_view']; } else { $this->conf['config.']['view'] = 'content'; } // define the titles to overwrite if (trim($this->lConf['titles'])) { $this->titles = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(chr(10), $this->lConf['titles']); } // define the attributes if (trim($this->lConf['attributes'])) { $this->attributes = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(chr(10), $this->lConf['attributes']); } // options if ($this->lConf['optionsOverride'] || trim($this->lConf['options'])) { $this->conf['config.'][$this->lConf['style'] . 'Options'] = $this->lConf['options']; $this->conf['config.'][$this->lConf['style'] . 'OptionsOverride'] = $this->lConf['optionsOverride']; } $view = $this->conf['views.'][$this->conf['config.']['view'] . '.']; if ($this->conf['config.']['view'] == 'page') { // get the page ID's $page_ids = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->cObj->data['tx_jfmulticontent_pages']); // get the informations for every page for ($a = 0; $a < count($page_ids); $a++) { $GLOBALS['TSFE']->register['pid'] = $page_ids[$a]; if ($this->confArr['useOwnUserFuncForPages']) { // TemplaVoila will render the content with a userFunc $this->cElements[] = $this->cObj->cObjGetSingle($view['content'], $view['content.']); $this->rels[] = $this->cObj->cObjGetSingle($view['rel'], $view['rel.']); } else { $row = null; if ($GLOBALS['TSFE']->sys_language_content) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages_language_overlay', 'deleted=0 AND hidden=0 AND pid=' . intval($page_ids[$a]) . ' AND sys_language_uid=' . $GLOBALS['TSFE']->sys_language_content, '', '', 1); $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res); } if (!is_array($row)) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages', 'deleted=0 AND hidden=0 AND uid=' . intval($page_ids[$a]), '', '', 1); $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res); } if (is_array($row)) { foreach ($row as $key => $val) { $GLOBALS['TSFE']->register['page_' . $key] = $val; } } $this->cElements[] = $this->cObj->cObjGetSingle($view['content'], $view['content.']); $this->rels[] = $this->cObj->cObjGetSingle($view['rel'], $view['rel.']); $this->content_id[$a] = $page_ids[$a]; } if ($this->titles[$a] == '' || !isset($this->titles[$a])) { $this->titles[$a] = $this->cObj->cObjGetSingle($view['title'], $view['title.']); } } } elseif ($this->conf['config.']['view'] == 'content') { // get the content ID's $content_ids = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->cObj->data['tx_jfmulticontent_contents']); // get the informations for every content for ($a = 0; $a < count($content_ids); $a++) { // Select the content $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tt_content', 'uid=' . intval($content_ids[$a]), '', '', 1); $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res); if ($GLOBALS['TSFE']->sys_language_content) { $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('tt_content', $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL); } elseif ($GLOBALS['TSFE']->sys_page->versioningPreview) { $GLOBALS['TSFE']->sys_page->versionOL('tt_content', $row); } $GLOBALS['TSFE']->register['uid'] = $row['_LOCALIZED_UID'] ? $row['_LOCALIZED_UID'] : $row['uid']; $GLOBALS['TSFE']->register['title'] = strlen(trim($this->titles[$a])) > 0 ? $this->titles[$a] : $row['header']; if ($this->titles[$a] == '' || !isset($this->titles[$a])) { $this->titles[$a] = $this->cObj->cObjGetSingle($view['title'], $view['title.']); $GLOBALS['TSFE']->register['title'] = $this->titles[$a]; } $this->cElements[] = $this->cObj->cObjGetSingle($view['content'], $view['content.']); $this->rels[] = $this->cObj->cObjGetSingle($view['rel'], $view['rel.']); $this->content_id[$a] = $content_ids[$a]; } } elseif ($this->conf['config.']['view'] == 'irre') { // get the content ID's $elementUID = $this->cObj->data['_LOCALIZED_UID'] ? $this->cObj->data['_LOCALIZED_UID'] : $this->cObj->data['uid']; if ($GLOBALS['TSFE']->sys_page->versioningPreview) { $elementUID = $this->cObj->data['_ORIG_uid']; } $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tt_content', 'tx_jfmulticontent_irre_parentid=' . intval($elementUID) . ' AND deleted = 0 AND hidden = 0', '', 'sorting ASC'); $a = 0; while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { if ($GLOBALS['TSFE']->sys_language_content) { $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('tt_content', $row, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL); } elseif ($GLOBALS['TSFE']->sys_page->versioningPreview) { $GLOBALS['TSFE']->sys_page->versionOL('tt_content', $row); } $uid = $row['_LOCALIZED_UID'] ? $row['_LOCALIZED_UID'] : $row['uid']; if ($row['t3ver_oid']) { $uid = $row['t3ver_oid']; } $GLOBALS['TSFE']->register['uid'] = $uid; $GLOBALS['TSFE']->register['title'] = strlen(trim($this->titles[$a])) > 0 ? $this->titles[$a] : $row['header']; if ($this->titles[$a] == '' || !isset($this->titles[$a])) { $this->titles[$a] = $this->cObj->cObjGetSingle($view['title'], $view['title.']); $GLOBALS['TSFE']->register['title'] = $this->titles[$a]; } $this->cElements[] = $this->cObj->cObjGetSingle($view['content'], $view['content.']); $this->rels[] = $this->cObj->cObjGetSingle($view['rel'], $view['rel.']); $this->content_id[$a] = $row['uid']; $a++; } } // HOOK for additional views if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['jfmulticontent']['getViews'])) { foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['jfmulticontent']['getViews'] as $_classRef) { $_procObj =& \TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj($_classRef); if ($this->conf['config.']['view'] == $_procObj->getIdentifier()) { if (!method_exists($_procObj, 'isActive') || method_exists($_procObj, 'isActive') && $_procObj->isActive()) { // If the methode "isActive" not exists, this will be true... $_procObj->main($this->content, $this->conf, $this); $this->titles = $_procObj->getTitles(); $this->cElements = $_procObj->getElements(); $this->content_id = $_procObj->getIds(); if (method_exists($_procObj, 'getRels')) { $this->rels = $_procObj->getRels(); } } } } } // define the key of the element $this->setContentKey('jfmulticontent_c' . $this->cObj->data['uid']); } else { // TS config will be used // define the key of the element if ($this->conf['config.']['contentKey']) { $this->setContentKey($this->conf['config.']['contentKey']); } else { $this->setContentKey('jfmulticontent_ts1'); } // Render the contents if (count($this->conf['contents.']) > 0) { foreach ($this->conf['contents.'] as $key => $contents) { $title = trim($this->cObj->cObjGetSingle($contents['title'], $contents['title.'])); $content = trim($this->cObj->cObjGetSingle($contents['content'], $contents['content.'])); if ($content) { $this->titles[] = $title; $this->cElements[] = $content; $this->rels[] = $this->cObj->cObjGetSingle($contents['rel'], $contents['rel.']); $this->content_id[] = $this->cObj->stdWrap($contents['id'], $contents['id.']); } } } } $this->contentCount = count($this->cElements); // return FALSE, if there is no element if ($this->contentCount == 0) { return false; } // The template if (!($this->templateFile = $this->cObj->fileResource($this->conf['templateFile']))) { $this->templateFile = $this->cObj->fileResource('EXT:jfmulticontent/res/tx_jfmulticontent_pi1.tmpl'); } // The template for JS if (!($this->templateFileJS = $this->cObj->fileResource($this->conf['templateFileJS']))) { $this->templateFileJS = $this->cObj->fileResource('EXT:jfmulticontent/res/tx_jfmulticontent_pi1.js'); } // define the jQuery mode and function if ($this->conf['jQueryNoConflict']) { $jQueryNoConflict = 'jQuery.noConflict();'; } else { $jQueryNoConflict = ''; } // style switch ($this->conf['config.']['style']) { case '2column': $this->templatePart = 'TEMPLATE_COLUMNS'; $this->contentCount = 2; $this->classes = array($this->conf['config.']['column1'], $this->conf['config.']['column2']); $this->contentClass = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['2columnClasses']); $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['columnWrap.']['wrap']); break; case '3column': $this->templatePart = 'TEMPLATE_COLUMNS'; $this->contentCount = 3; $this->classes = array($this->conf['config.']['column1'], $this->conf['config.']['column2'], $this->conf['config.']['column3']); $this->contentClass = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['3columnClasses']); $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['columnWrap.']['wrap']); break; case '4column': $this->templatePart = 'TEMPLATE_COLUMNS'; $this->contentCount = 4; $this->classes = array($this->conf['config.']['column1'], $this->conf['config.']['column2'], $this->conf['config.']['column3'], $this->conf['config.']['column4']); $this->contentClass = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['4columnClasses']); $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['columnWrap.']['wrap']); break; case '5column': $this->templatePart = 'TEMPLATE_COLUMNS'; $this->contentCount = 5; $this->classes = array($this->conf['config.']['column1'], $this->conf['config.']['column2'], $this->conf['config.']['column3'], $this->conf['config.']['column4'], $this->conf['config.']['column5']); $this->contentClass = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['5columnClasses']); $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['columnWrap.']['wrap']); break; case 'tab': // jQuery Tabs $this->templatePart = 'TEMPLATE_TAB'; $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['tabWrap.']['wrap']); // the id attribute is not permitted in tabs-style if (count($this->attributes) > 0) { foreach ($this->attributes as $key => $attribute) { if (preg_match("/id=[\"|\\'](.*?)[\"|\\']/i", $attribute, $preg)) { $this->attributes[$key] = trim(str_replace($preg[0], '', $attribute)); } } } $this->pagerenderer->addJS($jQueryNoConflict); $options = array(); if ($this->conf['config.']['tabCollapsible']) { $options['collapsible'] = 'collapsible:true'; if (!$this->conf['config.']['tabOpen']) { $options['active'] = 'active:false'; } } if ($this->conf['config.']['tabRandomContent']) { $options['active'] = "active:Math.floor(Math.random()*{$this->contentCount})"; } elseif (is_numeric($this->conf['config.']['tabOpen'])) { $options['active'] = 'active:' . ($this->conf['config.']['tabOpen'] - 1); } if (in_array($this->conf['config.']['tabEvent'], array('click', 'mouseover'))) { $options['event'] = "event:'{$this->conf['config.']['tabEvent']}'"; } if (in_array($this->conf['config.']['tabHeightStyle'], array('auto', 'fill', 'content'))) { $options['heightStyle'] = "heightStyle:'{$this->conf['config.']['tabHeightStyle']}'"; } // Add Cookies script, if cookie is active if ($this->conf['config.']['tabCookieExpires'] > 0 && $this->conf['config.']['tabOpen'] != -1) { if (T3JQUERY !== true) { $this->pagerenderer->addJsFile($this->conf['jQueryCookies']); } unset($options['active']); $cookie_path = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI'); if ($this->lConf['tabCookieRoot'] || preg_match("/^\\/index.php/i", $cookie_path)) { $cookie_path = '/'; } $options['activate'] = "activate:function(e,ui) { jQuery.cookie('{$this->getContentKey()}', ui.newTab.index(), { expires: " . $this->conf['config.']['tabCookieExpires'] . ", path:'{$cookie_path}' }); }"; $options['active'] = "active:jQuery.cookie('{$this->getContentKey()}')"; } if ($this->conf['config.']['tabHideEffect'] == 'none') { $options['hide'] = 'hide:false'; } elseif ($this->conf['config.']['tabHideEffect']) { $fx = array(); $fx[] = "effect:'{$this->conf['config.']['tabHideEffect']}'"; if (is_numeric($this->conf['config.']['tabHideTransitionduration'])) { $fx[] = "duration:'{$this->conf['config.']['tabHideTransitionduration']}'"; } if ($this->conf['config.']['tabHideTransition']) { $fx[] = "easing:'" . (in_array($this->conf['config.']['tabHideTransition'], array('swing', 'linear')) ? '' : "ease{$this->conf['config.']['tabHideTransitiondir']}") . "{$this->conf['config.']['tabHideTransition']}'"; } $options['hide'] = 'hide:{' . implode(',', $fx) . '}'; } if ($this->conf['config.']['tabShowEffect'] == 'none') { $options['show'] = 'show:false'; } elseif ($this->conf['config.']['tabShowEffect']) { $fx = array(); $fx[] = "effect:'{$this->conf['config.']['tabShowEffect']}'"; if (is_numeric($this->conf['config.']['tabShowTransitionduration'])) { $fx[] = "duration:'{$this->conf['config.']['tabShowTransitionduration']}'"; } if ($this->conf['config.']['tabShowTransition']) { $fx[] = "easing:'" . (in_array($this->conf['config.']['tabShowTransition'], array('swing', 'linear')) ? '' : "ease{$this->conf['config.']['tabShowTransitiondir']}") . "{$this->conf['config.']['tabShowTransition']}'"; } $options['show'] = 'show:{' . implode(',', $fx) . '}'; } // overwrite all options if set if ($this->conf['config.']['tabOptionsOverride']) { $options = array($this->conf['config.']['tabOptions']); } else { if ($this->conf['config.']['tabOptions']) { $options['options'] = $this->conf['config.']['tabOptions']; } } // get the Template of the Javascript $markerArray = array(); // get the template if (!($templateCode = trim($this->cObj->getSubpart($this->templateFileJS, '###TEMPLATE_TAB_JS###')))) { $templateCode = $this->outputError('Template TEMPLATE_TAB_JS is missing', true); } // open tab by hash if ($this->confArr['tabSelectByHash']) { $tabSelector = trim($this->cObj->getSubpart($templateCode, '###TAB_SELECT_BY_HASH###')); } else { $tabSelector = null; } $templateCode = trim($this->cObj->substituteSubpart($templateCode, '###TAB_SELECT_BY_HASH###', $tabSelector, 0)); // app the open-link-template if ($this->confArr['openExternalLink']) { $openExtLink = trim($this->cObj->getSubpart($templateCode, '###OPEN_EXTERNAL_LINK###')); } else { $openExtLink = null; } $templateCode = trim($this->cObj->substituteSubpart($templateCode, '###OPEN_EXTERNAL_LINK###', $openExtLink, 0)); // Replace default values $markerArray['KEY'] = $this->getContentKey(); $markerArray['PREG_QUOTE_KEY'] = preg_quote($this->getContentKey(), '/'); $markerArray['OPTIONS'] = implode(', ', $options); $templateCode = $this->cObj->substituteMarkerArray($templateCode, $markerArray, '###|###', 0); // Add all CSS and JS files if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); $this->pagerenderer->addJsFile($this->conf['jQueryUI']); } $this->pagerenderer->addCssFile($this->conf['jQueryUIstyle']); $this->pagerenderer->addJS($templateCode); break; case 'accordion': // jQuery Accordion $this->templatePart = 'TEMPLATE_ACCORDION'; $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['accordionWrap.']['wrap']); $this->pagerenderer->addJS($jQueryNoConflict); $options = array(); if ($this->conf['config.']['accordionCollapsible']) { $options['collapsible'] = 'collapsible:true'; } if ($this->conf['config.']['accordionClosed']) { $options['active'] = 'active:false'; $options['collapsible'] = 'collapsible:true'; } elseif ($this->conf['config.']['accordionRandomContent']) { $options['active'] = "active:Math.floor(Math.random()*{$this->contentCount})"; } elseif ($this->conf['config.']['accordionOpen'] > 0) { $options['active'] = 'active:' . ($this->conf['config.']['accordionOpen'] - 1); } if (in_array($this->conf['config.']['accordionEvent'], array('click', 'mouseover'))) { $options['event'] = "event:'{$this->conf['config.']['accordionEvent']}'"; } if (in_array($this->conf['config.']['accordionHeightStyle'], array('auto', 'fill', 'content'))) { $options['heightStyle'] = "heightStyle:'{$this->conf['config.']['accordionHeightStyle']}'"; } // get the Template of the Javascript $markerArray = array(); $markerArray['KEY'] = $this->getContentKey(); $markerArray['CONTENT_COUNT'] = $this->contentCount; $markerArray['EASING'] = in_array($this->conf['config.']['accordionTransition'], array('swing', 'linear')) ? '' : 'ease' . $this->conf['config.']['accordionTransitiondir'] . $this->conf['config.']['accordionTransition']; $markerArray['TRANS_DURATION'] = is_numeric($this->conf['config.']['accordionTransitionduration']) ? $this->conf['config.']['accordionTransitionduration'] : 1000; // get the template for the Javascript if (!($templateCode = trim($this->cObj->getSubpart($this->templateFileJS, '###TEMPLATE_ACCORDION_JS###')))) { $templateCode = $this->outputError('Template TEMPLATE_ACCORDION_JS is missing', true); } $easingAnimation = null; if (!$this->conf['config.']['accordionAnimate']) { $options['animate'] = 'animate:false'; } else { $fx = array(); if (is_numeric($this->conf['config.']['accordionTransitionduration'])) { $fx[] = "duration:'{$this->conf['config.']['accordionTransitionduration']}'"; } if ($this->conf['config.']['accordionTransition']) { $fx[] = "easing:'" . (in_array($this->conf['config.']['accordionTransition'], array('swing', 'linear')) ? '' : "ease{$this->conf['config.']['accordionTransitiondir']}") . "{$this->conf['config.']['accordionTransition']}'"; } $options['animate'] = 'animate:{' . implode(',', $fx) . '}'; } // app the open-link-template if ($this->confArr['openExternalLink']) { $openExtLink = trim($this->cObj->getSubpart($templateCode, '###OPEN_EXTERNAL_LINK###')); } else { $openExtLink = null; } $templateCode = trim($this->cObj->substituteSubpart($templateCode, '###OPEN_EXTERNAL_LINK###', $openExtLink, 0)); // open tab by hash if ($this->confArr['tabSelectByHash']) { $tabSelector = trim($this->cObj->getSubpart($templateCode, '###TAB_SELECT_BY_HASH###')); } else { $tabSelector = null; } $templateCode = trim($this->cObj->substituteSubpart($templateCode, '###TAB_SELECT_BY_HASH###', $tabSelector, 0)); // overwrite all options if set if ($this->conf['config.']['accordionOptionsOverride']) { $options = array($this->conf['config.']['accordionOptions']); } else { if ($this->conf['config.']['accordionOptions']) { $options['options'] = $this->conf['config.']['accordionOptions']; } } // Replace default values $markerArray['OPTIONS'] = implode(', ', $options); // Replace all markers $templateCode = $this->cObj->substituteMarkerArray($templateCode, $markerArray, '###|###', 0); // Add all CSS and JS files if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); $this->pagerenderer->addJsFile($this->conf['jQueryUI']); } $this->pagerenderer->addCssFile($this->conf['jQueryUIstyle']); $this->pagerenderer->addJS(trim($templateCode)); break; case 'slider': // anythingslider $this->templatePart = 'TEMPLATE_SLIDER'; $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['sliderWrap.']['wrap']); $this->pagerenderer->addJS($jQueryNoConflict); // if ($this->conf['config.']['sliderTransition']) { $options[] = "easing: '" . (in_array($this->conf['config.']['sliderTransition'], array('swing', 'linear')) ? '' : "ease{$this->conf['config.']['sliderTransitiondir']}") . "{$this->conf['config.']['sliderTransition']}'"; } if ($this->conf['config.']['sliderTransitionduration'] > 0) { $options[] = "animationTime: {$this->conf['config.']['sliderTransitionduration']}"; } if ($this->conf['config.']['sliderAutoplay']) { $options[] = 'autoPlay: true'; } else { $options[] = 'autoPlay: false'; } if ($this->conf['config.']['delayDuration'] > 0) { $options[] = "delay: {$this->conf['config.']['delayDuration']}"; $options[] = 'startStopped: ' . ($this->conf['config.']['sliderAutoStart'] ? 'false' : 'true'); $options[] = 'stopAtEnd: ' . ($this->conf['config.']['sliderStopAtEnd'] ? 'true' : 'false'); } else { // Toggle only if not autoplay $options[] = 'toggleArrows: ' . ($this->conf['config.']['sliderToggleArrows'] ? 'true' : 'false'); $options[] = 'toggleControls: ' . ($this->conf['config.']['sliderToggleControls'] ? 'true' : 'false'); } $sliderWidth = trim($this->conf['config.']['sliderWidth']); $sliderHeight = trim($this->conf['config.']['sliderHeight']); if ($sliderWidth || $sliderHeight) { if (is_numeric($sliderWidth)) { $sliderWidth .= 'px'; } if (is_numeric($sliderHeight)) { $sliderHeight .= 'px'; } $this->pagerenderer->addCSS("#{$this->getContentKey()} {\n" . ($sliderWidth ? "\twidth: {$sliderWidth};\n" : '') . ($sliderHeight ? "\theight: {$sliderHeight};\n" : '') . '}'); } if ($this->conf['config.']['sliderResizeContents']) { $options[] = 'resizeContents: true'; } $this->pagerenderer->addCssFile($this->conf['sliderCSS']); $this->pagerenderer->addCssFileInc($this->conf['sliderCSSie7'], 'lte IE 7'); if ($this->conf['config.']['sliderTheme']) { $options[] = "theme: '" . \TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($this->conf['config.']['sliderTheme']) . "'"; if (substr($this->confArr['anythingSliderThemeFolder'], 0, 4) === 'EXT:') { list($extKey, $local) = explode('/', substr($this->confArr['anythingSliderThemeFolder'], 4), 2); $anythingSliderThemeFolder = t3lib_extMgm::siteRelPath($extKey) . $local; } else { $anythingSliderThemeFolder = $this->confArr['anythingSliderThemeFolder']; } $this->pagerenderer->addCssFile(\TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($anythingSliderThemeFolder) . $this->conf['config.']['sliderTheme'] . '/style.css'); } if ($this->conf['config.']['sliderMode']) { $options[] = "mode: '" . $this->conf['config.']['sliderMode'] . "'"; } $options[] = 'buildArrows: ' . ($this->conf['config.']['sliderBuildArrows'] ? 'true' : 'false'); $options[] = 'allowRapidChange: ' . ($this->conf['config.']['sliderAllowRapidChange'] ? 'true' : 'false'); $options[] = 'resumeOnVideoEnd: ' . ($this->conf['config.']['sliderResumeOnVideoEnd'] ? 'true' : 'false'); $options[] = 'playRtl: ' . ($this->conf['config.']['sliderPlayRtl'] ? 'true' : 'false'); $options[] = 'hashTags: ' . ($this->conf['config.']['sliderHashTags'] ? 'true' : 'false'); $options[] = 'pauseOnHover: ' . ($this->conf['config.']['sliderPauseOnHover'] ? 'true' : 'false'); $options[] = 'buildNavigation: ' . ($this->conf['config.']['sliderNavigation'] ? 'true' : 'false'); $options[] = 'buildStartStop: ' . ($this->conf['config.']['sliderStartStop'] ? 'true' : 'false'); $options[] = "startText: '" . \TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($this->pi_getLL('slider_start')) . "'"; $options[] = "stopText: '" . \TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($this->pi_getLL('slider_stop')) . "'"; if ($this->pi_getLL('slider_forward')) { $options[] = "forwardText: '" . \TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($this->pi_getLL('slider_forward')) . "'"; } if ($this->pi_getLL('slider_back')) { $options[] = "backText: '" . \TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($this->pi_getLL('slider_back')) . "'"; } // define the paneltext if ($this->conf['config.']['sliderPanelFromHeader']) { $tab = array(); for ($a = 0; $a < $this->contentCount; $a++) { $tab[] = 'if(i==' . ($a + 1) . ') return ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($this->titles[$a]) . ';'; } $options[] = "navigationFormatter: function(i,p){\n\t\t\t" . implode("\n\t\t\t", $tab) . "\n\t\t}"; } elseif (trim($this->pi_getLL('slider_panel'))) { $options[] = "navigationFormatter: function(i,p){ var str = '" . \TYPO3\CMS\Core\Utility\GeneralUtility::slashJS($this->pi_getLL('slider_panel')) . "'; return str.replace('%i%',i); }"; } if ($this->conf['config.']['sliderRandomContent']) { $options[] = 'startPanel: Math.floor(Math.random()*' . ($this->contentCount + 1) . ')'; } elseif ($this->conf['config.']['sliderOpen'] > 1) { $options[] = 'startPanel: ' . ($this->conf['config.']['sliderOpen'] < $this->contentCount ? $this->conf['config.']['sliderOpen'] : $this->contentCount); } // overwrite all options if set if ($this->conf['config.']['sliderOptionsOverride']) { $options = array($this->conf['config.']['sliderOptions']); } else { if ($this->conf['config.']['sliderOptions']) { $options[] = $this->conf['config.']['sliderOptions']; } } // get the Template of the Javascript $markerArray = array(); // get the template if (!($templateCode = trim($this->cObj->getSubpart($this->templateFileJS, '###TEMPLATE_SLIDER_JS###')))) { $templateCode = $this->outputError('Template TEMPLATE_SLIDER_JS is missing', true); } // Replace default values $markerArray['KEY'] = $this->getContentKey(); $markerArray['OPTIONS'] = implode(', ', $options); $templateCode = $this->cObj->substituteMarkerArray($templateCode, $markerArray, '###|###', 0); // Add all CSS and JS files if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); } $this->pagerenderer->addJsFile($this->conf['sliderJS']); if ($this->conf['config.']['sliderResumeOnVideoEnd']) { $this->pagerenderer->addJsFile($this->conf['sliderJSvideo']); } $this->pagerenderer->addJS($templateCode); break; case 'slidedeck': // SlideDeck $this->templatePart = 'TEMPLATE_SLIDEDECK'; $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['slidedeckWrap.']['wrap']); $this->pagerenderer->addJS($jQueryNoConflict); $options = array(); if ($this->conf['config.']['slidedeckTransitionduration']) { $options['speed'] = "speed: {$this->conf['config.']['slidedeckTransitionduration']}"; } if ($this->conf['config.']['slidedeckTransition']) { $options['transition'] = "transition: '" . (in_array($this->conf['config.']['slidedeckTransition'], array('swing', 'linear')) ? '' : "ease{$this->conf['config.']['slidedeckTransitiondir']}") . "{$this->conf['config.']['slidedeckTransition']}'"; } if ($this->conf['config.']['slidedeckStart']) { $options['start'] = "start: {$this->conf['config.']['slidedeckStart']}"; } $options['activeCorner'] = 'activeCorner: ' . ($this->conf['config.']['slidedeckActivecorner'] ? 'true' : 'false'); $options['index'] = 'index: ' . ($this->conf['config.']['slidedeckIndex'] ? 'true' : 'false'); $options['scroll'] = 'scroll: ' . ($this->conf['config.']['slidedeckScroll'] ? 'true' : 'false'); $options['keys'] = 'keys: ' . ($this->conf['config.']['slidedeckKeys'] ? 'true' : 'false'); $options['hideSpines'] = 'hideSpines: ' . ($this->conf['config.']['slidedeckHidespines'] ? 'true' : 'false'); if ($this->conf['config.']['delayDuration'] > 0) { $options['autoPlay'] = 'autoPlay: true'; $options['autoPlayInterval'] = "autoPlayInterval: {$this->conf['config.']['delayDuration']}"; $options['cycle'] = 'cycle: ' . ($this->conf['config.']['autoplayCycle'] ? 'true' : 'false'); } // overwrite all options if set if ($this->conf['config.']['slidedeckOptionsOverride']) { $options = array($this->conf['config.']['slidedeckOptions']); } else { if ($this->conf['config.']['slidedeckOptions']) { $options['options'] = $this->conf['config.']['slidedeckOptions']; } } // get the template for the Javascript if (!($templateCode = trim($this->cObj->getSubpart($this->templateFileJS, '###TEMPLATE_SLIDEDECK_JS###')))) { $templateCode = $this->outputError('Template TEMPLATE_SLIDEDECK_JS is missing', true); } // Replace default values $markerArray = array(); $markerArray['KEY'] = $this->getContentKey(); $markerArray['HEIGHT'] = $this->conf['config.']['slidedeckHeight'] > 0 ? $this->conf['config.']['slidedeckHeight'] : 300; $markerArray['OPTIONS'] = implode(', ', $options); // Replace all markers $templateCode = $this->cObj->substituteMarkerArray($templateCode, $markerArray, '###|###', 0); // Add all CSS and JS files if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); } $this->pagerenderer->addJsFile($this->conf['slidedeckJS']); $this->pagerenderer->addCssFile($this->conf['slidedeckCSS']); if ($this->conf['config.']['slidedeckScroll']) { $this->pagerenderer->addJsFile($this->conf['jQueryMouseWheel']); } $this->pagerenderer->addJS(trim($templateCode)); break; case 'easyaccordion': // easyaccordion $this->templatePart = 'TEMPLATE_EASYACCORDION'; $this->additionalMarker['SKIN'] = $this->conf['config.']['easyaccordionSkin']; $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['easyaccordionWrap.']['wrap']); $this->pagerenderer->addJS($jQueryNoConflict); $options = array(); if ($this->conf['config.']['delayDuration'] > 0) { $options['autoStart'] = 'autoStart: true'; $options['slideInterval'] = "slideInterval: {$this->conf['config.']['delayDuration']}"; } $options['slideNum'] = 'slideNum: ' . ($this->conf['config.']['easyaccordionSlideNum'] ? 'true' : 'false'); // overwrite all options if set if ($this->conf['config.']['optionsOverride']) { $options = array($this->conf['config.']['slideOptions']); } else { if ($this->conf['config.']['slideOptions']) { $options['options'] = $this->conf['config.']['slideOptions']; } } // get the template for the Javascript if (!($templateCode = trim($this->cObj->getSubpart($this->templateFileJS, '###TEMPLATE_EASYACCORDION_JS###')))) { $templateCode = $this->outputError('Template TEMPLATE_EASYACCORDION_JS is missing', true); } // Replace default values $markerArray = array(); $markerArray['KEY'] = $this->getContentKey(); $markerArray['WIDTH'] = $this->conf['config.']['easyaccordionWidth'] > 0 ? $this->conf['config.']['easyaccordionWidth'] : 600; $markerArray['OPTIONS'] = implode(', ', $options); // Replace all markers $templateCode = $this->cObj->substituteMarkerArray($templateCode, $markerArray, '###|###', 0); // Add all CSS and JS files if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); } $this->pagerenderer->addJsFile($this->conf['easyaccordionJS']); $this->pagerenderer->addCssFile($this->conf['easyaccordionCSS']); $this->pagerenderer->addCssFile($this->confArr['easyAccordionSkinFolder'] . $this->conf['config.']['easyaccordionSkin'] . '/style.css'); $this->pagerenderer->addJS(trim($templateCode)); break; case 'booklet': // easyaccordion $this->templatePart = 'TEMPLATE_BOOKLET'; $this->contentWrap = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('|*|', $this->conf['bookletWrap.']['wrap']); $this->pagerenderer->addJS($jQueryNoConflict); $options = array(); if (is_numeric($this->conf['config.']['bookletWidth'])) { $options['width'] = 'width: ' . $this->conf['config.']['bookletWidth']; } if (is_numeric($this->conf['config.']['bookletHeight'])) { $options['height'] = 'height: ' . $this->conf['config.']['bookletHeight']; } if (is_numeric($this->conf['config.']['bookletSpeed'])) { $options['speed'] = 'speed: ' . $this->conf['config.']['bookletSpeed']; } if (is_numeric($this->conf['config.']['bookletStartingPage'])) { $options['startingPage'] = 'startingPage: ' . $this->conf['config.']['bookletStartingPage']; } if ($this->conf['config.']['bookletRTL']) { $options['direction'] = "direction: 'RTL'"; } if ($this->conf['config.']['bookletTransition']) { $options['transition'] = "easing: '" . (in_array($this->conf['config.']['bookletTransition'], array('swing', 'linear')) ? '' : "ease{$this->conf['config.']['bookletTransitiondir']}") . "{$this->conf['config.']['bookletTransition']}'"; } if (is_numeric($this->conf['config.']['bookletPagePadding'])) { $options['pagePadding'] = 'pagePadding: ' . $this->conf['config.']['bookletPagePadding']; } $options['pageNumbers'] = 'pageNumbers: ' . ($this->conf['config.']['bookletPageNumbers'] ? 'true' : 'false'); $options['manual'] = 'manual: ' . ($this->conf['config.']['bookletManual'] ? 'true' : 'false'); $options['shadows'] = 'shadows: ' . ($this->conf['config.']['bookletShadows'] ? 'true' : 'false'); $options['closed'] = 'closed: ' . ($this->conf['config.']['bookletClosed'] ? 'true' : 'false'); $options['covers'] = 'covers: ' . ($this->conf['config.']['bookletCovers'] ? 'true' : 'false'); $options['autoCenter'] = 'autoCenter: ' . ($this->conf['config.']['bookletAutoCenter'] ? 'true' : 'false'); $options['hash'] = 'hash: ' . ($this->conf['config.']['bookletHash'] ? 'true' : 'false'); $options['keyboard'] = 'keyboard: ' . ($this->conf['config.']['bookletKeyboard'] ? 'true' : 'false'); $options['overlays'] = 'overlays: ' . ($this->conf['config.']['bookletOverlays'] ? 'true' : 'false'); $options['arrows'] = 'arrows: ' . ($this->conf['config.']['bookletArrows'] ? 'true' : 'false'); $options['arrowsHide'] = 'arrowsHide: ' . ($this->conf['config.']['bookletArrowsHide'] ? 'true' : 'false'); $options['hovers'] = 'hovers: ' . ($this->conf['config.']['bookletHovers'] ? 'true' : 'false'); // overwrite all options if set if ($this->conf['config.']['bookletOptionsOverride']) { $options = array($this->conf['config.']['bookletOptions']); } else { if ($this->conf['config.']['bookletOptions']) { $options['options'] = $this->conf['config.']['bookletOptions']; } } // get the template for the Javascript if (!($templateCode = trim($this->cObj->getSubpart($this->templateFileJS, '###TEMPLATE_BOOKLET_JS###')))) { $templateCode = $this->outputError('Template TEMPLATE_BOOKLET_JS is missing', true); } // Replace default values $markerArray = array(); $markerArray['KEY'] = $this->getContentKey(); $markerArray['OPTIONS'] = implode(",\n\t\t", $options); // Replace all markers $templateCode = $this->cObj->substituteMarkerArray($templateCode, $markerArray, '###|###', 0); // Add all CSS and JS files if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); } $this->pagerenderer->addJsFile($this->conf['bookletJS']); $this->pagerenderer->addCssFile($this->conf['bookletCSS']); $this->pagerenderer->addJS(trim($templateCode)); break; default: return $this->outputError('NO VALID TEMPLATE SELECTED', false); } // add the CSS file $this->pagerenderer->addCssFile($this->conf['cssFile']); // Add the ressources if (!$this->conf['disableJs']) { $this->pagerenderer->addResources(); } // Render the Template $content = $this->renderTemplate(); return $this->pi_wrapInBaseClass($content); }
<?php /* Add Hooks */ if (TYPO3_MODE != 'BE') { if (class_exists(t3lib_utility_VersionNumber)) { $TYPO3_version = t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version); } else { $TYPO3_version = t3lib_div::int_from_ver(TYPO3_version); } if ($TYPO3_version >= 4003000) { $confArr = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['t3jquery']); if ($confArr['alwaysIntegrate']) { require_once t3lib_extMgm::extPath('t3jquery') . 'class.tx_t3jquery.php'; tx_t3jquery::addJqJS(); } } }
/** * Parse all images into the template * * @param string $dir * @param boolean $onlyJS * @return string */ public function parseTemplate($dir = '', $onlyJS = false) { $this->pagerenderer = t3lib_div::makeInstance('tx_imagecarousel_pagerenderer'); $this->pagerenderer->setConf($this->conf); // define the directory of images if ($dir == '') { $dir = $this->imageDir; } // define the contentKey if not exist if ($this->getContentKey() == '') { $this->setContentKey($this->extKey . '_key'); } // define the jQuery mode and function if ($this->conf['jQueryNoConflict']) { $jQueryNoConflict = "jQuery.noConflict();"; } else { $jQueryNoConflict = ""; } preg_match("/^([0-9]*)/i", $this->conf['imagewidth'], $reg_width); preg_match("/^([0-9]*)/i", $this->conf['imageheight'], $reg_height); $css_width = is_numeric($reg_width[1]) ? $reg_width[1] . "px" : $this->conf['imagewidth']; $css_height = is_numeric($reg_height[1]) ? $reg_height[1] . "px" : $this->conf['imageheight']; // add CSS file for skin $skin_class = null; if ($this->conf['skin']) { $confArr = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['imagecarousel']); $this->pagerenderer->addCssFile("{$confArr['skinFolder']}/{$this->conf['skin']}/skin.css"); $skin_class = "jcarousel-skin-{$this->conf['skin']}"; } // checks if t3jquery is loaded if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); } // define the js files $this->pagerenderer->addJsFile($this->conf['jQueryCarousel']); $this->pagerenderer->addJsFile($this->conf['jsScript']); // get the options from config $options = array(); $options[] = "size: " . count($this->images); if ($this->conf['vertical']) { // turn off the externalcontrol $this->conf['externalcontrol'] = 0; $options[] = "vertical: true"; } if ($this->conf['auto'] > 0) { $options[] = "auto: " . $this->conf['auto'] / 1000; } if (in_array($this->conf['transition'], array('linear', 'swing'))) { $options[] = "easing: '{$this->conf['transition']}'"; } elseif ($this->conf['transitiondir'] && $this->conf['transition']) { $options[] = "easing: 'ease{$this->conf['transitiondir']}{$this->conf['transition']}'"; } if ($this->conf['transitionduration'] > 0) { $options[] = "animation: {$this->conf['transitionduration']}"; } if (in_array($this->conf['movewrap'], array("first", "last", "both", "circular"))) { if (!($this->conf['externalcontrol'] && $this->conf['movewrap'] == "circular")) { $options[] = "wrap: '{$this->conf['movewrap']}'"; } } if ($this->conf['rtl']) { $options[] = "rtl: true"; } if ($this->conf['scroll'] > 0) { if ($this->conf['scroll'] > count($this->images)) { $this->conf['scroll'] = count($this->images); } $options[] = "scroll: {$this->conf['scroll']}"; } // init Callback $initCallback[] = "imagecarousel.initCallback('#{$this->getContentKey()}',carousel,state)"; if ($this->conf['stoponmouseover'] == 1) { $initCallback[] = "imagecarousel.initCallbackMouseover(carousel,state)"; } $options[] = "initCallback: function(carousel,state){" . implode(";", $initCallback) . ";}"; // hide buttons if ($this->conf['hidenextbutton']) { $options[] = "buttonNextHTML: null"; } if ($this->conf['hidepreviousbutton']) { $options[] = "buttonPrevHTML: null"; } // fallback for childElem if (!$this->conf['carousel.'][$this->type . '.']['childElem']) { $this->conf['carousel.'][$this->type . '.']['childElem'] = 'li'; } $random_script = null; if ($this->conf['random']) { $random_script = "\n\timagecarousel.randomize('#{$this->getContentKey()}','{$this->conf['carousel.'][$this->type . '.']['childElem']}');"; } // caption $jQueryCaptify = null; if ($this->conf['showCaption']) { $captions = array(); if ($this->conf['animation']) { $captions[] = "animation: " . t3lib_div::quoteJSvalue($this->conf['animation']); } if ($this->conf['position']) { $captions[] = "position: " . t3lib_div::quoteJSvalue($this->conf['position']); } if ($this->conf['speedOver']) { $captions[] = "speedOver: " . t3lib_div::quoteJSvalue($this->conf['speedOver']); } if ($this->conf['speedOut']) { $captions[] = "speedOut: " . t3lib_div::quoteJSvalue($this->conf['speedOut']); } if ($this->conf['hideDelay']) { $captions[] = "hideDelay: " . t3lib_div::quoteJSvalue($this->conf['hideDelay']); } if ($this->conf['prefix']) { $captions[] = "prefix: " . t3lib_div::quoteJSvalue($this->conf['prefix']); } if ($this->conf['opacity']) { $captions[] = "opacity: " . t3lib_div::quoteJSvalue($this->conf['opacity']); } if ($this->conf['className']) { $captions[] = "className: " . t3lib_div::quoteJSvalue($this->conf['className']); } if ($this->conf['spanWidth']) { $captions[] = "spanWidth: " . t3lib_div::quoteJSvalue($this->conf['spanWidth']); } $this->pagerenderer->addJsFile($this->conf['jQueryCaptify']); $jQueryCaptify = "\n\tjQuery('#{$this->getContentKey()} img.captify').captify(" . (count($captions) ? "{\n\t\t" . implode(",\n\t\t", $captions) . "\n\t}" : "") . ");"; } $this->pagerenderer->addJS($jQueryNoConflict . "\njQuery(document).ready(function() { {$random_script}\n\tjQuery('#{$this->getContentKey()}-outer').css('display', 'block');\n\tjQuery('#{$this->getContentKey()}').jcarousel(" . (count($options) ? "{\n\t\t" . implode(",\n\t\t", $options) . "\n\t}" : "") . ");{$jQueryCaptify}\n});\n"); if (is_numeric($this->conf['carouselwidth'])) { $this->pagerenderer->addCSS("\n#c{$this->cObj->data['uid']} .jcarousel-clip-horizontal,\n#c{$this->cObj->data['uid']} .jcarousel-container-horizontal {\n\twidth: {$this->conf['carouselwidth']}px;" . ($this->conf['carouselheight'] ? "\n\theight: {$this->conf['carouselheight']}px;" : "") . "\n}\n"); } if (is_numeric($this->conf['carouselheight'])) { $this->pagerenderer->addCSS("\n#c{$this->cObj->data['uid']} .jcarousel-clip-vertical,\n#c{$this->cObj->data['uid']} .jcarousel-container-vertical {\n\theight: {$this->conf['carouselheight']}px;" . ($this->conf['carouselwidth'] ? "\n\twidth: {$this->conf['carouselwidth']}px;" : "") . "\n}\n"); } $this->pagerenderer->addCSS("\n#{$this->getContentKey()}-outer {\n\tdisplay: none;\n}\n#c{$this->cObj->data['uid']} .jcarousel-item {\n\twidth: {$css_width};\n\theight: {$css_height};\n}"); // Add the ressources $this->pagerenderer->addResources(); if ($onlyJS === true) { return true; } $return_string = null; $images = null; $navigation = null; $markerArray = array(); $GLOBALS['TSFE']->register['key'] = $this->getContentKey(); $GLOBALS['TSFE']->register['class'] = $skin_class; $GLOBALS['TSFE']->register['imagewidth'] = $this->conf['imagewidth']; $GLOBALS['TSFE']->register['imageheight'] = $this->conf['imageheight']; $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT'] = 0; if (count($this->images) > 0) { foreach ($this->images as $key => $image_name) { $image = null; $imgConf = $this->conf['carousel.'][$this->type . '.']['image.']; $totalImagePath = $this->imageDir . $image_name; $GLOBALS['TSFE']->register['file'] = $totalImagePath; $GLOBALS['TSFE']->register['href'] = $this->hrefs[$key]; $GLOBALS['TSFE']->register['caption'] = $this->captions[$key]; $GLOBALS['TSFE']->register['description'] = $this->description[$key]; $GLOBALS['TSFE']->register['CURRENT_ID'] = $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT'] + 1; if ($this->hrefs[$key]) { $imgConf['imageLinkWrap.'] = $imgConf['imageHrefWrap.']; } $image = $this->cObj->IMAGE($imgConf); $images .= $this->cObj->typolink($image, $imgConf['imageLinkWrap.']); // create the navigation if ($this->conf['externalcontrol']) { $navigation .= trim($this->cObj->cObjGetSingle($this->conf['carousel.'][$this->type . '.']['navigation'], $this->conf['carousel.'][$this->type . '.']['navigation.'])); } $GLOBALS['TSFE']->register['IMAGE_NUM_CURRENT']++; } $markerArray['NAVIGATION'] = $this->cObj->stdWrap($navigation, $this->conf['carousel.'][$this->type . '.']['navigationWrap.']); // the stdWrap $images = $this->cObj->stdWrap($images, $this->conf['carousel.'][$this->type . '.']['stdWrap.']); $return_string = $this->cObj->substituteMarkerArray($images, $markerArray, '###|###', 0); } return $this->pi_wrapInBaseClass($return_string); }
function includeJquery() { if (t3lib_extMgm::isLoaded('t3jquery')) { require_once t3lib_extMgm::extPath('t3jquery') . 'class.tx_t3jquery.php'; } // checks if t3jquery is loaded if (T3JQUERY === true) { tx_t3jquery::addJqJS(); $out = "\n<!-- jquery: t3jquery -->"; } else { $out = '<script src="fileadmin/res/jquery/js/jquery-1.9.1.min.js" type="text/javascript"></script>'; } return $out; }
function extraCodesProcessor($newsObject) { $content = NULL; $this->cObj = $newsObject->cObj; $this->conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_jfmulticontent_pi1.']; switch ($newsObject->theCode) { case 'LIST_ACCORDION': $content .= $newsObject->displayList(); // Add all CSS and JS files if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); } else { $this->addJsFile($this->conf['jQueryLibrary'], TRUE); $this->addJsFile($this->conf['jQueryEasing']); $this->addJsFile($this->conf['jQueryUI']); } $this->addCssFile($this->conf['jQueryUIstyle']); $this->addResources(); break; case 'LIST_SLIDER': $content .= $newsObject->displayList(); // Add all CSS and JS files if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); } else { $this->addJsFile($this->conf['jQueryLibrary'], TRUE); $this->addJsFile($this->conf['jQueryEasing']); } $this->addJsFile($this->conf['sliderJS']); $this->addCssFile($this->conf['sliderCSS']); $this->addResources(); break; case 'LIST_SLIDEDECK': $content .= $newsObject->displayList(); // Add all CSS and JS files if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); } else { $this->addJsFile($this->conf['jQueryLibrary'], TRUE); $this->addJsFile($this->conf['jQueryEasing']); } $this->addJsFile($this->conf['slidedeckJS']); $this->addCssFile($this->conf['slidedeckCSS']); $this->addJsFile($this->conf['jQueryMouseWheel']); $this->addResources(); break; case 'LIST_EASYACCORDION': $content .= $newsObject->displayList(); // Add all CSS and JS files if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); } else { $this->addJsFile($this->conf['jQueryLibrary'], TRUE); } $this->addJsFile($this->conf['easyaccordionJS']); $this->addCssFile($this->conf['easyaccordionCSS']); $confArr = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['jfmulticontent']); $this->addCssFile($confArr['easyAccordionSkinFolder'] . $this->conf['config.']['easyaccordionSkin'] . "/style.css"); $this->addResources(); break; } return $content; }
/** * The main method of the PlugIn * * @param string $content: The PlugIn content * @param array $conf: The PlugIn configuration * @return The content that is displayed on the website */ function main($content, $conf) { $this->conf = $conf; $this->pagerenderer = t3lib_div::makeInstance('tx_feuserfriends_pagerenderer'); $this->pagerenderer->setConf($this->conf); $this->pi_USER_INT_obj = 1; $this->pi_setPiVarDefaults(); $this->pi_loadLL(); if (!is_numeric($this->conf['ajaxTypeNum'])) { $this->conf['ajaxTypeNum'] = 500; } $this->internal['currentTable'] = 'fe_users'; $GLOBALS["TSFE"]->set_no_cache(); // $this->img_fields = t3lib_div::trimExplode(',', $this->conf['imageFields'], TRUE); $this->url_fields = t3lib_div::trimExplode(',', $this->conf['linkFields'], TRUE); $this->rte_fields = t3lib_div::trimExplode(',', $this->conf['rteFields'], TRUE); // define the id for detaile $this->detailId = is_numeric($this->conf['detailId']) ? $this->conf['detailId'] : $GLOBALS['TSFE']->id; // define the loggedin feuser $this->feuserId = $GLOBALS['TSFE']->fe_user->user['uid']; // The template if ($this->conf['templateFile']) { $this->templateFile = $this->cObj->fileResource($this->conf['templateFile']); } else { return '<p>NO TEMPLATE FOUND!</p>'; } // prepare for handling by code in class piBase $this->conf['pidList'] = $this->cObj->stdWrap($this->conf['pidList'], $this->conf['pidList.']); unset($this->conf['pidList.']); $this->conf['recursive'] = $this->cObj->stdWrap($this->conf['recursive'], $this->conf['recursive.']); unset($this->conf['recursive.']); // look for the view type if ($this->cObj->data['tx_feuserfriends_view'] == 1) { // detail view $content = $this->singleView(); } elseif ($this->cObj->data['tx_feuserfriends_view'] == 2) { // friends request view $content = $this->friendsRequestView(); } elseif ($this->cObj->data['tx_feuserfriends_view'] == 3) { // friends view (list) $content = $this->listView(true); } elseif ($this->cObj->data['tx_feuserfriends_view'] == 4) { // message view (list) $content = $this->messageView(); } else { if ($this->conf['ajax']) { // AJAX if ($this->piVars['addfriendrequest']) { return $this->addfriendrequestView($this->piVars['addfriendrequest'], $this->piVars['send']); } if ($this->piVars['removefriend']) { return $this->removeFriendView($this->piVars['removefriend'], $this->piVars['send']); } if ($this->piVars['showfriendrequest']) { return $this->showfriendrequestView($this->piVars['showfriendrequest']); } if ($this->piVars['acceptfriend']) { return $this->acceptFriend($this->piVars['acceptfriend']); } if ($this->piVars['rejectfriend']) { return $this->rejectFriend($this->piVars['rejectfriend']); } if ($this->piVars['sendmessage']) { return $this->sendMessageView($this->piVars['sendmessage'], $this->piVars['send']); } } else { // Fallback View if ($this->piVars['showUid']) { $content = $this->singleView(); } else { $content = $this->listView(false); } } } $this->pi_addJS(); $this->pagerenderer->addCssFile($this->conf['jQueryUIstyle']); // checks if t3jquery is loaded if (T3JQUERY === true) { tx_t3jquery::addJqJS(); } else { $this->pagerenderer->addJsFile($this->conf['jQueryLibrary'], true); $this->pagerenderer->addJsFile($this->conf['jQueryEasing']); $this->pagerenderer->addJsFile($this->conf['jQueryUI']); } $this->pagerenderer->addResources(); return $this->pi_wrapInBaseClass($content); }
/** * Adds "t3jquery" extension's library to page header. * * @access public * * @return boolean TRUE on success or FALSE on error */ public static function loadJQuery() { // Ensure extension "t3jquery" is available. if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('t3jquery')) { require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('t3jquery') . 'class.tx_t3jquery.php'; } // Is "t3jquery" loaded? if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); return TRUE; } else { if (TYPO3_DLOG) { \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('[tx_dlf_helper->loadJQuery()] JQuery not available', self::$extKey, SYSLOG_SEVERITY_ERROR); } return FALSE; } }
/** * The main method of the PlugIn * * @param string $content: The PlugIn content * @param array $conf: The PlugIn configuration * @return The content that is displayed on the website */ function main($content, $conf) { $this->conf = $conf; $this->pi_setPiVarDefaults(); $this->pi_loadLL(); // Read Flexform $this->pi_initPIflexForm(); // Add API $GLOBALS['TSFE']->additionalHeaderData[$extKey] = '<script type="text/javascript" src="' . $this->conf['apiUrl'] . '"></script>'; // Add CSS $GLOBALS['TSFE']->additionalHeaderData[$extKey] .= '<link rel="stylesheet" href="' . $this->conf['cssFile'] . '" />'; // Get flexform values $lat = $this->getFlexform('latitude'); $lng = $this->getFlexform('longitude'); $address = $this->getFlexform('address'); $zip = $this->getFlexform('zip'); $city = $this->getFlexform('city'); $country = $this->getFlexform('country'); $infoText = $this->pi_RTEcssText($this->getFlexform('infoText')); $width = $this->getFlexform('width', 'options'); $height = $this->getFlexform('height', 'options'); $zoom = $this->getFlexform('zoom', 'options'); $mapType = $this->getFlexform('mapType', 'options'); $controls = $this->getFlexform('controls', 'options'); $infoWindowAutoOpen = $this->getFlexform('infoWindowAutoOpen', 'options'); $navigation = $this->getFlexform('navigation', 'options'); $ceID = $this->cObj->data['uid']; // Default values if (!$width) $width = '450px'; if (!$height) $height = '250'; if (!$zoom || !is_numeric($zoom)) $zoom = 10; if (!$mapType) $mapType = 'MapTypeId.ROADMAP'; // Controls if ($controls) { $controlsArr = explode(",", $controls); $controlsConfig = ','; foreach ($controlsArr as $c) { if ($c == 'scaleControl') { $controlsConfig .= ' ' . $c . ': true, '; } else { $controlsConfig .= ' ' . $c . ': false, '; } } $controlsConfig = substr($controlsConfig, 0, -1); } // Navigation if ($navigation == 1) { // Checks if t3jquery is loaded if (t3lib_extMgm::isLoaded('t3jquery')) { require_once(t3lib_extMgm::extPath('t3jquery') . 'class.tx_t3jquery.php'); } // If t3jquery is loaded and the custom library had been created if (T3JQUERY === true) { tx_t3jquery::addJqJS(); // Read t3jquery extConf $this->extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['t3jquery']); $integrateToFooter = $this->extConf['integrateToFooter']; // Include JS to footer if ($integrateToFooter == 1) { $GLOBALS['TSFE']->additionalFooterData[$extKey] .= '<script type="text/javascript" src="' . $this->conf['jsFile'] . '"></script>'; } else { $GLOBALS['TSFE']->additionalHeaderData[$extKey] .= '<script type="text/javascript" src="' . $this->conf['jsFile'] . '"></script>'; } } else { $GLOBALS['TSFE']->additionalHeaderData[$extKey] .= '<script src="' . $this->conf['jQueryLibrary'] . '" type="text/javascript"></script>'; $GLOBALS['TSFE']->additionalHeaderData[$extKey] .= '<script type="text/javascript" src="' . $this->conf['jsFile'] . '"></script>'; } // Address $address_final = $address . ', ' . $zip . ' ' . $city . ', ' . $country; // Template $this->templateHtml = $this->cObj->fileResource($this->conf['templateFile']); $template['route'] = $this->cObj->getSubpart($this->templateHtml, '###TEMPLATE###'); $markerArray['###CE_ID###'] = $ceID; $markerArray['###FROM_HERE_LABEL###'] = $this->pi_getLL("from_here"); $markerArray['###TO_HERE_LABEL###'] = $this->pi_getLL("to_here"); $markerArray['###ROUTE_LABEL###'] = $this->pi_getLL("calculate_route"); $markerArray['###ADDRESS###'] = $address_final; $markerArray['###BUTTON_CLASSES###'] = $this->conf['googleMapsSubmitClasses']; // Output route template $navigationOutput = $this->cObj->substituteMarkerArrayCached($template['route'], $markerArray, array()); $infoWindowContent = $infoText . $navigationOutput; } else { $infoWindowContent = $infoText; } // Display map $content .= '<div id="map_canvas_' . $ceID . '" style="width:' . $width . ';height:' . $height . 'px;"></div>'; // Build map $content .= ' <script type="text/javascript"> var map' . $ceID . '; function initialize() { var myLatlng' . $ceID . ' = new google.maps.LatLng(' . $lat . ', ' . $lng . '); var myOptions' . $ceID . ' = { zoom: ' . $zoom . ', center: myLatlng' . $ceID . ', mapTypeId: google.maps.' . $mapType . ' ' . $controlsConfig . ' } map' . $ceID . ' = new google.maps.Map(document.getElementById("map_canvas_' . $ceID . '"), myOptions' . $ceID . '); var contentString' . $ceID . ' = \'' . str_replace(array("\n", "\r"), array("", ""), $infoWindowContent) . '\'; var infowindow' . $ceID . ' = new google.maps.InfoWindow({ content: contentString' . $ceID . ' }); var marker' . $ceID . ' = new google.maps.Marker({ position: myLatlng' . $ceID . ', map: map' . $ceID . ' }); '; if ($infoWindowAutoOpen == 1) { $content .= ' setTimeout(function() { infowindow' . $ceID . '.open(map' . $ceID . ', marker' . $ceID . '); },1250); '; } $content .= ' google.maps.event.addListener(marker' . $ceID . ', \'click\', function() { infowindow' . $ceID . '.open(map' . $ceID . ',marker' . $ceID . '); }); } google.maps.event.addDomListener(window, \'load\', initialize); </script> '; // Output map return $this->pi_wrapInBaseClass($content); }
/** * Include all defined resources (JS / CSS) * * @return void */ private function addResources() { // checks if t3jquery is loaded if (T3JQUERY === TRUE) { tx_t3jquery::addJqJS(); } else { $this->addJsFile($this->conf['jQueryLibrary'], TRUE); $this->addJsFile($this->conf['jQueryUI']); } if (class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) >= 4003000) { $pagerender = $GLOBALS['TSFE']->getPageRenderer(); } // Fix moveJsFromHeaderToFooter (add all scripts to the footer) if ($GLOBALS['TSFE']->config['config']['moveJsFromHeaderToFooter']) { $allJsInFooter = TRUE; } else { $allJsInFooter = FALSE; } // add all defined JS files if (count($this->jsFiles) > 0) { foreach ($this->jsFiles as $jsToLoad) { if (T3JQUERY === TRUE) { $conf = array('jsfile' => $jsToLoad, 'tofooter' => $this->conf['jsInFooter'] || $allJsInFooter, 'jsminify' => $this->conf['jsMinify']); tx_t3jquery::addJS('', $conf); } else { $file = $this->getPath($jsToLoad); if ($file) { if (class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) >= 4003000) { if ($this->conf['jsInFooter'] || $allJsInFooter) { $pagerender->addJsFooterFile($file, 'text/javascript', $this->conf['jsMinify']); } else { $pagerender->addJsFile($file, 'text/javascript', $this->conf['jsMinify']); } } else { $temp_file = '<script type="text/javascript" src="' . $file . '"></script>'; if ($this->conf['jsInFooter'] || $allJsInFooter) { $GLOBALS['TSFE']->additionalFooterData['jsFile_' . $this->extKey . '_' . $file] = $temp_file; } else { $GLOBALS['TSFE']->additionalHeaderData['jsFile_' . $this->extKey . '_' . $file] = $temp_file; } } } else { t3lib_div::devLog("'{$jsToLoad}' does not exists!", $this->extKey, 2); } } } } // add all defined JS script if (count($this->js) > 0) { foreach ($this->js as $jsToPut) { $temp_js .= $jsToPut; } $conf = array(); $conf['jsdata'] = $temp_js; if (T3JQUERY === TRUE && class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger($this->getExtensionVersion('t3jquery')) >= 1002000) { $conf['tofooter'] = $this->conf['jsInFooter'] || $allJsInFooter; $conf['jsminify'] = $this->conf['jsMinify']; $conf['jsinline'] = $this->conf['jsInline']; tx_t3jquery::addJS('', $conf); } else { // Add script only once $hash = md5($temp_js); if ($this->conf['jsInline']) { $GLOBALS['TSFE']->inlineJS[$hash] = $temp_js; } elseif (class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) >= 4003000) { if ($this->conf['jsInFooter'] || $allJsInFooter) { $pagerender->addJsFooterInlineCode($hash, $temp_js, $this->conf['jsMinify']); } else { $pagerender->addJsInlineCode($hash, $temp_js, $this->conf['jsMinify']); } } else { if ($this->conf['jsMinify']) { $temp_js = t3lib_div::minifyJavaScript($temp_js); } if ($this->conf['jsInFooter'] || $allJsInFooter) { $GLOBALS['TSFE']->additionalFooterData['js_' . $this->extKey . '_' . $hash] = t3lib_div::wrapJS($temp_js, TRUE); } else { $GLOBALS['TSFE']->additionalHeaderData['js_' . $this->extKey . '_' . $hash] = t3lib_div::wrapJS($temp_js, TRUE); } } } } // add all defined CSS files if (count($this->cssFiles) > 0) { foreach ($this->cssFiles as $cssToLoad) { // Add script only once $file = $this->getPath($cssToLoad); if ($file) { if (class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) >= 4003000) { $pagerender->addCssFile($file, 'stylesheet', 'all', '', $this->conf['cssMinify']); } else { $GLOBALS['TSFE']->additionalHeaderData['cssFile_' . $this->extKey . '_' . $file] = '<link rel="stylesheet" type="text/css" href="' . $file . '" media="all" />' . chr(10); } } else { t3lib_div::devLog("'{$cssToLoad}' does not exists!", $this->extKey, 2); } } } // add all defined CSS Script if (count($this->css) > 0) { foreach ($this->css as $cssToPut) { $temp_css .= $cssToPut; } $hash = md5($temp_css); if (class_exists(t3lib_utility_VersionNumber) && t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) >= 4003000) { $pagerender->addCssInlineBlock($hash, $temp_css, $this->conf['cssMinify']); } else { // addCssInlineBlock $GLOBALS['TSFE']->additionalCSS['css_' . $this->extKey . '_' . $hash] .= $temp_css; } } }