当前位置: 首页>>代码示例>>PHP>>正文


PHP ExtensionManagementUtility::extPath方法代码示例

本文整理汇总了PHP中TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath方法的典型用法代码示例。如果您正苦于以下问题:PHP ExtensionManagementUtility::extPath方法的具体用法?PHP ExtensionManagementUtility::extPath怎么用?PHP ExtensionManagementUtility::extPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TYPO3\CMS\Core\Utility\ExtensionManagementUtility的用法示例。


在下文中一共展示了ExtensionManagementUtility::extPath方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: reBuild

 /**
  * Rebuild the class cache
  *
  * @param array $parameters
  *
  * @throws \Evoweb\Extender\Exception\FileNotFoundException
  * @throws \TYPO3\CMS\Core\Cache\Exception\InvalidDataException
  * @return void
  */
 public function reBuild(array $parameters = array())
 {
     if (empty($parameters) || !empty($parameters['cacheCmd']) && GeneralUtility::inList('all,system', $parameters['cacheCmd']) && isset($GLOBALS['BE_USER'])) {
         foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'] as $extensionKey => $extensionConfiguration) {
             if (!isset($extensionConfiguration['extender']) || !is_array($extensionConfiguration['extender'])) {
                 continue;
             }
             foreach ($extensionConfiguration['extender'] as $entity => $entityConfiguration) {
                 $key = 'Domain/Model/' . $entity;
                 // Get the file to extend, this needs to be loaded as first
                 $path = ExtensionManagementUtility::extPath($extensionKey) . 'Classes/' . $key . '.php';
                 if (!is_file($path)) {
                     throw new \Evoweb\Extender\Exception\FileNotFoundException('given file "' . $path . '" does not exist');
                 }
                 $code = $this->parseSingleFile($path, false);
                 // Get the files from all other extensions that are extending this domain model
                 if (is_array($entityConfiguration)) {
                     foreach ($entityConfiguration as $extendingExtension => $extendingFilepath) {
                         $path = GeneralUtility::getFileAbsFileName($extendingFilepath, false);
                         if (!is_file($path) && !is_numeric($extendingExtension)) {
                             $path = ExtensionManagementUtility::extPath($extendingExtension) . 'Classes/' . $key . '.php';
                         }
                         $code .= $this->parseSingleFile($path);
                     }
                 }
                 // Close the class definition
                 $code = $this->closeClassDefinition($code);
                 // Add the new file to the class cache
                 $cacheEntryIdentifier = GeneralUtility::underscoredToLowerCamelCase($extensionKey) . '_' . str_replace('/', '', $key);
                 $this->cacheInstance->set($cacheEntryIdentifier, $code);
             }
         }
     }
 }
开发者ID:evoweb,项目名称:extender,代码行数:43,代码来源:ClassCacheManager.php

示例2: prepareLoader

 /**
  * Get all the complex data for the loader.
  * This return value will be cached and stored in the database
  * There is no file monitoring for this cache
  *
  * @param Loader $loader
  * @param int    $type
  *
  * @return array
  */
 public function prepareLoader(Loader $loader, $type)
 {
     $hooks = [];
     $folder = ExtensionManagementUtility::extPath($loader->getExtensionKey()) . 'Classes/Hooks/';
     $files = FileUtility::getBaseFilesInDir($folder, 'php');
     foreach ($files as $hookFile) {
         $hookClass = ClassNamingUtility::getFqnByPath($loader->getVendorName(), $loader->getExtensionKey(), 'Hooks/' . $hookFile);
         if (!$loader->isInstantiableClass($hookClass)) {
             continue;
         }
         $classReflection = ReflectionUtility::createReflectionClass($hookClass);
         // add class hook
         $tagConfiguration = ReflectionUtility::getTagConfiguration($classReflection, ['hook']);
         if (sizeof($tagConfiguration['hook'])) {
             $hooks[] = ['locations' => $tagConfiguration['hook'], 'configuration' => $hookClass];
         }
         // add method hooks
         foreach ($classReflection->getMethods(MethodReflection::IS_PUBLIC) as $methodReflection) {
             /** @var $methodReflection \TYPO3\CMS\Extbase\Reflection\MethodReflection */
             $tagConfiguration = ReflectionUtility::getTagConfiguration($methodReflection, ['hook']);
             if (sizeof($tagConfiguration['hook'])) {
                 $hooks[] = ['locations' => $tagConfiguration['hook'], 'configuration' => $hookClass . '->' . $methodReflection->getName()];
             }
         }
     }
     return $hooks;
 }
开发者ID:c2po,项目名称:autoloader,代码行数:37,代码来源:Hooks.php

示例3: initialize_editor

 /**
  * Initialize editor
  *
  * Initializes the module.
  * Done in this function because we may need to re-initialize if data is submitted!
  *
  * @param int $pageId
  * @param int $template_uid
  * @return bool
  */
 public function initialize_editor($pageId, $template_uid = 0)
 {
     $templateService = GeneralUtility::makeInstance(ExtendedTemplateService::class);
     $GLOBALS['tmpl'] = $templateService;
     // Do not log time-performance information
     $templateService->tt_track = false;
     $templateService->init();
     $templateService->ext_localGfxPrefix = ExtensionManagementUtility::extPath('tstemplate');
     $templateService->ext_localWebGfxPrefix = ExtensionManagementUtility::extRelPath('tstemplate') . 'Resources/Public/';
     // Get the row of the first VISIBLE template of the page. whereclause like the frontend.
     $GLOBALS['tplRow'] = $templateService->ext_getFirstTemplate($pageId, $template_uid);
     // IF there was a template...
     if (is_array($GLOBALS['tplRow'])) {
         // Gets the rootLine
         $sys_page = GeneralUtility::makeInstance(PageRepository::class);
         $rootLine = $sys_page->getRootLine($pageId);
         // This generates the constants/config + hierarchy info for the template.
         $templateService->runThroughTemplates($rootLine, $template_uid);
         // The editable constants are returned in an array.
         $GLOBALS['theConstants'] = $templateService->generateConfig_constants();
         // The returned constants are sorted in categories, that goes into the $tmpl->categories array
         $templateService->ext_categorizeEditableConstants($GLOBALS['theConstants']);
         // This array will contain key=[expanded constant name], value=line number in template. (after edit_divider, if any)
         $templateService->ext_regObjectPositions($GLOBALS['tplRow']['constants']);
         return true;
     }
     return false;
 }
开发者ID:Audibene-GMBH,项目名称:TYPO3.CMS,代码行数:38,代码来源:TypoScriptTemplateConstantEditorModuleFunctionController.php

示例4: render

 /**
  * Calls addJsFile for each file in the given folder on the Instance of TYPO3\CMS\Core\Page\PageRenderer.
  *
  * @param string $name the file to include
  * @param string $extKey the extension, where the file is located
  * @param string $pathInsideExt the path to the file relative to the ext-folder
  * @param bool $recursive
  */
 public function render($name = null, $extKey = null, $pathInsideExt = 'Resources/Public/JavaScript/', $recursive = false)
 {
     if ($extKey == null) {
         $extKey = $this->controllerContext->getRequest()->getControllerExtensionKey();
     }
     $extPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($extKey);
     if (TYPO3_MODE === 'FE') {
         $extRelPath = substr($extPath, strlen(PATH_site));
     } else {
         $extRelPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($extKey);
     }
     $absFolderPath = $extPath . $pathInsideExt . $name;
     // $files will include all files relative to $pathInsideExt
     if ($recursive === false) {
         $files = \TYPO3\CMS\Core\Utility\GeneralUtility::getFilesInDir($absFolderPath);
         foreach ($files as $hash => $filename) {
             $files[$hash] = $name . $filename;
         }
     } else {
         $files = \TYPO3\CMS\Core\Utility\GeneralUtility::getAllFilesAndFoldersInPath([], $absFolderPath, '', 0, 99, '\\.svn');
         foreach ($files as $hash => $absPath) {
             $files[$hash] = str_replace($extPath . $pathInsideExt, '', $absPath);
         }
     }
     foreach ($files as $name) {
         $this->pageRenderer->addJsFile($extRelPath . $pathInsideExt . $name);
     }
 }
开发者ID:ecodev,项目名称:newsletter,代码行数:36,代码来源:IncludeJsFolderViewHelper.php

示例5: prepareLoader

 /**
  * Get all the complex data for the loader.
  * This return value will be cached and stored in the database
  * There is no file monitoring for this cache
  *
  * @param Loader $loader
  * @param int    $type
  *
  * @return array
  */
 public function prepareLoader(Loader $loader, $type)
 {
     $icons = [];
     if (!class_exists('TYPO3\\CMS\\Core\\Imaging\\IconRegistry')) {
         return $icons;
     }
     $iconFolder = 'Resources/Public/Icon/';
     $folder = ExtensionManagementUtility::extPath($loader->getExtensionKey()) . $iconFolder;
     $extensionPath = ExtensionManagementUtility::extPath($loader->getExtensionKey());
     $files = GeneralUtility::getAllFilesAndFoldersInPath([], $folder, '', false, true);
     if (!sizeof($files)) {
         return $icons;
     }
     foreach ($files as $path) {
         $provider = 'TYPO3\\CMS\\Core\\Imaging\\IconProvider\\BitmapIconProvider';
         if (substr(strtolower($path), -3) === 'svg') {
             $provider = 'TYPO3\\CMS\\Core\\Imaging\\IconProvider\\SvgIconProvider';
         }
         $relativePath = str_replace($extensionPath, '', $path);
         $iconPath = str_replace($iconFolder, '', $relativePath);
         $pathElements = PathUtility::pathinfo(strtolower(str_replace('/', '-', $iconPath)));
         $icons[] = ['provider' => $provider, 'path' => 'EXT:' . $loader->getExtensionKey() . '/' . $relativePath, 'identifier' => str_replace('_', '-', $loader->getExtensionKey()) . '-' . $pathElements['filename']];
     }
     return $icons;
 }
开发者ID:Calius,项目名称:autoloader,代码行数:35,代码来源:Icon.php

示例6: reBuild

 public function reBuild()
 {
     $classPath = 'Classes/';
     foreach ($GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes'] as $key => $extensionsWithThisClass) {
         $extendingClassFound = false;
         $path = ExtensionManagementUtility::extPath('news') . $classPath . $key . '.php';
         if (!is_file($path)) {
             throw new \Exception('Given file "' . $path . '" does not exist');
         }
         $code = $this->parseSingleFile($path, true);
         // Get the files from all other extensions
         foreach ($extensionsWithThisClass as $extensionKey) {
             $path = ExtensionManagementUtility::extPath($extensionKey) . $classPath . $key . '.php';
             if (is_file($path)) {
                 $extendingClassFound = true;
                 $code .= $this->parseSingleFile($path, false);
             }
         }
         $code = $this->closeClassDefinition($code);
         // If an extending class is found, the file is written and
         // added to the autoloader info
         if ($extendingClassFound) {
             $cacheEntryIdentifier = 'tx_news_' . strtolower(str_replace('/', '_', $key));
             try {
                 $this->cacheInstance->set($cacheEntryIdentifier, $code);
             } catch (\Exception $e) {
                 throw new \Exception($e->getMessage());
             }
         }
     }
 }
开发者ID:mrmoree,项目名称:vkmh_typo3,代码行数:31,代码来源:ClassCacheManager.php

示例7: getSettings

 /**
  * Parses the extension settings.
  *
  * @return \GeorgRinger\News\Domain\Model\Dto\EmConfiguration
  * @throws \Exception If the configuration is invalid.
  */
 public static function getSettings()
 {
     $configuration = self::parseSettings();
     GeneralUtility::requireOnce(ExtensionManagementUtility::extPath('news') . 'Classes/Domain/Model/Dto/EmConfiguration.php');
     $settings = new \GeorgRinger\News\Domain\Model\Dto\EmConfiguration($configuration);
     return $settings;
 }
开发者ID:kalypso63,项目名称:news,代码行数:13,代码来源:EmConfiguration.php

示例8: getLanguageFlagIconPath

 /**
  * Returns the flag icons path depending on the current core version
  *
  * @return string
  */
 public static function getLanguageFlagIconPath()
 {
     if (TRUE === version_compare(TYPO3_version, '7.1', '<')) {
         return ExtensionManagementUtility::extPath('t3skin') . 'images/flags/';
     }
     return ExtensionManagementUtility::extPath('core') . 'Resources/Public/Icons/Flags/';
 }
开发者ID:smichaelsen,项目名称:vhs,代码行数:12,代码来源:CoreUtility.php

