/** * Function will be called before every other action * * @return void */ public function initializeAction() { $this->setPage((int) \TYPO3\CMS\Core\Utility\GeneralUtility::_GET('id')); $this->setTsConfig(); $this->extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['moox_news']); if (!empty($this->extConf['forceYearFilter'])) { $this->setForceYearFilter(1); } $this->setMailerActive(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('moox_mailer')); $this->pageRepository = $this->objectManager->get('TYPO3\\CMS\\Frontend\\Page\\PageRepository'); $this->backendSession = $this->objectManager->get('DCNGmbH\\MooxNews\\Service\\BackendSessionService'); parent::initializeAction(); }
/** * Set up framework * * @return void */ public function setUp() { $this->fixture = new Tx_MooxNews_Controller_NewsController(); $this->newsRepository = $this->getMock('Tx_MooxNews_Domain_Repository_NewsRepository', array(), array(), '', FALSE); $this->fixture->injectNewsRepository($this->newsRepository); }
/** * get filter code * * @param string $filter * @param array $dependDemand * @param string $settings * @return void */ public function fetchFilterAction($filter = "", array $dependDemand = NULL, $settings = "") { $this->isAjaxRequest = true; if ($filter != "" && $settings != "") { $dependFields = array(); if (count($dependDemand)) { foreach ($dependDemand as $dependField => $dependFieldValue) { $dependFields[\TYPO3\CMS\Core\Utility\GeneralUtility::camelCaseToLowerCaseUnderscored($dependField)] = $dependFieldValue; } } $settings = json_decode($settings, true); if (!is_array($this->settings)) { $this->settings = array(); } $this->settings = array_merge($this->settings, $settings); $demand = \Tx_MooxNews_Controller_NewsController::createDemandObjectFromSettings($this->settings); $fieldname = \TYPO3\CMS\Core\Utility\GeneralUtility::camelCaseToLowerCaseUnderscored($filter); $field = $GLOBALS['TCA']['tx_mooxnews_domain_model_news']['columns'][$fieldname]; $items = array(); if ($field['config']['type'] == 'select') { if ($field['config']['foreign_table'] != "") { $itemsFromDb = $this->newsRepository->findExtendedFilterItems($fieldname, $demand->getStoragePage(), $field['config']['foreign_table'], $field['config']['foreign_table_where'], $dependFields); foreach ($itemsFromDb as $item) { $items[$item['uid']] = $item['title']; } } } else { $valuesFromDb = $this->newsRepository->findExtendedFilterUniqueValues($fieldname, $demand->getStoragePage(), $dependFields); } if ($field['config']['type'] == 'select') { if (count($items)) { if (!isset($items['all'])) { if ($field['addToMooxNewsFrontendFilter']['selectAllLabel'] != "") { $selectAllLabel = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($field['addToMooxNewsFrontendFilter']['selectAllLabel'], $field['extkey']); } else { $selectAllLabel = "Alle"; } $itemsTmp = $items; $items = array(); $items["all"] = $selectAllLabel; foreach ($itemsTmp as $key => $value) { $items[$key] = $value; } unset($itemsTmp); } } $this->view->assign('options', $items); } else { if ($field['addToMooxNewsFrontendFilter']['selectAllLabel'] != "") { $values['all'] = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($field['addToMooxNewsFrontendFilter']['selectAllLabel'], $field['extkey']); } else { $values['all'] = "Alle"; } if (count($valuesFromDb)) { $valueCnt = 0; foreach ($valuesFromDb as $value) { if ($value == "empty") { if ($field['addToMooxNewsFrontendFilter']['selectEmptyLabel'] != "") { $valueLabel = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($field['addToMooxNewsFrontendFilter']['selectEmptyLabel'], $field['extkey']); $values[$value] = $valueLabel; } else { $valueLabel = "Ohne Wert"; } } else { $values[$value] = $value; $valueCnt++; } } $this->view->assign('options', $values); } } } else { exit("not allowed"); } }