You are here

function _css_injector_load_rule in CSS Injector 7

Same name and namespace in other branches
  1. 6 css_injector.module \_css_injector_load_rule()

Helper function to load all CSS injection rules.

7 calls to _css_injector_load_rule()
css_injector_admin_form in ./css_injector.admin.inc
Form builder function for CSS Injector's main admin page.
css_injector_css_alter in ./css_injector.module
Implements hook_css_alter(). Since we're trying to give the administrator complete control, we'll move CSS that this module has added to a high weight, higher even than the theme's CSS files. Currently the weight is 200 + the crid,…
css_injector_delete_confirm in ./css_injector.admin.inc
Menu callback -- ask for confirmation of rule deletion.
css_injector_edit in ./css_injector.admin.inc
Form builder function for the CSS rule edit form.
css_injector_edit_save in ./css_injector.admin.inc
Submit button callback for the CSS rule edit form.

... See full list

File

./css_injector.module, line 217
Allows administrators to inject CSS into the page output based on configurable rules. Useful for adding simple CSS tweaks without modifying a site's official theme.

Code

function _css_injector_load_rule($crid = NULL, $reset = FALSE) {
  static $rules;

  // TODO: Change to drupal_static_fast pattern.
  if (!isset($rules) || $reset) {
    if (!$reset && ($cache = cache_get('css_injector:rules')) && is_array($cache->data)) {
      $rules = $cache->data;
    }
    else {
      $rules = array();
      $results = db_query("SELECT * FROM {css_injector_rule}", array(), array(
        'fetch' => PDO::FETCH_ASSOC,
      ))
        ->fetchAllAssoc('crid');
      foreach ($results as $id => $rule) {
        $rules[$id] = $rule;
      }
      cache_set('css_injector:rules', $rules);
    }
  }
  if (is_numeric($crid)) {
    return $rules[$crid];
  }
  else {
    return $rules;
  }
}