示例9: listAction

 /**
  * Outputs a list view of address
  *
  * @return void
  */
 public function listAction()
 {
     if ($this->request->hasArgument('zip') && $this->request->getArgument('zip') != '') {
         $zip = $this->request->getArgument('zip');
         $isSearch = TRUE;
     }
     if ($zip == '' && $this->request->hasArgument('city') && $this->request->getArgument('city') != '') {
         $jsonFileName = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('hwt_address') . 'Resources/Private/Data/city-zip.json';
         $dataArray = array_change_key_case(json_decode(file_get_contents($jsonFileName), true));
         $city = strtolower($this->request->getArgument('city'));
         if (!empty($dataArray[$city])) {
             $zip = substr($dataArray[$city], 0, 5);
         }
         $isSearch = TRUE;
     }
     if ($this->settings['addressStoragePages'] && $this->settings['addressStoragePages'] != '') {
         $addressRecords = $this->addressRepository->findInPageIds($this->settings['addressStoragePages'], $this->settings['orderBy'], $this->settings['orderDirection']);
     } elseif ($this->settings['list']['displayPageRelated'] == 1) {
         $addressRecords = $this->addressRepository->findRelatedToPage($GLOBALS['TSFE']->id);
     } elseif ($this->settings['addressCategories'] || $zip) {
         $addressRecords = $this->addressRepository->findAllWithoutPidRestriction($this->settings['addressCategories'], $zip, $this->settings['orderBy'], $this->settings['orderDirection']);
     }
     if (count($addressRecords) == 0 && $this->settings['addressRecords']) {
         $addressRecords = $this->addressRepository->findByUidInList($this->settings['addressRecords'], $this->settings['orderBy'], $this->settings['orderDirection']);
     }
     $this->view->assign('addresses', $addressRecords);
 }
开发者ID:hwt3,项目名称:HwtTypo3HwtAddress,代码行数:32,代码来源:AddressController.php

示例10: doUpdate

 /**
  * Do the language pack update
  *
  * @param string $extensionKey: extension key of the language pack
  * @return void
  */
 public function doUpdate($extensionKey)
 {
     $extPath = ExtensionManagementUtility::extPath($extensionKey);
     $fileContent = explode(LF, GeneralUtility::getUrl($extPath . 'ext_tables_static+adt.sql'));
     // SQL parser was moved from core to dbal in TYPO3 CMS 7.5
     if (is_object($GLOBALS['TYPO3_DB']->SQLparser)) {
         $sqlParser = $GLOBALS['TYPO3_DB']->SQLparser;
     } else {
         $sqlParser = $this->objectManager->get('SJBR\\StaticInfoTables\\Database\\SqlParser');
     }
     foreach ($fileContent as $line) {
         $line = trim($line);
         if ($line && preg_match('#^UPDATE#i', $line)) {
             $parsedResult = $sqlParser->parseSQL($line);
             // WHERE clause
             $whereClause = $sqlParser->compileWhereClause($parsedResult['WHERE']);
             // Fields
             $fields = array();
             foreach ($parsedResult['FIELDS'] as $fN => $fV) {
                 $fields[$fN] = $fV[0];
             }
             $res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery($parsedResult['TABLE'], $whereClause, $fields, TRUE);
         }
     }
 }
开发者ID:khanhdeux,项目名称:typo3test,代码行数:31,代码来源:DatabaseUpdateUtility.php

示例11: addFields_predefinedJS

 /**
  * Adds onchange listener on the drop down menu "predefined".
  * If the event is fired and old value was ".default", then empty some fields.
  *
  * @param array $config
  * @return string the javascript
  * @author Fabien Udriot
  */
 function addFields_predefinedJS($config)
 {
     $newRecord = 'true';
     if ($config['row']['pi_flexform'] != '') {
         $flexData = \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($config['row']['pi_flexform']);
         if (isset($flexData['data']['sDEF']['lDEF']['predefined'])) {
             $newRecord = 'false';
         }
     }
     $uid = NULL;
     if (is_array($GLOBALS['SOBE']->editconf['tt_content'])) {
         $uid = key($GLOBALS['SOBE']->editconf['tt_content']);
     }
     if ($uid < 0 || empty($uid) || !strstr($uid, 'NEW')) {
         $uid = $GLOBALS['SOBE']->elementsData[0]['uid'];
     }
     //print_r($GLOBALS['SOBE']->elementsData[0]);
     $js = "<script>\n";
     $js .= "/*<![CDATA[*/\n";
     $divId = $GLOBALS['SOBE']->tceforms->dynNestedStack[0][1];
     if (!$divId) {
         //$divId = 'DTM-' . $uid;
         $divId = "DIV.c-tablayer";
     } else {
         $divId .= "-DIV";
     }
     $js .= "var uid = '" . $uid . "'\n";
     $js .= "var flexformBoxId = '" . $divId . "'\n";
     //$js .= "var flexformBoxId = 'DIV.c-tablayer'\n";
     $js .= "var newRecord = " . $newRecord . "\n";
     $js .= file_get_contents(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('formhandler') . 'Resources/JS/addFields_predefinedJS.js');
     $js .= "/*]]>*/\n";
     $js .= "</script>\n";
     return $js;
 }
