You are here

function filetree_tokens in File Tree 7.2

Same name and namespace in other branches
  1. 7 filetree.module \filetree_tokens()

Implements hook_tokens().

File

./filetree.module, line 34

Code

function filetree_tokens($type, $tokens, array $data = array(), array $options = array()) {
  $replacements = array();
  if ($type == 'filetree') {
    foreach ($tokens as $name => $original) {
      switch ($name) {

        // The filename and basename are switched on purpose.
        case 'filename':
          $replacements[$original] = pathinfo($data['filepath'], PATHINFO_BASENAME);
          break;
        case 'basename':
          $replacements[$original] = pathinfo($data['filepath'], PATHINFO_FILENAME);
          break;
        case 'extension':
          $replacements[$original] = pathinfo($data['filepath'], PATHINFO_EXTENSION);
          break;
        case 'size':
          $replacements[$original] = format_size(filesize($data['filepath']));
          break;
        case 'created':
          $replacements[$original] = format_date(filectime($data['filepath']), 'filetree');
          break;
        case 'modified':
          $replacements[$original] = format_date(filemtime($data['filepath']), 'filetree');
          break;
        case 'link':
          if (isset($data['filename'])) {
            $name = isset($data['descriptions'][$data['filename']]) ? $data['descriptions'][$data['filename']] : token_replace($data['params']['filename'], array(
              'filepath' => $data['filepath'],
            ));
            $url = $data['params']['absolute'] ? file_create_url($data['filepath']) : substr(file_create_url($data['filepath']), strlen($GLOBALS['base_url'] . '/'));
            $replacements[$original] = l($name, urldecode($url));
          }
          break;
      }
    }
  }
  return $replacements;
}