Project

General

Profile

Feature #19308 » 9318_v3.diff

Administrator Admin, 2008-09-13 16:41

View differences:

typo3/sysext/cms/tslib/class.tslib_eidtools.php (working copy)
/**
* [CLASS/FUNCTION INDEX of SCRIPT]
*
* 71: public static function initFeUser()
* 98: public static function connectDB()
* 117: public static function initLanguage($language = 'default')
* 131: public static function initTCA()
* 150: public static function initExtensionTCA($extensionKey)
* 167: private static function getTSFE()
*
*
* 74: class tslib_eidtools
* 81: function initFeUser()
* 108: function connectDB()
*
* TOTAL FUNCTIONS: 2
* TOTAL FUNCTIONS: 6
* (This index is automatically created/updated by the extension "extdeveval")
*
*/
/**
* Tools for scripts using the eID feature of index.php
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Dmitry Dulepov <dmitry@typo3.org>
* @package TYPO3
* @subpackage tslib
*/
class tslib_eidtools {
final class tslib_eidtools {
/**
* Load and initialize Frontend User
* Load and initialize Frontend User. Note, this process is slow because
* it creates a calls many objects. Call this method only if necessary!
*
* @return object Frontend User object (usually known as TSFE->fe_user)
*/
public static function initFeUser() {
// Include classes necessary for initializing frontend user:
// We will use tslib_fe to do that:
require_once(PATH_tslib.'class.tslib_fe.php');
require_once(PATH_t3lib.'class.t3lib_cs.php');
require_once(PATH_t3lib.'class.t3lib_userauth.php');
require_once(PATH_tslib.'class.tslib_feuserauth.php');
// Initialize the database. Do not use TSFE method as it may redirect to
// Install tool and call hooks, which do not expect to be called from eID
self::connectDB();
// Make new instance of TSFE object for initializing user:
$temp_TSFEclassName = t3lib_div::makeInstanceClassName('tslib_fe');
$TSFE = new $temp_TSFEclassName($GLOBALS['TYPO3_CONF_VARS'],0,0);
$TSFE->connectToDB();
// Get TSFE instance. It knows how to initialize the user. We also
// need TCA because services may need extra tables!
self::initTCA();
$tsfe = self::getTSFE();
/* @var $tsfe tslib_fe */
// Initialize FE user:
$TSFE->initFEuser();
// Include classes necessary for initializing frontend user
require_once(PATH_t3lib . 'class.t3lib_userauth.php');
require_once(PATH_tslib . 'class.tslib_feuserauth.php');
// Return FE user object:
return $TSFE->fe_user;
$tsfe->initFEuser();
// Return FE user object:
return $tsfe->fe_user;
}
/**
* Connecting to database
* Connecting to database. If the function fails, last error message
* can be retrieved using $GLOBALS['TYPO3_DB']->sql_error().
*
* @return void
* @return boolean true if connection was successful
*/
public static function connectDB() {
/* @var $TYPO3_DB t3lib_db */
$GLOBALS['TYPO3_DB']->connectDB();
static $dbConnected = false;
if (!$dbConnected) {
// Attempt to connect to the database
if ($GLOBALS['TYPO3_DB']->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password) &&
$GLOBALS['TYPO3_DB']->sql_select_db(TYPO3_db)) {
$dbConnected = true;
}
}
return $dbConnected;
}
/**
* Initializes $GLOBALS['LANG'] for use in eID scripts.
*
* @param string $language TYPO3 language code
* @return void
*/
public static function initLanguage($language = 'default') {
if (!is_object($GLOBALS['LANG'])) {
require_once(PATH_t3lib . 'class.t3lib_cs.php');
require_once(t3lib_extMgm::extPath('lang', 'lang.php'));
$GLOBALS['LANG'] = t3lib_div::makeInstance('language');
$GLOBALS['LANG']->init($language);
}
}
/**
* Makes TCA available inside eID
*
* @return void
*/
public static function initTCA() {
// Some badly made extensions attempt to manipulate TCA in a wrong way
// (inside ext_localconf.php). Therefore $TCA may become an array
// but in fact it is not loaded. The check below ensure that
// TCA is still loaded if such bad extensions are installed
if (!is_array($GLOBALS['TCA']) || !isset($GLOBALS['TCA']['pages'])) {
// Load TCA using TSFE
self::getTSFE()->includeTCA(false);
}
}
/**
* Makes TCA for the extension available inside eID. Use this function if
* you need not to include the whole $TCA. However, you still need to call
* t3lib_div::loadTCA() if you want to access column array!
*
* @param string $extensionKey Extension key
* @return void
*/
public static function initExtensionTCA($extensionKey) {
$extTablesPath = t3lib_extMgm::extPath($extensionKey, 'ext_tables.php');
if (file_exists($extTablesPath)) {
$GLOBALS['_EXTKEY'] = $extensionKey;
require_once($extTablesPath);
unset($GLOBALS['_EXTKEY']);
// We do not need to save restore the value of $GLOBALS['_EXTKEY']
// because it is not defined to anything real outside of
// ext_tables.php or ext_localconf.php scope.
}
}
/**
* Creating a single static cached instance of TSFE to use with this class.
*
* @return tslib_fe New instance of tslib_fe
*/
private static function getTSFE() {
// Cached instance
static $tsfe = null;
if (is_null($tsfe)) {
require_once(PATH_tslib . 'class.tslib_fe.php');
require_once(PATH_t3lib . 'class.t3lib_cs.php');
$tsfeClassName = t3lib_div::makeInstanceClassName('tslib_fe');
$tsfe = new $tsfeClassName($GLOBALS['TYPO3_CONF_VARS'], 0, 0);
}
return $tsfe;
}
}
?>
(2-2/2)