...
 
Commits (2)
##
# Local
##
##
# https://gist.github.com/jonathanheilmann/79228adada3521a90a54
##
##
# OSX
##
.DS_Store
.AppleDouble
.LSOverride
##
# Windows
##
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
##
# all OS
##
*.bak
##
# PhpStorm
##
.idea/*
.idea/vcs.xml
This diff is collapsed.
<?php
namespace Cabag\JhMagnificpopup\Core;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
use TYPO3\CMS\Frontend\Utility\EidUtility;
/**
* Class to handle the eID request.
*/
class EidRequest
{
/**
* @var TypoScriptFrontendController $typoScriptFrontendController
*/
protected $typoScriptFrontendController = null;
/**
* @deprecated
*
* @return string
*/
public function run()
{
$cObject = GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');
$gp = GeneralUtility::_GP('jh_magnificpopup');
//\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($GLOBALS['TSFE']->tmpl->setup['tt_content.']);
//http://lists.typo3.org/pipermail/typo3-german/2011-July/079128.html
switch ($gp['type']) {
case 'inline':
$cObjConfig = array(
'name' => 'CONTENT',
'conf' => array(
'table' => 'tt_content',
'select.' => array(
'where' => 'tx_jhmagnificpopup_irre_parentid='.$gp['irre_parrentid'],
'pidInList' => (GeneralUtility::_GP('id')?:$GLOBALS["TSFE"]->id),
'languageField' => 'sys_language_uid',
'orderBy' => 'sorting',
),
'wrap' => '<div class="white-popup-block">|</div>',
'renderObj' => $GLOBALS['TSFE']->tmpl->setup['tt_content'],
'renderObj.' => $GLOBALS['TSFE']->tmpl->setup['tt_content.'],
),
);
break;
case 'reference':
$pid = (isset($gp['pid']) && !empty($gp['pid']) ? $gp['pid'] : $GLOBALS["TSFE"]->id);
$cObjConfig = array(
'name' => 'CONTENT',
'conf' => array(
'table' => 'tt_content',
'select.' => array(
'uidInList' => $gp['uid'],
'pidInList' => $pid,
'orderBy' => 'sorting',
'languageField' => 'sys_language_uid',
),
'wrap' => '<div class="white-popup-block">|</div>',
'renderObj' => $GLOBALS['TSFE']->tmpl->setup['tt_content'],
'renderObj.' => $GLOBALS['TSFE']->tmpl->setup['tt_content.'],
),
);
break;
default:
if ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['jh_magnificpopup']['EidTypeHook']) {
if (!isset($gp['hookConf'])) {
$gp['hookConf'] = '';
}
$params = array(
'type' => $gp['type'],
'hookConf' => $gp['hookConf']
);
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['jh_magnificpopup']['EidTypeHook'] as $_funcRef) {
if ($_funcRef) {
$cObjConfig = GeneralUtility::callUserFunction($_funcRef, $params, $this);
if (isset($cObjConfig['matchedType']) && $cObjConfig['matchedType'] === true) {
break;
}
}
}
if (isset($cObjConfig['matchedType']) && $cObjConfig['matchedType'] === false) {
$cObjConfig = null;
}
}
}
if (!empty($cObjConfig) && is_array($cObjConfig)) {
$this->typoScriptFrontendController->content = $cObject->getContentObject($cObjConfig['name'])->render($cObjConfig['conf']);
} else {
$this->typoScriptFrontendController->content = 'ERROR - no (or wrong) configuration';
}
if ($GLOBALS['TSFE']->isINTincScript()) {
$GLOBALS['TSFE']->INTincScript();
}
if (isset($cObjConfig['wrap']) && !empty($cObjConfig['wrap'])) {
$this->typoScriptFrontendController->content = $cObject->wrap($this->typoScriptFrontendController->content, $cObjConfig['wrap']);
}
return $this->typoScriptFrontendController->content;
}
/**
* @deprecated
*
* EidRequest constructor.
* Initialize frontend environment
*/
public function __construct()
{
GeneralUtility::deprecationLog('eID=jh_magnificpopup_ajax is deprecated and will be removed in EXT:jh_magnificpopup version 3.0.0');
$this->bootstrap = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Core\\Bootstrap');
$feUserObj = EidUtility::initFeUser();
EidUtility::initTCA();
$pageId = GeneralUtility::_GET('id') ?: 1;
$pageType = GeneralUtility::_GET('type') ?: 0;
/** @var TypoScriptFrontendController $typoScriptFrontendController */
$this->typoScriptFrontendController = GeneralUtility::makeInstance(
'TYPO3\\CMS\\Frontend\\Controller\\TypoScriptFrontendController',
$GLOBALS['TYPO3_CONF_VARS'],
$pageId,
$pageType,
true
);
$GLOBALS['TSFE'] = $this->typoScriptFrontendController;
$this->typoScriptFrontendController->connectToDB();
$this->typoScriptFrontendController->fe_user = $feUserObj;
$this->typoScriptFrontendController->id = $pageId;
$this->typoScriptFrontendController->checkAlternativeIdMethods();
$this->typoScriptFrontendController->determineId();
$this->typoScriptFrontendController->initTemplate();
$this->typoScriptFrontendController->getConfigArray();
$this->typoScriptFrontendController->settingLanguage();
$this->typoScriptFrontendController->settingLocale();
}
}
<?php
namespace Cabag\JhMagnificpopup\Hooks;
use Cabag\JhMagnificpopup\Utility\MainClass;
use Cabag\JhMagnificpopup\Utility\RemovalDelay;
use TYPO3\CMS\Core\Utility\GeneralUtility;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
*
*
* @package jh_magnificpopup
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
*
*/
class ItemsProcFunc extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* Itemsproc function to extend the selection of mainClass in the plugin
*
* @param array &$config configuration array
* @return void
*/
public function user_mainClass(array &$config)
{
/** @var MainClass $templateLayoutsUtility */
$templateLayoutsUtility = GeneralUtility::makeInstance(MainClass::class);
$templateLayouts = $templateLayoutsUtility->getAvailableMainClass($config['row']['pid']);
foreach ($templateLayouts as $layout) {
$additionalLayout = array(
$GLOBALS['LANG']->sL($layout[0], true),
$layout[1]
);
array_push($config['items'], $additionalLayout);
}
}
/**
* Itemsproc function to extend the selection of emovalDelay in the plugin
*
* @param array &$config configuration array
* @return void
*/
public function user_removalDelay(array &$config)
{
/** @var RemovalDelay $templateLayoutsUtility */
$templateLayoutsUtility = GeneralUtility::makeInstance(RemovalDelay::class);
$templateLayouts = $templateLayoutsUtility->getAvailableRemovalDelay($config['row']['pid']);
foreach ($templateLayouts as $layout) {
$additionalLayout = array(
$GLOBALS['LANG']->sL($layout[0], true),
$layout[1]
);
array_push($config['items'], $additionalLayout);
}
}
}
<?php
namespace Cabag\JhMagnificpopup\Hooks;
/***************************************************************
* Copyright notice
*
* Original: (c) 2009 Juergen Furrer <juergen.furrer@gmail.com>
* EXT:jfmulticontent
* Edited: (c) 2013-2018 Jonathan Heilmann <mail@jonathan-heilmann.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the textfile GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
* This class implements a hook to TCEmain to ensure that IRRE data is correctly
* inserted to pages (changes the colPos).
*
* @author Jonathan Heilmann <mail@jonathan-heilmann.de>
* @package TYPO3
* @subpackage tx_jhmagnificpopup
*/
class UpdateColPosHook
{
/**
* Checks if the colPos will be manipulate
*
* @param array $incomingFieldArray
* @param string $table
* @param integer $id
* @param \TYPO3\CMS\Core\DataHandling\DataHandler $pObj
* @see tx_templavoila_tcemain::processDatamap_afterDatabaseOperations()
*/
public function processDatamap_preProcessFieldArray(array &$incomingFieldArray, $table, $id, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj)
{
if ($incomingFieldArray['list_type'] != 'jhmagnificpopup_pi1') {
if (is_array($pObj->datamap['tt_content'])) {
foreach ($pObj->datamap['tt_content'] as $key => $val) {
if (!is_array($val['pi_flexform'])) {
$val['pi_flexform'] = \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($val['pi_flexform']);
}
if ($val['list_type'] == 'jhmagnificpopup_pi1' && isset($val['pi_flexform']['data']['sDEF']['lDEF']['settings.contenttype']['vDEF']) && $val['pi_flexform']['data']['sDEF']['lDEF']['settings.contenttype']['vDEF'] == 'inline') {
// Change the colPos of the IRRE tt_content values
$confArr = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['jh_magnificpopup']);
$incomingFieldArray['colPos'] = $confArr['colPosOfIrreContent'];
}
}
}
}
}
}
if (defined('TYPO3_MODE') && $GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/jh_magnificpopup/Classes/Hooks/class.tx_jhmagnificpopup_tcemain.php']) {
include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/jh_magnificpopup/Classes/Hooks/class.tx_jhmagnificpopup_tcemain.php']);
}
<?php
namespace Cabag\JhMagnificpopup\Utility;
use TYPO3\CMS\Backend\Utility\BackendUtility;
/***************************************************************
* Copyright notice
*
* (c) 2014 Frans Saris <franssaris@gmail.com>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
* MainClass utility class
* originally from EXT:news
*
*/
class MainClass implements \TYPO3\CMS\Core\SingletonInterface
{
/**
* Get available template layouts for a certain page
*
* @param int $pageUid
* @return array
*/
public function getAvailableMainClass($pageUid)
{
$templateLayouts = array();
// Check if the layouts are extended by ext_tables
if (isset($GLOBALS['TYPO3_CONF_VARS']['EXT']['jh_magnificpopup']['mainClass'])
&& is_array($GLOBALS['TYPO3_CONF_VARS']['EXT']['jh_magnificpopup']['mainClass'])) {
$templateLayouts = $GLOBALS['TYPO3_CONF_VARS']['EXT']['jh_magnificpopup']['mainClass'];
}
// Add TsConfig values
foreach ($this->getTemplateLayoutsFromTsConfig($pageUid) as $animation => $class) {
$templateLayouts[] = array($animation, $class);
}
return $templateLayouts;
}
/**
* Get template layouts defined in TsConfig
*
* @param $pageUid
* @return array
*/
protected function getTemplateLayoutsFromTsConfig($pageUid)
{
$templateLayouts = array();
$pagesTsConfig = BackendUtility::getPagesTSconfig($pageUid);
if (isset($pagesTsConfig['tx_jhmagnificpopup.']['mainClass.']) && is_array($pagesTsConfig['tx_jhmagnificpopup.']['mainClass.'])) {
$templateLayouts = $pagesTsConfig['tx_jhmagnificpopup.']['mainClass.'];
}
return $templateLayouts;
}
}
<?php
namespace Cabag\JhMagnificpopup\Utility;
use TYPO3\CMS\Backend\Utility\BackendUtility;
/***************************************************************
* Copyright notice
*
* (c) 2014 Frans Saris <franssaris@gmail.com>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
* RemovalDelay utility class
* originally from EXT:news
*
*/
class RemovalDelay implements \TYPO3\CMS\Core\SingletonInterface
{
/**
* Get available template layouts for a certain page
*
* @param int $pageUid
* @return array
*/
public function getAvailableRemovalDelay($pageUid)
{
$templateLayouts = array();
// Check if the layouts are extended by ext_tables
if (isset($GLOBALS['TYPO3_CONF_VARS']['EXT']['jh_magnificpopup']['removalDelay'])
&& is_array($GLOBALS['TYPO3_CONF_VARS']['EXT']['jh_magnificpopup']['removalDelay'])) {
$templateLayouts = $GLOBALS['TYPO3_CONF_VARS']['EXT']['jh_magnificpopup']['removalDelay'];
}
// Add TsConfig values
foreach ($this->getTemplateLayoutsFromTsConfig($pageUid) as $templateKey => $title) {
$templateLayouts[] = array($templateKey, $title);
}
return $templateLayouts;
}
/**
* Get template layouts defined in TsConfig
*
* @param $pageUid
* @return array
*/
protected function getTemplateLayoutsFromTsConfig($pageUid)
{
$templateLayouts = array();
$pagesTsConfig = BackendUtility::getPagesTSconfig($pageUid);
if (isset($pagesTsConfig['tx_jhmagnificpopup.']['removalDelay.']) && is_array($pagesTsConfig['tx_jhmagnificpopup.']['removalDelay.'])) {
$templateLayouts = $pagesTsConfig['tx_jhmagnificpopup.']['removalDelay.'];
}
return $templateLayouts;
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\Format;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
/**
* Class AddJsInlineCodeViewHelper
* @package Cabag\JhMagnificpopup\ViewHelpers\PageRenderer
*/
class UcfirstViewHelper extends AbstractViewHelper
{
/**
* @return void
*/
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument(
'string',
'string',
''
);
}
/**
* Render method
*
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return string
*/
public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
{
if ($arguments['string'] === null) {
$arguments['string'] = $renderChildrenClosure();
}
return ucfirst($arguments['string']);
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\Format;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
class UnderscoredToUpperCamelCaseViewHelper extends AbstractViewHelper
{
/**
* @return void
*/
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument(
'string',
'string',
''
);
}
/**
* Render method
*
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return string
*/
public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
{
if ($arguments['string'] === null) {
$arguments['string'] = $renderChildrenClosure();
}
return GeneralUtility::underscoredToUpperCamelCase($arguments['string']);
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\InlineContent;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
* This file is based on the FluidTYPO3/Vhs project under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
/**
* Base class: InlineContent ViewHelpers
*/
abstract class AbstractInlineContentViewHelper extends AbstractViewHelper
{
/**
* @var boolean
*/
protected $escapeOutput = false;
/**
* Initialize
*/
public function initializeArguments()
{
$this->registerArgument(
'hideUntranslated',
'boolean',
'If FALSE, will NOT include elements which have NOT been translated, if current language is NOT the ' .
'default language. Default is to show untranslated elements but never display the original if there is ' .
'a translated version',
false,
false
);
}
/**
* @param array $queryConfiguration
* @return array[]
*/
protected static function getRecords(array $queryConfiguration)
{
$records = $GLOBALS['TSFE']->cObj->getRecords('tt_content', $queryConfiguration);
return $records;
}
/**
* This function renders an array of tt_content record into an array of rendered content
* it returns a list of elements rendered by typoscript RECORD function
*
* @param array $rows database rows of records (each item is a tt_content table record)
* @return array
*/
protected static function getRenderedRecords(array $rows)
{
if ($rows === null || count($rows) === 0) {
return [];
}
$elements = [];
foreach ($rows as $row) {
array_push($elements, static::renderRecord($row));
}
return $elements;
}
/**
* This function renders a raw tt_content record into the corresponding
* element by typoscript RENDER function. We keep track of already
* rendered records to avoid rendering the same record twice inside the
* same nested stack of content elements.
*
* @param array $row
* @return string|NULL
*/
protected static function renderRecord(array $row)
{
if ($row === null || count($row) === 0) {
return '';
}
if (0 < $GLOBALS['TSFE']->recordRegister['tt_content:' . $row['uid']]) {
return null;
}
$conf = [
'tables' => 'tt_content',
'source' => $row['uid'],
'dontCheckPid' => 1
];
$parent = $GLOBALS['TSFE']->currentRecord;
// If the currentRecord is set, we register, that this record has invoked this function.
// It's should not be allowed to do this again then!!
if (false === empty($parent)) {
++$GLOBALS['TSFE']->recordRegister[$parent];
}
$html = $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);
$GLOBALS['TSFE']->currentRecord = $parent;
if (false === empty($parent)) {
--$GLOBALS['TSFE']->recordRegister[$parent];
}
return $html;
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\InlineContent;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
* This file is based on the FluidTYPO3/Vhs project under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
/**
* ViewHelper used to render inline content elements in Fluid templates
*/
class InlineViewHelper extends AbstractInlineContentViewHelper
{
/**
* @return void
*/
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument(
'data',
'array',
''
);
}
/**
* Render method
*
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return string
*/
public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
{
if ('BE' === TYPO3_MODE) {
return '';
}
// Get records
$records =InlineViewHelper::getRecords([
'where' => 'tx_jhmagnificpopup_irre_parentid=' .
(isset($arguments['data']['_LOCALIZED_UID'])
? $arguments['data']['_LOCALIZED_UID']
: $arguments['data']['uid']
),
'pidInList' => 'this',
'includeRecordsWithoutDefaultTranslation' => !$arguments['hideUntranslated'],
'orderBy' => 'sorting'
]);
if (empty($records)) {
return '';
}
// Render records
$renderedRecords = InlineViewHelper::getRenderedRecords($records);
$content = implode(LF, $renderedRecords);
return $content;
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\InlineContent;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
* This file is based on the FluidTYPO3/Vhs project under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use Doctrine\DBAL\Driver\Statement;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
/**
* ViewHelper used to render referenced content elements in Fluid templates
*/
class ReferenceViewHelper extends AbstractInlineContentViewHelper
{
/**
* @return void
*/
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument(
'contentUids',
'string',
''
);
}
/**
* Render method
*
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return string
*/
public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
{
if ('BE' === TYPO3_MODE) {
return '';
}
$contentUids = explode(',', $arguments['contentUids']);
/** @var QueryBuilder $queryBuilder */
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content');
// Get contentPids
$contentPids = [];
foreach ($contentUids as $uid) {
/** @var Statement $statement */
$statement = $queryBuilder
->select('pid')
->from('tt_content')
->where(
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT))
)
->execute();
if ($pid = $statement->fetchColumn()) {
$contentPids[] = $pid;
}
}
$contentPids = array_unique($contentPids);
// Get records
$records = ReferenceViewHelper::getRecords([
'uidInList' => $arguments['contentUids'],
'pidInList' => '-1,' . implode(',', $contentPids),
'includeRecordsWithoutDefaultTranslation' => !$arguments['hideUntranslated']
]);
if (empty($records)) {
return '';
}
// Reorder records by uid from contentUids
$sortedRecords = [];
foreach ($contentUids as $uid) {
$sortedRecords[$uid] = $records[array_search($uid, array_column($records, 'uid'))];
}
// Render records
$renderedRecords = ReferenceViewHelper::getRenderedRecords($sortedRecords);
$content = implode(LF, $renderedRecords);
return $content;
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\PageRenderer;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
use TYPO3\CMS\Core\Page\PageRenderer;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
class AbstractPageRenderViewHelper extends AbstractTagBasedViewHelper
{
/** @var ObjectManager */
protected $objectManager;
/** @var PageRenderer */
protected $pageRenderer;
public function initialize()
{
$this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$this->pageRenderer = $this->objectManager->get(PageRenderer::class);
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\PageRenderer;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
* Class AddCssFileViewHelper
* @package Cabag\JhMagnificpopup\ViewHelpers\PageRenderer
*/
class AddCssFileViewHelper extends AbstractPageRenderViewHelper
{
public function initializeArguments()
{
$this->registerArgument('file', 'string', 'The name of the file', true, null);
$this->registerArgument('rel', 'string', 'Rel', false, 'stylesheet');
$this->registerArgument('media', 'string', 'Media', false, 'all');
$this->registerArgument('title', 'string', 'Title', false, '');
$this->registerArgument('compress', 'boolean', 'Compress output?', false, true);
$this->registerArgument('forceOnTop', 'boolean', 'Force to top?', false, false);
$this->registerArgument('allWrap', 'string', 'Wrap', false, '');
$this->registerArgument('excludeFromConcatenation', 'boolean', 'Exclude from concatenation', false, false);
$this->registerArgument('splitChar', 'string', 'Split character', false, '|');
}
/**
* @see PageRenderer::addJsFile
* @see PageRenderer::addJsFooterFile
*/
public function render()
{
$file = $GLOBALS['TSFE']->tmpl->getFileName($this->arguments['file']);
$this->pageRenderer->addCssFile(
$file,
$this->arguments['rel'],
$this->arguments['media'],
$this->arguments['title'],
$this->arguments['compress'],
$this->arguments['forceOnTop'],
$this->arguments['allWrap'],
$this->arguments['excludeFromConcatenation'],
$this->arguments['splitChar']
);
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\PageRenderer;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
* Class AddJsFileViewHelper
* @package Cabag\JhMagnificpopup\ViewHelpers\PageRenderer
*/
class AddJsFileViewHelper extends AbstractPageRenderViewHelper
{
public function initializeArguments()
{
$this->registerArgument('file', 'string', 'The name of the file', true, null);
$this->registerArgument('type', 'string', 'Type', false, 'text/javascript');
$this->registerArgument('compress', 'boolean', 'Compress output?', false, true);
$this->registerArgument('forceOnTop', 'boolean', 'Force to top?', false, false);
$this->registerArgument('allWrap', 'string', 'Wrap', false, '');
$this->registerArgument('excludeFromConcatenation', 'boolean', 'Exclude from concatenation', false, false);
$this->registerArgument('splitChar', 'string', 'Split character', false, '|');
$this->registerArgument('async', 'boolean', 'Async', false, false);
$this->registerArgument('integrity', 'string', 'Integrity', false, '');
$this->registerArgument('addToFooter', 'string', 'Add to footer?', false, false);
}
/**
* @see PageRenderer::addJsFile
* @see PageRenderer::addJsFooterFile
*/
public function render()
{
$file = $GLOBALS['TSFE']->tmpl->getFileName($this->arguments['file']);
if ($this->arguments['addToFooter'] === false) {
$this->pageRenderer->addJsFile($file, $this->arguments['type'], $this->arguments['compress'],
$this->arguments['forceOnTop'], $this->arguments['allWrap'],
$this->arguments['excludeFromConcatenation'], $this->arguments['splitChar'], $this->arguments['async'],
$this->arguments['integrity']);
} else {
$this->pageRenderer->addJsFooterFile($file, $this->arguments['type'], $this->arguments['compress'], $this->arguments['forceOnTop'], $this->arguments['allWrap'], $this->arguments['excludeFromConcatenation'], $this->arguments['splitChar'], $this->arguments['async'], $this->arguments['integrity']);
}
}
}
<?php
namespace Cabag\JhMagnificpopup\ViewHelpers\PageRenderer;
/*
* This file is part of the Cabag\JhMagnificpopup extension under GPLv2 or later.
*
* For the full copyright and license information, please read the
* LICENSE.md file that was distributed with this source code.
*/
/**
* Class AddJsInlineCodeViewHelper
* @package Cabag\JhMagnificpopup\ViewHelpers\PageRenderer
*/
class AddJsInlineCodeViewHelper extends AbstractPageRenderViewHelper
{
public function initializeArguments()
{
$this->registerArgument('name', 'string', 'The name of the file', true, null);
$this->registerArgument('block', 'string', 'The JS content', false, null);
$this->registerArgument('compress', 'boolean', 'Compress output', false, false);
$this->registerArgument('forceOnTop', 'boolean', 'Force to top?', false, false);
$this->registerArgument('addToFooter', 'boolean', 'Add to footer?', false, false);
}
public function render()
{
if ($this->arguments['block'] === null) $this->arguments['block'] = htmlspecialchars_decode($this->renderChildren(), ENT_QUOTES);
if ($this->arguments['addToFooter'] === false) {
$this->pageRenderer->addJsInlineCode($this->arguments['name'], $this->arguments['block'], $this->arguments['compress'], $this->arguments['forceOnTop']);
} else {
$this->pageRenderer->addJsFooterInlineCode($this->arguments['name'], $this->arguments['block'], $this->arguments['compress'], $this->arguments['forceOnTop']);
}
return '';
}
}
This diff is collapsed.
plugin.tx_jhmagnificpopup.view {
# cat=plugin.tx_jhmagnificpopup/file; type=string; label=Path to template root
templateRootPath = EXT:jh_magnificpopup/Resources/Private/Templates/
# cat=plugin.tx_jhmagnificpopup/file; type=string; label=Path to template partials
partialRootPath = EXT:jh_magnificpopup/Resources/Private/Partials/
# cat=plugin.tx_jhmagnificpopup/file; type=string; label=Path to template layouts
layoutRootPath = EXT:jh_magnificpopup/Resources/Private/Layouts/
}
#customsubcategory=magnificpopup_general=LLL:EXT:jh_magnificpopup/Resources/Private/Language/locallang.xlf:constants.subcat.magnificpopup.general
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/010; type=boolean; label=Include jQuery
plugin.tx_jhmagnificpopup.includejquerycore = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/020; type=string; label=Magnific Popup javascript:Path to Magnific Popup javascript (empty to include no javascript)
plugin.tx_jhmagnificpopup.includeMagnificpopupJs = EXT:jh_magnificpopup/Resources/Public/js/jquery.magnific-popup.min.js
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/025; type=string; label=Custom jQuery selector:Path to custom image jQuery filter (empty to include no javascript)
plugin.tx_jhmagnificpopup.includeFilterIsImageFileJs = EXT:jh_magnificpopup/Resources/Public/js/jquery.filter-isImageFile.min.js
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/030; type=string; label= Magnific Popup css:Path to Magnific Popup css (empty to include no css)
plugin.tx_jhmagnificpopup.includeMagnificpopupCss = EXT:jh_magnificpopup/Resources/Public/css/magnific-popup.css
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/100; type=boolean; label=Enable alpha features of extension
plugin.tx_jhmagnificpopup.enableAlphaFeatures = 0
#customsubcategory=magnificpopup_imagesupport=LLL:EXT:jh_magnificpopup/Resources/Private/Language/locallang.xlf:constants.subcat.magnificpopup.imagesupport
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesupport/010; type=boolean; label=EXT news:Enable support for EXT:news
plugin.tx_jhmagnificpopup.magnificpopup.support.tx_news = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesupport/020; type=boolean; label=EXT tt_news single-view:Enable support for single-view
plugin.tx_jhmagnificpopup.magnificpopup.support.tx_ttnews.single = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesupport/030; type=boolean; label=EXT tt_news list-view:Enable support for list-view
plugin.tx_jhmagnificpopup.magnificpopup.support.tx_ttnews.list = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesupport/040; type=boolean; label=EXT tt_news latest-view:Enable support for latest-view
plugin.tx_jhmagnificpopup.magnificpopup.support.tx_ttnews.latest = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesupport/050; type=boolean; label=EXT bootstrap_package:Enable support for bootstrap_package
plugin.tx_jhmagnificpopup.magnificpopup.support.tx_bootstrappackage = 1
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesupport/090; type=string; label=User-defined:jQuery selector for user-defined classes
plugin.tx_jhmagnificpopup.magnificpopup.support.user =
#customsubcategory=magnificpopup_imagesetup=LLL:EXT:jh_magnificpopup/Resources/Private/Language/locallang.xlf:constants.subcat.magnificpopup.imagesetup
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/100; type=string; label=mainClass: mainClass used for animation effects
plugin.tx_jhmagnificpopup.magnificpopup.mainClass =
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/105; type=int+; label=removalDelay: removalDelay used for animation effects (in ms)
plugin.tx_jhmagnificpopup.magnificpopup.removalDelay = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/110; type=boolean; label=Enable gallery: Enable gallery-view of Magnific Popup
plugin.tx_jhmagnificpopup.magnificpopup.gallery.enabled = 1
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/120; type=int+; label=Preload befor:Preload x images before actual
plugin.tx_jhmagnificpopup.magnificpopup.gallery.preload.before = 1
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/130; type=int+; label=Preload after:Preload x images after actual
plugin.tx_jhmagnificpopup.magnificpopup.gallery.preload.after = 2
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/140; type=boolean; label=navigateByImgClick:Enable 'navigate by image click'
plugin.tx_jhmagnificpopup.magnificpopup.gallery.navigateByImgClick = 1
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/210; type=string; label=Cursor:Set to 'null' to disable zoom out cursor.
plugin.tx_jhmagnificpopup.magnificpopup.image.cursor = mfp-zoom-out-cur
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/220; type=int+; label=Vertical gap:Vertical gap
plugin.tx_jhmagnificpopup.magnificpopup.image.verticalGap = 88
# cat=plugin.tx_jhmagnificpopup/magnificpopup_imagesetup/230; type=boolean; label=Vertical fit:Fit image in area vertically
plugin.tx_jhmagnificpopup.magnificpopup.image.verticalFit = 1
// Configure lightbox for images
// EXT:fluid_styled_content
styles.content.textmedia.linkWrap {
lightboxEnabled = 1
lightboxCssClass = magnificpopup
lightboxRelAttribute = magnificpopup[{field:uid}]
}
// EXT:bootstrap_package
plugin.bootstrap_package_contentelements.lightbox {
cssClass = magnificpopup
prefix = magnificpopup
}
\ No newline at end of file
//
// Setup for image-lightbox
//
plugin.tx_jhmagnificpopup {
view {
templateRootPath = {$plugin.tx_jhmagnificpopup.view.templateRootPath}
partialRootPath = {$plugin.tx_jhmagnificpopup.view.partialRootPath}
layoutRootPath = {$plugin.tx_jhmagnificpopup.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_jhmagnificpopup.persistence.storagePid}
}
features {
# uncomment the following line to enable the new Property Mapper.
# rewrittenPropertyMapper = 1
}
}
# Add css files to page
page.includeCSS {
tx_jhmagnificpopup10 = {$plugin.tx_jhmagnificpopup.includeMagnificpopupCss}
tx_jhmagnificpopup10.if.isTrue = {$plugin.tx_jhmagnificpopup.includeMagnificpopupCss}
}
# Add JavaScript files to page
page.includeJSFooterlibs {
tx_jhmagnificpopup10 = EXT:jh_magnificpopup/Resources/Public/js/jquery-1.12.3.min.js
tx_jhmagnificpopup10.forceOnTop = 1
tx_jhmagnificpopup10.if.isTrue = {$plugin.tx_jhmagnificpopup.includejquerycore}
tx_jhmagnificpopup20 = {$plugin.tx_jhmagnificpopup.includeMagnificpopupJs}
tx_jhmagnificpopup20.if.isTrue = {$plugin.tx_jhmagnificpopup.includeMagnificpopupJs}
tx_jhmagnificpopup25 = {$plugin.tx_jhmagnificpopup.includeFilterIsImageFileJs}
tx_jhmagnificpopup25.if.isTrue = {$plugin.tx_jhmagnificpopup.includeFilterIsImageFileJs}
}
# Config tx_news if support is set
["1" == "{$plugin.tx_jhmagnificpopup.magnificpopup.support.tx_news}"]
plugin.tx_news.settings.detail.media.image {
lightbox = magnificpopup
}
[global]
plugin.tx_jhmagnificpopup {
settings {
magnificpopup {
# Add some selectors if support is activated
selector = COA
selector {
# default selector (fluid_styled_content)
1 = TEXT
1.value = .ce-textpic,.ce-image
# tx_news
10 = TEXT
10.value = ,.news-img-wrap
10.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.support.tx_news}
# tx_ttnews - single-view
20 = TEXT
20.value = ,.news-single-item
20.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.support.tx_ttnews.single}
# tx_ttnews - list-view
21 = TEXT
21.value = ,.news-list-container
21.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.support.tx_ttnews.list}
# tx_ttnews - single-view
22 = TEXT
22.value = ,.news-latest-container
22.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.support.tx_ttnews.latest}
# bootstrap_package
30 = TEXT
30.value = ,.img-wrap,.image-wrap,.gallery-row
30.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.support.tx_bootstrappackage}
# user-defined selectors (always start with ','!)
999 = TEXT
999.value = ,{$plugin.tx_jhmagnificpopup.magnificpopup.support.user}
999.insertData = 1
999.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.support.user}
}
templateVariables = COA
templateVariables {
mainClass = COA
mainClass {
#default selector
1 = TEXT
1.value = mfp-img-mobile
# user defined selector
10 = TEXT
10.value = {$plugin.tx_jhmagnificpopup.magnificpopup.mainClass}
10.noTrimWrap= | ||
10.insertData = 1
10.if.isTrue = {$plugin.tx_jhmagnificpopup.magnificpopup.mainClass}
}
galleryEnabled = TEXT
galleryEnabled.value = {$plugin.tx_jhmagnificpopup.magnificpopup.gallery.enabled}
galleryPreload = TEXT
galleryPreload.value = [{$plugin.tx_jhmagnificpopup.magnificpopup.gallery.preload.before},{$plugin.tx_jhmagnificpopup.magnificpopup.gallery.preload.after}]
galleryNavigateByImgClick = TEXT
galleryNavigateByImgClick.value = {$plugin.tx_jhmagnificpopup.magnificpopup.gallery.navigateByImgClick}
imageCursor = TEXT
imageCursor.value = {$plugin.tx_jhmagnificpopup.magnificpopup.image.cursor}
imageVerticalGap = TEXT
imageVerticalGap.value = {$plugin.tx_jhmagnificpopup.magnificpopup.image.verticalGap}
imageVerticalFit = TEXT
imageVerticalFit.value = {$plugin.tx_jhmagnificpopup.magnificpopup.image.verticalFit}
removalDelay = TEXT
removalDelay.value = {$plugin.tx_jhmagnificpopup.magnificpopup.removalDelay}
}
}
}
# Copy actual page.jsFooterInline to setup to prevent from data-loss
setup < page.jsFooterInline
setup {
# add fluidtemplate
109 = FLUIDTEMPLATE
109 {
file = {$plugin.tx_jhmagnificpopup.view.templateRootPath}TypoScript/Default.html
variables {
selector < plugin.tx_jhmagnificpopup.settings.magnificpopup.selector
}
}
}
}
//add javascript to footer
page.jsFooterInline < plugin.tx_jhmagnificpopup.setup
// Remove lightbox from EXT:bootstrap_package
page.includeJSFooterlibs {
photoswipe_core >
photoswipe_ui >
bootstrap_lightbox >
}
// Add title to Magnific Popup within EXT:fluid_styled_content
lib.fluidContent.settings.media.popup.linkParams.ATagParams.dataWrap = class="{$styles.content.textmedia.linkWrap.lightboxCssClass}" rel="{$styles.content.textmedia.linkWrap.lightboxRelAttribute}" title="{file:current:title}"
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/005; type=boolean; label=Enable compatibility mode: Stay compatible to templates/partials from extension version 1.x
plugin.tx_jhmagnificpopup.compatibilityMode = 0
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/040; type=string; label= common css:Path to common css (empty to include no css)
plugin.tx_jhmagnificpopup.commonCss = EXT:jh_magnificpopup/Resources/Public/css/common.css
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/050; type=string; label= jh-st-img:Path to jh-st-img
plugin.tx_jhmagnificpopup.jhStImg = EXT:jh_magnificpopup/Resources/Public/Vendor/jh-st-img/jhstimg.js
# cat=plugin.tx_jhmagnificpopup/magnificpopup_general/090; type=boolean; label=Link image caption to Magnific Popup lightbox: Only available in compatibility mode
plugin.tx_jhmagnificpopup.linkImagecaption = 0
#customsubcategory=mfp_type_iframe=LLL:EXT:jh_magnificpopup/Resources/Private/Language/locallang.xlf:constants.subcat.magnificpopup.type.iframe
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/010; type=boolean; label=Enable global: Enable iframe popup globally
plugin.tx_jhmagnificpopup.type.iframe.enableglobal = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/210; type=int+; label=disableOn
plugin.tx_jhmagnificpopup.type.iframe.disableOn = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/220; type=string; label=mainClass
plugin.tx_jhmagnificpopup.type.iframe.mainClass =
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/230; type=boolean; label=preloader
plugin.tx_jhmagnificpopup.type.iframe.preloader = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/240; type=boolean; label=closeOnContentClick
plugin.tx_jhmagnificpopup.type.iframe.closeOnContentClick = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/250; type=boolean; label=closeOnBgClick
plugin.tx_jhmagnificpopup.type.iframe.closeOnBgClick = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/260; type=boolean; label=closeBtnInside
plugin.tx_jhmagnificpopup.type.iframe.closeBtnInside = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/270; type=boolean; label=showCloseBtn
plugin.tx_jhmagnificpopup.type.iframe.showCloseBtn = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/280; type=boolean; label=enableEscapeKey
plugin.tx_jhmagnificpopup.type.iframe.enableEscapeKey = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/290; type=boolean; label=modal
plugin.tx_jhmagnificpopup.type.iframe.modal = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/300; type=boolean; label=alignTop
plugin.tx_jhmagnificpopup.type.iframe.alignTop = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/310; type=string; label=fixedContentPos
plugin.tx_jhmagnificpopup.type.iframe.fixedContentPos = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/320; type=string; label=fixedBgPos
plugin.tx_jhmagnificpopup.type.iframe.fixedBgPos = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/330; type=string; label=overflowY
plugin.tx_jhmagnificpopup.type.iframe.overflowY = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/340; type=int+; label=removalDelay: removalDelay used for animation effects (in ms)
plugin.tx_jhmagnificpopup.type.iframe.removalDelay = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_iframe/350; type=string; label=closeMarkup
plugin.tx_jhmagnificpopup.type.iframe.closeMarkup = <button title="%title%" class="mfp-close"><i class="mfp-close-icn mfp-close">&times;</i></button>
#customsubcategory=mfp_type_inline=LLL:EXT:jh_magnificpopup/Resources/Private/Language/locallang.xlf:constants.subcat.magnificpopup.type.inline
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/210; type=int+; label=disableOn
plugin.tx_jhmagnificpopup.type.inline.disableOn = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/220; type=sting; label=mainClass
plugin.tx_jhmagnificpopup.type.inline.mainClass =
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/230; type=boolean; label=preloader
plugin.tx_jhmagnificpopup.type.inline.preloader = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/240; type=string; label=focus
plugin.tx_jhmagnificpopup.type.inline.focus =
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/250; type=boolean; label=closeOnContentClick
plugin.tx_jhmagnificpopup.type.inline.closeOnContentClick = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/260; type=boolean; label=closeOnBgClick
plugin.tx_jhmagnificpopup.type.inline.closeOnBgClick = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/270; type=boolean; label=closeBtnInside
plugin.tx_jhmagnificpopup.type.inline.closeBtnInside = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/280; type=boolean; label=showCloseBtn
plugin.tx_jhmagnificpopup.type.inline.showCloseBtn = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/290; type=boolean; label=enableEscapeKey
plugin.tx_jhmagnificpopup.type.inline.enableEscapeKey = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/300; type=boolean; label=modal
plugin.tx_jhmagnificpopup.type.inline.modal = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/310; type=boolean; label=alignTop
plugin.tx_jhmagnificpopup.type.inline.alignTop = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/320; type=string; label=fixedContentPos
plugin.tx_jhmagnificpopup.type.inline.fixedContentPos = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/330; type=string; label=fixedBgPos
plugin.tx_jhmagnificpopup.type.inline.fixedBgPos = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/340; type=string; label=overflowY
plugin.tx_jhmagnificpopup.type.inline.overflowY = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/350; type=int+; label=removalDelay: removalDelay used for animation effects (in ms)
plugin.tx_jhmagnificpopup.type.inline.removalDelay = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_inline/360; type=string; label=closeMarkup
plugin.tx_jhmagnificpopup.type.inline.closeMarkup = <button title="%title%" class="mfp-close"><i class="mfp-close-icn mfp-close">&times;</i></button>
#customsubcategory=mfp_type_ajax=LLL:EXT:jh_magnificpopup/Resources/Private/Language/locallang.xlf:constants.subcat.magnificpopup.type.ajax
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/010; type=boolean; label=Enable global: Enable ajax popup globally
plugin.tx_jhmagnificpopup.type.ajax.enableglobal = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/200; type=int+; label=ajax cursor
plugin.tx_jhmagnificpopup.type.ajax.ajax.cursor = mfp-ajax-cur
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/210; type=int+; label=disableOn
plugin.tx_jhmagnificpopup.type.ajax.disableOn = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/220; type=string; label=mainClass
plugin.tx_jhmagnificpopup.type.ajax.mainClass =
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/230; type=boolean; label=preloader
plugin.tx_jhmagnificpopup.type.ajax.preloader = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/235; type=string; label=focus
plugin.tx_jhmagnificpopup.type.ajax.focus =
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/240; type=boolean; label=closeOnContentClick
plugin.tx_jhmagnificpopup.type.ajax.closeOnContentClick = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/250; type=boolean; label=closeOnBgClick
plugin.tx_jhmagnificpopup.type.ajax.closeOnBgClick = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/260; type=boolean; label=closeBtnInside
plugin.tx_jhmagnificpopup.type.ajax.closeBtnInside = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/270; type=boolean; label=showCloseBtn
plugin.tx_jhmagnificpopup.type.ajax.showCloseBtn = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/280; type=boolean; label=enableEscapeKey
plugin.tx_jhmagnificpopup.type.ajax.enableEscapeKey = 1
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/385; type=boolean; label=modal
plugin.tx_jhmagnificpopup.type.ajax.modal = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/290; type=boolean; label=alignTop
plugin.tx_jhmagnificpopup.type.ajax.alignTop = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/300; type=string; label=fixedContentPos
plugin.tx_jhmagnificpopup.type.ajax.fixedContentPos = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/310; type=string; label=fixedBgPos
plugin.tx_jhmagnificpopup.type.ajax.fixedBgPos = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/320; type=string; label=overflowY
plugin.tx_jhmagnificpopup.type.ajax.overflowY = auto
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/330; type=int+; label=removalDelay: removalDelay used for animation effects (in ms)
plugin.tx_jhmagnificpopup.type.ajax.removalDelay = 0
# cat=plugin.tx_jhmagnificpopup/mfp_type_ajax/340; type=string; label=closeMarkup
plugin.tx_jhmagnificpopup.type.ajax.closeMarkup = <button title="%title%" class="mfp-close"><i class="mfp-close-icn mfp-close">&times;</i></button>
\ No newline at end of file
This diff is collapsed.
#########################
# Git
# global ignore file
########################
# ignoring temporary files (left by e.g. vim)
# ignoring by common IDE's used directories/files
# dont ignore .rej and .orig as we want to see/clean files after conflict resolution
#
# for local exclude patterns please edit .git/info/exclude
#
*~
*.bak
*.idea
*.project
*.swp
.buildpath
.cache
.project
.session
.settings
.TemporaryItems
.webprj
nbproject
.. include:: ../../Includes.txt
Global Ajax
^^^^^^^^^^^
Available since version 0.3.0:
Global ajax is deprecated and will be removed in EXT:jh_magnificpopup version 3.0.0.
With the global ajax option enabled (plugin.tx_jhmagnificpopup.type.ajax.enableglobal) and eID for method ajax enabled (plugin.tx_jhmagnificpopup.useEidForAjaxMethod), it's possible to open every content-link in a Magnific Popup lightbox.
To enable the lightbox for a content-link add class "mfp-ajax-link".
Building a content-link
"""""""""""""""""""""""
To open content by ajax in a lightbox the link requires the following additionalParams:
.. t3-field-list-table::
:header-rows: 1
- :Param:
Param
:Value: