diff --git a/Classes/View/Export/ExcelListView.php b/Classes/View/Export/ExcelListView.php index 3fdfd8b38..c4b38d60b 100755 --- a/Classes/View/Export/ExcelListView.php +++ b/Classes/View/Export/ExcelListView.php @@ -549,16 +549,14 @@ protected function saveOutputAndExit(PHPExcel_Writer_IWriter $objWriter) */ private function checkRequirements() { - if (!class_exists('PHPExcel')) { - $phpExcelPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('pt_extlist', 'Classes/Foreign/PHPExcel/Classes/PHPExcel.php'); + $phpExcelPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('pt_extlist', 'Classes/Foreign/PHPExcel/Classes/PHPExcel.php'); - if (!file_exists($phpExcelPath)) { - throw new Exception('Library PHPExcel is required for using Excel export. Run "composer install" in page root directory or "git submodule update --init" in extension root directory', 1418830027); - } - - require_once($phpExcelPath); + if (!file_exists($phpExcelPath)) { + throw new Exception('Library PHPExcel is required for using Excel export. Run "git submodule update --init" in extension root directory', 1418830027); } + require_once($phpExcelPath); + if (!class_exists('XMLWriter')) { throw new Exception('Library XMLWriter is required for using Excel export. You have to set up PHP with XMLWriter enabled', 1316565594); } diff --git a/Classes/ViewHelpers/Bookmark/ShowFormViewHelper.php b/Classes/ViewHelpers/Bookmark/ShowFormViewHelper.php index 7a2dea05c..fb91f9bc9 100755 --- a/Classes/ViewHelpers/Bookmark/ShowFormViewHelper.php +++ b/Classes/ViewHelpers/Bookmark/ShowFormViewHelper.php @@ -1,6 +1,7 @@ columnSelectorConfig = $configurationBuilder->buildColumnSelectorConfiguration(); } - - + + /** * Initialize arguments. * diff --git a/Classes/ViewHelpers/FormViewHelper.php b/Classes/ViewHelpers/FormViewHelper.php index bf4dc24e1..2c6cc8bcd 100755 --- a/Classes/ViewHelpers/FormViewHelper.php +++ b/Classes/ViewHelpers/FormViewHelper.php @@ -1,4 +1,5 @@ uriFor($this->arguments['action'], $this->arguments['arguments'], $this->arguments['controller'], $this->arguments['extensionName'], $this->arguments['pluginName']); $this->formActionUriArguments = $uriBuilder->getArguments(); } - + $this->formActionUri = $formActionUri; $this->tag->addAttribute('action', $formActionUri); } - + /** * Renders hidden form fields for referrer information about @@ -111,31 +112,31 @@ protected function renderHiddenReferrerFields() $extensionName = $request->getControllerExtensionName(); $controllerName = $request->getControllerName(); $actionName = $request->getControllerActionName(); - + $result = chr(10); - - // quick ugly hack + + // quick ugly hack if (strtolower($this->arguments['method']) === 'get') { $uriTemp = explode('?', $this->formActionUri); $uriTemp = explode('&', $uriTemp[1]); - + foreach ($uriTemp as $parameter) { $paramTemp = explode('=', $parameter); $result .= '' . chr(10); } } - - + + $extBaseContext = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager')->get('Tx_PtExtlist_Extbase_ExtbaseContext'); - + if ($extBaseContext->isInCachedMode()) { $listIdentifier = $extBaseContext->getCurrentListIdentifier(); $stateHash = $this->sessionPersistenceManagerBuilder->getInstance()->getSessionDataHash(); - + $result .= '' . chr(10); } - - + + $result .= '' . chr(10); $result .= '' . chr(10); $result .= '' . chr(10); diff --git a/Classes/ViewHelpers/HeaderViewHelper.php b/Classes/ViewHelpers/HeaderViewHelper.php index 16c497ac8..111823153 100755 --- a/Classes/ViewHelpers/HeaderViewHelper.php +++ b/Classes/ViewHelpers/HeaderViewHelper.php @@ -1,4 +1,5 @@ sessionPersistenceManagerBuilder = $sessionPersistenceManagerBuilder; } + + /** * @param string $action Target action * @param array $arguments Arguments @@ -74,10 +77,9 @@ public function injectSessionPersistenceManagerBuilder(Tx_PtExtbase_State_Sessio * @param string $addQueryStringMethod Set which parameters will be kept. Only active if $addQueryString = TRUE * @return string Rendered link */ - public function render($action = null, array $arguments = [], $controller = null, $extensionName = null, $pluginName = null, $pageUid = null, $pageType = 0, $noCache = false, $noCacheHash = false, $section = '', $format = '', $linkAccessRestrictedPages = false, array $additionalParams = [], $absolute = false, $addQueryString = false, array $argumentsToBeExcludedFromQueryString = [], $addQueryStringMethod = null) + public function render($action = null, array $arguments = array(), $controller = null, $extensionName = null, $pluginName = null, $pageUid = null, $pageType = 0, $noCache = false, $noCacheHash = false, $section = '', $format = '', $linkAccessRestrictedPages = false, array $additionalParams = array(), $absolute = false, $addQueryString = false, array $argumentsToBeExcludedFromQueryString = array(), $addQueryStringMethod = NULL) { $this->sessionPersistenceManagerBuilder->getInstance()->addSessionRelatedArguments($arguments); return parent::render($action, $arguments, $controller, $extensionName, $pluginName, $pageUid, $pageType, $noCache, $noCacheHash, $section, $format, $linkAccessRestrictedPages, $additionalParams, $absolute, $addQueryString, $argumentsToBeExcludedFromQueryString, $addQueryStringMethod); } - } diff --git a/Classes/ViewHelpers/Link/SortingFieldsViewHelper.php b/Classes/ViewHelpers/Link/SortingFieldsViewHelper.php index 8c98e2b93..1d0c96da6 100755 --- a/Classes/ViewHelpers/Link/SortingFieldsViewHelper.php +++ b/Classes/ViewHelpers/Link/SortingFieldsViewHelper.php @@ -1,4 +1,5 @@ buildObjectValueArray($header, 'sortingFields', $sortingFieldParam); - + $this->sessionPersistenceManagerBuilder->getInstance()->addSessionRelatedArguments($argumentArray); $output = parent::render($action, $argumentArray, null, null, null, $pageUid, $pageType, $noCache, $noCacheHash, $section, $format, $linkAccessRestrictedPages, $additionalParams, $absolute, $addQueryString, $argumentsToBeExcludedFromQueryString, $addQueryStringMethod); diff --git a/Classes/ViewHelpers/Namespace/FormElementNameViewHelper.php b/Classes/ViewHelpers/Namespaces/FormElementNameViewHelper.php old mode 100755 new mode 100644 similarity index 95% rename from Classes/ViewHelpers/Namespace/FormElementNameViewHelper.php rename to Classes/ViewHelpers/Namespaces/FormElementNameViewHelper.php index 40497de34..6079cacaf --- a/Classes/ViewHelpers/Namespace/FormElementNameViewHelper.php +++ b/Classes/ViewHelpers/Namespaces/FormElementNameViewHelper.php @@ -1,4 +1,5 @@ ' + * + * + * Set namespace and arguments as string: + * {extlist:namespace.GPArray(nameSpace:'' * arguments:':{},:{}')} - * + * * Set namespace from object: * {extlist:namespace.GPArray(object:'{filter}' arguments:'invert')} - * + * * @see Tx_PtExtlist_Tests_ViewHelpers_Namespace_GPArrayViewHelperTest */ -class Tx_PtExtlist_ViewHelpers_Namespace_GPArrayViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper +class GPArrayViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper { /** * Holds instance of session persistence manager builder * - * @var Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder + * @var \Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder */ protected $sessionPersistenceManagerBuilder; @@ -57,9 +58,9 @@ class Tx_PtExtlist_ViewHelpers_Namespace_GPArrayViewHelper extends \TYPO3\CMS\Fl /** * Injects session persistence manager factory (used by DI) * - * @param Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder $sessionPersistenceManagerBuilder + * @param \Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder $sessionPersistenceManagerBuilder */ - public function injectSessionPersistenceManagerBuilder(Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder $sessionPersistenceManagerBuilder) + public function injectSessionPersistenceManagerBuilder(\Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder $sessionPersistenceManagerBuilder) { $this->sessionPersistenceManagerBuilder = $sessionPersistenceManagerBuilder; } @@ -68,10 +69,10 @@ public function injectSessionPersistenceManagerBuilder(Tx_PtExtbase_State_Sessio /** * render build key/value GET/POST-array within the namespace of the given object - * + * * @param string $arguments : list of arguments - * @param Tx_PtExtbase_State_IdentifiableInterface $object - * either as list of 'key : value' pairs + * @param \Tx_PtExtbase_State_IdentifiableInterface $object + * either as list of 'key : value' pairs * or as list of properties wich are then recieved from the object * @param string $nameSpace * @return array GPArray of objects namespace @@ -80,12 +81,12 @@ public function render($arguments, $object = null, $nameSpace = '') { $argumentStringArray = $this->getArgumentArray($arguments); $argumentArray = []; - + foreach ($argumentStringArray as $key => $value) { if ($object !== null && $value === false) { $value = $this->getObjectValue($object, $key); } - + if (!$nameSpace) { $argumentArray = array_merge_recursive($argumentArray, $this->buildObjectValueArray($object, $key, $value)); } else { @@ -97,12 +98,12 @@ public function render($arguments, $object = null, $nameSpace = '') return $argumentArray; } - - - + + + /** * Use the objects getter to get the value - * + * * @param Tx_PtExtbase_State_IdentifiableInterface $object * @param string $property * @return mixed value @@ -111,15 +112,15 @@ protected function getObjectValue(Tx_PtExtbase_State_IdentifiableInterface $obje { $getterMethod = 'get'.ucfirst($property); Tx_PtExtbase_Assertions_Assert::isTrue(method_exists($object, $getterMethod), ['message' => 'The Object' . get_class($object) . ' has no getter method "' . $getterMethod . '" ! 1280929630']); - + return $object->$getterMethod(); } - - - + + + /** * Get an argument array out of a string - * + * * @param string $argumentString * @return array */ @@ -127,7 +128,7 @@ public function getArgumentArray($argumentString) { $argumentArray = []; $argumentChunks = GeneralUtility::trimExplode(',', $argumentString); - + foreach ($argumentChunks as $argument) { if (strstr($argument, ':')) { list($key, $value) = GeneralUtility::trimExplode(':', $argument); @@ -137,25 +138,25 @@ public function getArgumentArray($argumentString) $argumentArray[$key] = false; } } - + return $argumentArray; } - - - + + + /** * Get the valueArray with the right objectNamespace - * - * @param Tx_PtExtbase_State_IdentifiableInterface $object + * + * @param \Tx_PtExtbase_State_IdentifiableInterface $object * @param string $key * @param string $value * @return array */ - public function buildObjectValueArray(Tx_PtExtbase_State_IdentifiableInterface $object, $key, $value) + public function buildObjectValueArray(\Tx_PtExtbase_State_IdentifiableInterface $object, $key, $value) { $nameSpace = $object->getObjectNamespace(); - Tx_PtExtbase_Assertions_Assert::isNotEmptyString($nameSpace, ['message' => 'No ObjectNamespace returned from Obejct ' . get_class($object) . '! 1280771624']); - + \Tx_PtExtbase_Assertions_Assert::isNotEmptyString($nameSpace, ['message' => 'No ObjectNamespace returned from Obejct ' . get_class($object) . '! 1280771624']); + return $this->buildNamespaceValueArray($nameSpace, $key, $value); } @@ -172,10 +173,10 @@ public function buildObjectValueArray(Tx_PtExtbase_State_IdentifiableInterface $ public function buildNamespaceValueArray($nameSpace, $key, $value) { $nameSpaceChunks = GeneralUtility::trimExplode('.', $nameSpace); - + $returnArray = []; $pointer = &$returnArray; - + // Build array foreach ($nameSpaceChunks as $chunk) { $pointer = &$pointer[$chunk]; diff --git a/Classes/ViewHelpers/Sql/FilterViewHelper.php b/Classes/ViewHelpers/Sql/FilterViewHelper.php index 45f3a87a9..d463840c8 100644 --- a/Classes/ViewHelpers/Sql/FilterViewHelper.php +++ b/Classes/ViewHelpers/Sql/FilterViewHelper.php @@ -1,4 +1,5 @@ sessionPersistenceManagerBuilder = $sessionPersistenceManagerBuilder; } @@ -79,8 +80,8 @@ public function injectSessionPersistenceManagerBuilder(Tx_PtExtbase_State_Sessio */ public function render($action = null, array $arguments = [], $controller = null, $extensionName = null, $pluginName = null, $pageUid = null, $pageType = 0, $noCache = false, $noCacheHash = false, $section = '', $format = '', $linkAccessRestrictedPages = false, array $additionalParams = [], $absolute = false, $addQueryString = false, array $argumentsToBeExcludedFromQueryString = []) { - $this->sessionPersistenceManagerBuilder->getInstance()->addSessionRelatedArguments($arguments); - + $this->sessionPersistenceManagerBuilder->getInstance()->addSessionRelatedArguments($argumentArray); + $uriBuilder = $this->controllerContext->getUriBuilder(); $uri = $uriBuilder ->reset() diff --git a/Resources/Public/Icons/icon_tx_ptextlist_domain_model_bookmars_bookmark.png b/Resources/Public/Icons/icon_tx_ptextlist_domain_model_bookmars_bookmark.png new file mode 100644 index 000000000..4208eaa0c Binary files /dev/null and b/Resources/Public/Icons/icon_tx_ptextlist_domain_model_bookmars_bookmark.png differ