function _advagg_admin_settings_information in Advanced CSS/JS Aggregation 7
1 call to _advagg_admin_settings_information()
- advagg_advagg_admin_form in includes/admin.inc
- Implements hook_advagg_admin_form().
@see: advagg_form_system_performance_settings_alter().
File
- includes/admin.inc, line 246
- Admin page callbacks for the advanced CSS/JS aggregation module.
Code
function _advagg_admin_settings_information(&$form, &$form_state) {
$form['hook_process_html'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('$theme_registry[html][process functions]'),
'#description' => t('Ensure that %advagg_process_html is at the bottom of the array of functions. It is vital for this function to be the last in the list as it will be altering and completely replacing the CSS and JavaScript loaded on each page request. If other functions appear after it, you may experience undesirable functionality or this module may not work at all.', array(
'%advagg_process_html' => 'advagg_process_html',
)),
);
drupal_theme_initialize();
$theme_registry = theme_get_registry();
if (module_exists('devel')) {
$form['hook_process_html']['value'] = array(
'#markup' => kprint_r($theme_registry['html']['process functions'], TRUE),
);
}
else {
$form['hook_process_html']['value'] = array(
'#type' => 'textarea',
'#default_value' => implode("\n", $hooks['html']['process functions']),
'#rows' => count($theme_registry['html']['process functions']) + 1,
);
}
$types = db_query("SELECT DISTINCT(filetype) FROM {advagg_files}");
while ($type = $types
->fetchField()) {
$form[$type] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#title' => t('@type files', array(
'@type' => drupal_strtoupper($type),
)),
);
$results = db_query("SELECT * FROM {advagg_files} WHERE filetype = :filetype", array(
':filetype' => $type,
));
while ($row = db_fetch_array($results)) {
$data = advagg_get_file_data($row['filename_md5']);
if (!empty($data)) {
list($data, $rows) = advagg_form_print_r($data);
$form[$type][$row['filename_md5']] = array(
'#type' => 'textarea',
'#title' => check_plain($row['filename']),
'#default_value' => $data,
'#rows' => $rows - 1,
'#description' => t('File has changed %counter times', array(
'%counter' => $row['counter'],
)),
);
}
else {
$form[$type][$row['filename_md5']] = array(
'#markup' => '<div>' . format_plural($row['counter'], 'changed 1 time - %file<br />', 'changed %counter times - %file<br /></div>', array(
'%counter' => $row['counter'],
'%file' => $row['filename'],
)),
);
}
}
}
$hooks = array(
'advagg_admin_form' => array(),
'advagg_css_alter' => array(),
'advagg_css_inline_alter' => array(),
'advagg_css_pre_alter' => array(),
'advagg_css_extra_alter' => array(),
'advagg_js_alter' => array(),
'advagg_js_inline_alter' => array(),
'advagg_js_pre_alter' => array(),
'advagg_js_extra_alter' => array(),
'advagg_js_header_footer_alter' => array(),
'advagg_filenames_alter' => array(),
'advagg_files_table' => array(),
'advagg_master_reset' => array(),
'advagg_disable_processor' => array(),
'advagg_disable_page_cache' => array(),
'advagg_bundler_analysis_alter' => array(),
);
foreach ($hooks as $hook => $values) {
$hooks[$hook] = module_implements($hook);
}
$form['hooks_implemented'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#title' => t('Modules implementing advagg hooks'),
);
foreach ($hooks as $hook => $values) {
if (empty($values)) {
$form['hooks_implemented'][$hook] = array(
'#markup' => '<div><strong>' . check_plain($hook) . ':</strong><br /> ' . t('None') . '</div>',
);
}
else {
$form['hooks_implemented'][$hook] = array(
'#markup' => '<div><strong>' . check_plain($hook) . ':</strong><br /> ' . filter_xss(implode('<br /> ', $values)) . '</div>',
);
}
}
$results = db_query("SELECT * FROM {advagg_files} WHERE checksum = :checksum ORDER BY filetype ASC", array(
':checksum' => '-1',
));
while ($row = $results
->fetchAssoc()) {
$form['missing'][$row['filename_md5']] = array(
'#type' => 'markup',
'#value' => '<div>' . check_plain($row['filename']) . '<br /></div>',
);
}
if (!empty($form['missing'])) {
$form['missing'] += array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Missing files'),
);
}
$form['async'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#title' => t('Asynchronous debug info'),
);
list($css_path, $js_path) = advagg_get_root_files_dir();
$filepath = $css_path . '/css_missing' . mt_rand() . REQUEST_TIME . '_0.css';
$url = _advagg_build_url($filepath);
$headers = array(
'Host' => $_SERVER['HTTP_HOST'],
'Connection' => 'close',
);
timer_start(__FUNCTION__ . 'local');
$data_local = drupal_http_request($url, array(
'headers' => $headers,
));
$data_local->timer = timer_stop(__FUNCTION__ . 'local');
if (module_exists('devel')) {
$form['async']['cdn'] = array(
'#markup' => kprint_r($data_local, TRUE, t('Local Asynchronous Mode') . ' (' . check_plain($url) . ')'),
);
}
else {
list($data, $rows) = advagg_form_print_r($data_local);
$form['async']['normal'] = array(
'#type' => 'textarea',
'#title' => t('Local Asynchronous Mode') . ' (' . check_plain($url) . ')',
'#default_value' => $data,
'#rows' => min($rows + 1, 50),
);
}
if (module_exists('cdn')) {
global $conf;
$path_blacklist = variable_get(CDN_EXCEPTION_DRUPAL_PATH_BLACKLIST_VARIABLE, CDN_EXCEPTION_DRUPAL_PATH_BLACKLIST_DEFAULT);
$conf[CDN_EXCEPTION_DRUPAL_PATH_BLACKLIST_VARIABLE] = '';
$url_cdn = advagg_build_uri($filepath);
$conf[CDN_EXCEPTION_DRUPAL_PATH_BLACKLIST_VARIABLE] = $path_blacklist;
timer_start(__FUNCTION__ . 'cdn');
$data_cdn = drupal_http_request($url_cdn);
$data_cdn->timer = timer_stop(__FUNCTION__ . 'cdn');
if (module_exists('devel')) {
$form['async']['cdn'] = array(
'#markup' => kprint_r($data_cdn, TRUE, t('CDN Asynchronous Mode') . ' (' . check_plain($url) . ')'),
);
}
else {
list($data, $rows) = advagg_form_print_r($data_cdn);
$form['async']['cdn'] = array(
'#type' => 'textarea',
'#title' => t('CDN Asynchronous Mode') . ' (' . check_plain($url) . ')',
'#default_value' => $data,
'#rows' => min($rows + 1, 50),
);
}
}
}