Использование FrontEnd методов в BackEnd TYPO3 | CMS обзор

Рубрики : (TYPO3, Советы и трюки)

Использование FrontEnd методов в BackEnd TYPO3

Метки : , , , ,

Frontend в BackEndНедавно модифицировал админку (backend) и задумался над вопросом как использовать функциональность frontend, например TypoScript конфигурация, генерация картинок, парсинг шаблона. Прогуглив нашел решение. Поскольку в админке другая логика, приходится подключать библиотеки для FrontEnd.

// plugin-baseclass
require_once(PATH_tslib.'class.tslib_pibase.php');
// classes for retrieving the typoscript configuration of the current page
require_once(PATH_t3lib.'class.t3lib_page.php');
require_once(PATH_t3lib.'class.t3lib_tstemplate.php');
require_once(PATH_t3lib.'class.t3lib_tsparser_ext.php');
// class for rendering content, retrieving and substituting markers in templates,...
require_once(PATH_tslib.'class.tslib_content.php');
// tools
require_once(PATH_t3lib.'class.t3lib_div.php');
// extensionmanager
require_once(PATH_t3lib.'class.t3lib_extmgm.php');
require_once(PATH_t3lib.'config_default.php');
// basic configuration of TYPO3 - can be configured via the install tool
require_once(PATH_typo3conf.'localconf.php');
// main frontend class
require_once(PATH_tslib.'class.tslib_fe.php');
// classes for user authentication for frontend and backendusers, sessionmanagement
require_once(PATH_t3lib.'class.t3lib_userauth.php');
require_once(PATH_tslib.'class.tslib_feuserauth.php');

class myFEOutput extends tslib_pibase {

var $id;
var $conf;

function main(){
return "hello world!";
}
}

// creating a fake TSFE object
$TSFEclassName = t3lib_div::makeInstanceClassName('tslib_fe');
// retrieving the id of the current page
$id = isset($HTTP_GET_VARS['id'])?$HTTP_GET_VARS['id']:0;
// configure the TSFE object
$GLOBALS['TSFE'] = new $TSFEclassName($TYPO3_CONF_VARS, $id, '0', 1, '', '','','');
$GLOBALS['TSFE']->connectToMySQL();
$GLOBALS['TSFE']->initFEuser();
$GLOBALS['TSFE']->fetch_the_id();
$GLOBALS['TSFE']->getPageAndRootline();
$GLOBALS['TSFE']->initTemplate();
$GLOBALS['TSFE']->tmpl->getFileName_backPath = PATH_site;
$GLOBALS['TSFE']->forceTemplateParsing = 1;
$GLOBALS['TSFE']->getConfigArray();

// create a plugin object
$plugin = t3lib_div::makeInstance('myFEOutput');
// assign a contentobject for rendering content
$plugin->cObj = t3lib_div::makeInstance('tslib_cObj');
$sysPageObj = t3lib_div::makeInstance('t3lib_pageSelect');
// retrieve rootline
$rootLine = $sysPageObj->getRootLine($id);
// create a Typoscript parser object
$TSObj = t3lib_div::makeInstance('t3lib_tsparser_ext');
$TSObj->tt_track = 0;
$TSObj->init();
// parse the templates
$TSObj->runThroughTemplates($rootLine);
$TSObj->generateConfig();
$plugin->conf = $TSObj->setup['plugin.']['myFEOutput.'];

// output html
echo($plugin->main());


Comments:

Оставить комменатарий