function checkForAdditionalConfiguration( $less ) { /* Define directories for @import scripts */ if( isset( $this->configuration['other']['importDirs'] ) ) { $importDirs = explode( ',', str_replace( ', ', ',', $this->configuration['other']['importDirs'] ) ); foreach( $importDirs as $importDir ) { $less->addImportDir( Tx_T3Less_Utility_Utilities::getPath( $importDir ) ); } } // register custom functions, #36273 if( is_array( $this->configuration['phpcompiler']['registerFunctions'] ) ) { foreach( $this->configuration['phpcompiler']['registerFunctions'] as $key => $funcRef ) { $parts = explode( '->', $funcRef ); if( count( $parts ) == 2 ) { $hookObject = t3lib_div::getUserObj( $parts[0] ); if( is_object( $hookObject ) && method_exists( $hookObject, $parts[1] ) ) { $less->registerFunction( $key, array( $hookObject, $parts[1] ) ); } } } } }
/** * action base * */ public function baseAction() { if( TYPO3_MODE != 'FE' ) { return; } $files = array( ); // compiler activated? if( $this->configuration['other']['activateCompiler'] ) { // folders defined? if( $this->lessfolder && $this->outputfolder ) { // are there files in the defined less folder? if( t3lib_div::getFilesInDir( $this->lessfolder, "less", TRUE ) ) { $files = t3lib_div::getFilesInDir( $this->lessfolder, "less", TRUE ); } else { echo Tx_T3Less_Utility_Utilities::wrapErrorMessage( Tx_Extbase_Utility_Localization::translate( 'noLessFilesInFolder', $this->extensionName, $arguments = array( 's' => $this->lessfolder ) ) ); } } else { echo Tx_T3Less_Utility_Utilities::wrapErrorMessage( Tx_Extbase_Utility_Localization::translate( 'emptyPathes', $this->extensionName ) ); } } /* Hook to pass less-files from other extension, see manual */ if( isset( $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['t3less']['addForeignLessFiles'] ) ) { foreach( $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['t3less']['addForeignLessFiles'] as $hookedFilePath ) { $hookPath = Tx_T3Less_Utility_Utilities::getPath( $hookedFilePath ); $files[] = t3lib_div::getFilesInDir( $hookPath, "less", TRUE ); } $files = Tx_T3Less_Utility_Utilities::flatArray( null, $files ); } switch( $this->configuration['enable']['mode'] ) { case 'PHP-Compiler': $controller = t3lib_div::makeInstance( 'Tx_T3Less_Controller_LessPhpController' ); $controller->lessPhp( $files ); break; case 'JS-Compiler': $controller = t3lib_div::makeInstance( 'Tx_T3Less_Controller_LessJsController' ); $controller->lessJs( $files ); break; case 'JS-Compiler via Node.js': $controller = t3lib_div::makeInstance( 'Tx_T3Less_Controller_LessJsNodeController' ); if( $controller->isLesscInstalled() ) { $controller->lessc( $files ); } else { echo Tx_T3Less_Utility_Utilities::wrapErrorMessage( Tx_Extbase_Utility_Localization::translate( 'lesscRequired', $this->extensionName ) ); } break; } }