开发者ID:mhuebe,项目名称:formhandler,代码行数:43,代码来源:class.tx_dynaflex.php

示例12: getJavaScript

 /**
  * Fetch the JavaScript to be rendered and replace the markers with "live" variables.
  *
  * @return string
  */
 protected function getJavaScript()
 {
     // Get the base prefix.
     $basePrefix = $this->getBasePrefix($this->getPrefix());
     $filePath = ExtensionManagementUtility::extPath('media') . 'Resources/Private/Backend/Standalone/FileUploadTceForms.js';
     return sprintf(file_get_contents($filePath), $basePrefix, $this->elementId, $this->getModuleUrl(), $this->getAllowedExtension(), GeneralUtility::getMaxUploadFileSize() * 1024, $this->getValue());
 }
开发者ID:visol,项目名称:media,代码行数:12,代码来源:FileUploadTceForms.php

示例13: prepareLoader

 /**
  * Get all the complex data for the loader.
  * This return value will be cached and stored in the database
  * There is no file monitoring for this cache
  *
  * @param Loader $autoLoader
  * @param int    $type
  *
  * @return array
  */
 public function prepareLoader(Loader $autoLoader, $type)
 {
     $slots = [];
     $slotPath = ExtensionManagementUtility::extPath($autoLoader->getExtensionKey()) . 'Classes/Slots/';
     $slotClasses = FileUtility::getBaseFilesInDir($slotPath, 'php');
     $extKey = GeneralUtility::underscoredToUpperCamelCase($autoLoader->getExtensionKey());
     foreach ($slotClasses as $slot) {
         $slotClass = $autoLoader->getVendorName() . '\\' . $extKey . '\\Slots\\' . $slot;
         if (!$autoLoader->isInstantiableClass($slotClass)) {
             continue;
         }
         $methods = ReflectionUtility::getPublicMethods($slotClass);
         foreach ($methods as $methodReflection) {
             /** @var MethodReflection $methodReflection */
             $tagConfiguration = ReflectionUtility::getTagConfiguration($methodReflection, ['signalClass', 'signalName']);
             foreach ($tagConfiguration['signalClass'] as $key => $signalClass) {
                 if (!isset($tagConfiguration['signalName'][$key])) {
                     continue;
                 }
                 $slots[] = ['signalClassName' => trim($signalClass, '\\'), 'signalName' => $tagConfiguration['signalName'][$key], 'slotClassNameOrObject' => $slotClass, 'slotMethodName' => $methodReflection->getName()];
             }
         }
     }
     return $slots;
 }
开发者ID:jousch,项目名称:autoloader,代码行数:35,代码来源:Slots.php

示例14: includeLocalLang

 /**
  * Reads the [extDir]/locallang.xml and returns the \$LOCAL_LANG array found in that file.
  *
  * @return    The array with language labels
  */
 public function includeLocalLang()
 {
     $llFile = ExtensionManagementUtility::extPath('ke_search') . 'pi1/locallang.xml';
     $xmlParser = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Localization\\Parser\\LocallangXmlParser');
     $LOCAL_LANG = $xmlParser->getParsedData($llFile, $GLOBALS['LANG']->lang);
     return $LOCAL_LANG;
 }
开发者ID:teaminmedias-pluswerk,项目名称:ke_search,代码行数:12,代码来源:class.tx_kesearch_pi1_wizicon.php

示例15: includeLocalLang

 /**
  * Includes the locallang file for the 'formhandler' extension
  *
  * @return array The LOCAL_LANG array
  */
 function includeLocalLang()
 {
     $llFile = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('formhandler') . 'Resources/Language/locallang_db.xml';
     $parser = TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Localization\\Parser\\LocallangXmlParser');
     $LOCAL_LANG = $parser->getParsedData($llFile, $GLOBALS['LANG']->lang, 'utf-8');
     return $LOCAL_LANG;
 }
开发者ID:mhuebe,项目名称:formhandler,代码行数:12,代码来源:class.tx_formhandler_wizicon.php


注:本文中的TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。