You are here

function theme_filetree in File Tree 6.2

Same name and namespace in other branches
  1. 6 filetree.module \theme_filetree()
  2. 7.2 filetree.module \theme_filetree()
  3. 7 filetree.module \theme_filetree()

Renders filetree.

1 theme call to theme_filetree()
_filetree_process in ./filetree.module
Process function for the filter.

File

./filetree.module, line 283

Code

function theme_filetree($files, $params) {
  $output = '';

  // Render controls (but only if multiple folders is enabled, and only if
  // there is at least one folder to expand/collapse).
  if ($params['multi'] and $params['controls']) {
    $has_folder = FALSE;
    foreach ($files as $file) {
      if (isset($file['children'])) {
        $has_folder = TRUE;
        break;
      }
    }
    if ($has_folder) {
      $controls = array(
        '<a href="#" class="expand">' . t('expand all') . '</a>',
        '<a href="#" class="collapse">' . t('collapse all') . '</a>',
      );
      $output .= theme('item_list', $controls, NULL, 'ul', array(
        'class' => 'controls',
      ));
    }
  }

  // Render files.
  $output .= theme('item_list', $files, NULL, 'ul', array(
    'class' => 'files',
  ));

  // Generate classes and unique ID for wrapper div.
  $id = form_clean_id(uniqid('filetree-'));
  $classes = array(
    'filetree',
  );
  if ($params['multi']) {
    $classes[] = 'multi';
  }

  // If using animation, add class.
  if ($params['animation']) {
    $classes[] = 'filetree-animation';
  }
  return '<div id="' . $id . '" class="' . implode(' ', $classes) . '">' . $output . '</div>';
}