1.20.x system.module | system_init() |
Implements hook_init().
File
- modules/
system/ system.module, line 2345 - Configuration system that lets administrators modify the workings of the site.
Code
function system_init() {
$path = backdrop_get_path('module', 'system');
// Add the CSS for this module. These aren't in system.info, because they
// need to be in the CSS_SYSTEM group rather than the CSS_DEFAULT group.
backdrop_add_css('core/misc/normalize.css', array('group' => CSS_SYSTEM, 'every_page' => TRUE, 'weight' => -1000));
backdrop_add_css($path . '/css/system.css', array('group' => CSS_SYSTEM, 'every_page' => TRUE));
if (path_is_admin(current_path())) {
backdrop_add_css($path . '/css/system.admin.css', array('group' => CSS_SYSTEM));
}
backdrop_add_css($path . '/css/system.theme.css', array('group' => CSS_SYSTEM, 'every_page' => TRUE));
backdrop_add_css($path . '/css/messages.theme.css', array('group' => CSS_SYSTEM, 'every_page' => TRUE));
// Ignore slave database servers for this request.
//
// In Backdrop's distributed database structure, new data is written to the
// master and then propagated to the slave servers. This means there is a
// lag between when data is written to the master and when it is available on
// the slave. At these times, we will want to avoid using a slave server
// temporarily. For example, if a user posts a new node then we want to
// disable the slave server for that user temporarily to allow the slave
// server to catch up. That way, that user will see their changes immediately
// while for other users we still get the benefits of having a slave server,
// just with slightly stale data. Code that wants to disable the slave
// server should use the db_ignore_slave() function to set
// $_SESSION['ignore_slave_server'] to the timestamp after which the slave
// can be re-enabled.
if (isset($_SESSION['ignore_slave_server'])) {
if ($_SESSION['ignore_slave_server'] >= REQUEST_TIME) {
Database::ignoreTarget('default', 'slave');
}
else {
unset($_SESSION['ignore_slave_server']);
}
}
// Add CSS/JS files from module .info files.
system_add_module_assets();
// Sanitizes file names during upload.
if (!empty($_FILES['files']) && config_get('system.core', 'file_transliterate_uploads')) {
// Figure out language, which is available in $_POST['langcode'] for node
// forms.
$langcode = NULL;
if (!empty($_POST['langcode'])) {
$languages = language_list();
if (isset($languages[$_POST['langcode']])) {
$langcode = $_POST['langcode'];
}
}
foreach ($_FILES['files']['name'] as $field => $filename) {
include_once BACKDROP_ROOT . '/core/includes/transliteration.inc';
// Keep a copy of the unaltered file name.
$_FILES['files']['orig_name'][$field] = $filename;
$_FILES['files']['name'][$field] = transliteration_clean_filename($filename, $langcode);
}
}
}