You are here

function cpn_save_file in Code per Node 7

Same name and namespace in other branches
  1. 6 cpn.module \cpn_save_file()

Saves CSS & JavaScript in the file system (but only if not empty).

4 calls to cpn_save_file()
cpn_block_submit in ./cpn.module
Block submit callback.
cpn_node_insert in ./cpn.module
Implements hook_node_insert().
cpn_node_type_submit in ./cpn.module
Node type submit callback.
cpn_settings_submit in ./cpn.admin.inc
Settings form - submit callback.

File

./cpn.module, line 749
Primary hook implementations.

Code

function cpn_save_file($data, $filename) {
  if (!drupal_strlen(trim($data))) {
    return FALSE;
  }
  $path = variable_get('cpn_path', 'public://cpn');
  $full_path = $path . '/' . $filename;
  file_prepare_directory($path, FILE_CREATE_DIRECTORY);
  $file_saved = file_unmanaged_save_data($data, $full_path, FILE_EXISTS_REPLACE);

  // Integration with some other modules.
  if ($file_saved) {

    // AdvAgg - reload all the things.
    if (module_exists('advagg')) {
      module_load_include('inc', 'advagg', 'advagg.cache');
      advagg_push_new_changes();
    }

    // Varnish - flush this one file.
    if (module_exists('varnish')) {
      varnish_expire_cache(array(
        $full_path,
      ));
    }
  }
  return $file_saved;
}