本文整理汇总了PHP中ipsRegistry::_fetchCoreVariables方法的典型用法代码示例。如果您正苦于以下问题:PHP ipsRegistry::_fetchCoreVariables方法的具体用法?PHP ipsRegistry::_fetchCoreVariables怎么用?PHP ipsRegistry::_fetchCoreVariables使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ipsRegistry
的用法示例。
在下文中一共展示了ipsRegistry::_fetchCoreVariables方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: rebuildCache
/**
* Rebuild a cache using defined $CACHE settings in it's extensions file
*
* @param string Cache key
* @param string Application
* @return @e void
*/
public static function rebuildCache($key, $app = '')
{
if (defined('IPS_NO_CACHE_REBUILD')) {
return true;
}
/* INIT */
$app = IPSText::alphanumericalClean($app);
$_caches = array();
if ($app) {
if ($app == 'global') {
$_caches = ipsRegistry::_fetchCoreVariables('cache');
} else {
/* isset there is needed to prevent issues on applications installation */
if (isset(ipsRegistry::$applications[$app]) && !IPSLib::appIsInstalled($app)) {
return;
}
$_caches = ipsRegistry::_fetchAppCoreVariables($app, 'cache');
}
} else {
/* Get all caches from all apps */
$_caches = ipsRegistry::_fetchCoreVariables('cache');
foreach (ipsRegistry::$applications as $appDir => $appData) {
$CACHE = ipsRegistry::_fetchAppCoreVariables($appDir, 'cache');
if (is_array($CACHE)) {
$_caches = array_merge($_caches, $CACHE);
/* @link http://community.invisionpower.com/resources/bugs.html/_/ip-board/automatic-cache-reloads-do-not-take-application-directories-into-account-r41762 */
if (isset($CACHE[$key])) {
$app = $appDir;
}
}
}
}
/* Rebuild the cache, if found */
if (isset($_caches[$key])) {
$file_to_check = $_caches[$key]['recache_file'];
if ($file_to_check and is_file($file_to_check)) {
$_func = $_caches[$key]['recache_function'];
/* Hackish way to check for action overloader */
if (strpos($file_to_check, '/modules_') !== FALSE) {
$_class = IPSLib::loadActionOverloader($file_to_check, $_caches[$key]['recache_class']);
} elseif ($app) {
$_class = IPSLib::loadLibrary($file_to_check, $_caches[$key]['recache_class'], $app == 'global' ? 'core' : $app);
}
/* Fallback */
if (!$_class) {
$_class = $_caches[$key]['recache_class'];
}
$recache = new $_class(ipsRegistry::instance());
if (method_exists($recache, 'makeRegistryShortcuts')) {
$recache->makeRegistryShortcuts(ipsRegistry::instance());
}
$recache->{$_func}();
}
}
}
示例2: buildFurlTemplates
/**
* Build furl templates from FURL extensions
*
* @access public
* @return array
*/
public static function buildFurlTemplates()
{
/* INIT */
$apps = array();
/* Done this already? */
if (self::$_furlTemplates) {
return self::$_furlTemplates;
}
/* Because this is called before the cache is unpacked, we need to expensively grab all app dirs */
foreach (array('applications', 'applications_addon/ips', 'applications_addon/other') as $folder) {
try {
foreach (new DirectoryIterator(IPS_ROOT_PATH . $folder) as $file) {
if (!$file->isDot() and $file->isDir()) {
$_name = $file->getFileName();
if (substr($_name, 0, 1) != '.') {
$apps[$folder . '/' . $_name] = $_name;
}
}
}
} catch (Exception $e) {
}
}
/* First, add in core stuffs */
ipsRegistry::_loadCoreVariables();
$templates = ipsRegistry::_fetchCoreVariables('templates');
if (is_array($templates)) {
foreach ($templates as $key => $data) {
self::$_furlTemplates[$key] = $data;
}
}
/* Loop over the applications and build */
foreach ($apps as $path => $app_dir) {
$appSphinxTemplate = '';
if (file_exists(IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php')) {
unset($_SEOTEMPLATES);
require IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php';
if (is_array($_SEOTEMPLATES)) {
foreach ($_SEOTEMPLATES as $key => $data) {
self::$_furlTemplates[$key] = $data;
}
}
}
}
/* Return for anyone else */
return self::$_furlTemplates;
}
示例3: rebuildCache
/**
* Rebuild a cache
*
* @access public
* @param string Cache key
* @param string Application
* @return @e void
*/
public static function rebuildCache($key, $app = '')
{
/* INIT */
$app = IPSText::alphanumericalClean($app);
$_caches = array();
if ($app) {
if ($app == 'global') {
$_caches = ipsRegistry::_fetchCoreVariables('cache');
} else {
/* isset there is needed to prevent issues on applications installation */
if (isset(ipsRegistry::$applications[$app]) && !IPSLib::appIsInstalled($app)) {
return;
}
$_caches = ipsRegistry::_fetchAppCoreVariables($app, 'cache');
}
} else {
/* Get all caches from all apps */
$_caches = ipsRegistry::_fetchCoreVariables('cache');
foreach (ipsRegistry::$applications as $appDir => $appData) {
$CACHE = ipsRegistry::_fetchAppCoreVariables($appDir, 'cache');
if (is_array($CACHE)) {
$_caches = array_merge($_caches, $CACHE);
}
}
}
/* Rebuild the cache, if found */
if (isset($_caches[$key])) {
$file_to_check = $_caches[$key]['recache_file'];
if ($file_to_check and is_file($file_to_check)) {
$_func = $_caches[$key]['recache_function'];
/* Hackish way to check for action overloader */
if (strpos($file_to_check, '/modules_') !== FALSE) {
$_class = IPSLib::loadActionOverloader($file_to_check, $_caches[$key]['recache_class']);
} elseif ($app) {
$_class = IPSLib::loadLibrary($file_to_check, $_caches[$key]['recache_class'], $app == 'global' ? 'core' : $app);
}
/* Fallback */
if (!$_class) {
$_class = $_caches[$key]['recache_class'];
}
$recache = new $_class(ipsRegistry::instance());
if (method_exists($recache, 'makeRegistryShortcuts')) {
$recache->makeRegistryShortcuts(ipsRegistry::instance());
}
$recache->{$_func}();
}
}
}
示例4: buildFurlTemplates
/**
* Build furl templates from FURL extensions
*
* @return array
*/
public static function buildFurlTemplates()
{
/* INIT */
$apps = array();
$_SEOTEMPLATES = array();
static $_apps = array();
/* Done this already? */
if (self::$_furlTemplates) {
return self::$_furlTemplates;
}
/**
* Get app data and cache - 1 query is better than 1 per app
*/
ipsRegistry::DB()->build(array('select' => 'app_directory, app_public_title, app_enabled', 'from' => 'core_applications'));
ipsRegistry::DB()->execute();
while ($_r = ipsRegistry::DB()->fetch()) {
$_apps[$_r['app_directory']] = $_r;
}
/* Because this is called before the cache is unpacked, we need to expensively grab all app dirs */
foreach (array('applications', 'applications_addon/ips', 'applications_addon/other') as $folder) {
try {
foreach (new DirectoryIterator(IPS_ROOT_PATH . $folder) as $file) {
if (!$file->isDot() and $file->isDir()) {
$_name = $file->getFileName();
if (substr($_name, 0, 1) != '.') {
/* Check if this app is enabled before including the templates.. */
$_check = isset($_apps[$_name]) ? $_apps[$_name] : array('app_public_title' => '', 'app_enabled' => 0);
if ($_check['app_public_title'] && $_check['app_enabled']) {
$apps[$folder . '/' . $_name] = $_name;
}
}
}
}
} catch (Exception $e) {
}
}
/* First, add in core stuffs */
ipsRegistry::_loadCoreVariables();
$templates = ipsRegistry::_fetchCoreVariables('templates');
if (is_array($templates)) {
foreach ($templates as $key => $data) {
self::$_furlTemplates[$key] = $data;
}
}
/* Loop over the applications and build */
foreach ($apps as $path => $app_dir) {
if (is_file(IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php')) {
$_SEOTEMPLATES = array();
require IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php';
/*noLibHook*/
if (is_array($_SEOTEMPLATES) && count($_SEOTEMPLATES)) {
foreach ($_SEOTEMPLATES as $key => $data) {
self::$_furlTemplates[$key] = $data;
}
}
}
}
/* Return for anyone else */
return self::$_furlTemplates;
}
示例5: rebuildCache
/**
* Rebuild a cache
*
* @access public
* @param string Cache key
* @param string Application
* @return void
*/
public static function rebuildCache($key, $app = '')
{
$app = IPSText::alphanumericalClean($app);
if ($app) {
if ($app == 'global') {
$CACHE = ipsRegistry::_fetchCoreVariables('cache');
} else {
$CACHE = ipsRegistry::_fetchAppCoreVariables($app, 'cache');
}
if ($CACHE[$key]) {
$file_to_check = $CACHE[$key]['recache_file'];
if ($file_to_check and is_file($file_to_check) and file_exists($file_to_check)) {
$_class = $CACHE[$key]['recache_class'];
$_func = $CACHE[$key]['recache_function'];
require_once $file_to_check;
if (class_exists($_class)) {
$recache = new $_class(ipsRegistry::instance());
if (method_exists($recache, 'makeRegistryShortcuts')) {
$recache->makeRegistryShortcuts(ipsRegistry::instance());
}
$recache->{$_func}();
}
}
}
} else {
try {
foreach (new DirectoryIterator(IPS_ROOT_PATH . 'applications') as $application) {
if ($application->isDir() and !$application->isDot()) {
$CACHE = ipsRegistry::_fetchAppCoreVariables(IPS_APP_COMPONENT, 'cache');
if (is_array($CACHE)) {
if ($CACHE[$key]) {
$file_to_check = $CACHE[$key]['recache_file'];
if ($file_to_check and file_exists($file_to_check)) {
$_class = $CACHE[$key]['recache_class'];
$_func = $CACHE[$key]['recache_function'];
require_once $file_to_check;
$recache = new $_class(ipsRegistry::instance());
if (method_exists($recache, 'makeRegistryShortcuts')) {
$recache->makeRegistryShortcuts(ipsRegistry::instance());
}
$recache->{$_func}();
}
break;
}
}
}
}
} catch (Exception $e) {
}
}
}