You are here

function node_gallery_api_relationship_type_list in Node Gallery 7

Displays a list of all defined Gallery-to-Image relationships.

Return value

string A themed table suitable for output

1 string reference to 'node_gallery_api_relationship_type_list'
node_gallery_api_menu in ./node_gallery_api.module
Implements hook_menu().

File

./node_gallery_api.admin.inc, line 14
Node Gallery API admin interface.

Code

function node_gallery_api_relationship_type_list() {
  $relationship_types = node_gallery_api_get_all_relationship_types();
  if (!empty($relationship_types)) {
    $headers = array(
      t('Relationship name'),
      t('Gallery types'),
      t('Item types'),
      t('File field'),
      t('Actions'),
    );
    foreach ($relationship_types as $id => $relationship_type) {
      $gallery_links = array();
      $item_links = array();
      foreach ($relationship_type->gallery_types as $gallery_type) {
        $gallery_type_url_str = str_replace('_', '-', $gallery_type);
        $gallery_links[] = l($gallery_type, 'admin/structure/types/manage/' . $gallery_type_url_str);
      }
      foreach ($relationship_type->item_types as $item_type) {
        $item_type_url_str = str_replace('_', '-', $item_type);
        $item_links[] = l($item_type, 'admin/structure/types/manage/' . $item_type_url_str);
      }
      if ($relationship_type->filefield_name == 'node_gallery_none') {
        $field_label = t('None');
      }
      else {
        $field_label = l($relationship_type->filefield_name, 'admin/structure/types/manage/' . $item_type_url_str . '/fields/' . $relationship_type->filefield_name);
      }
      $rows[] = array(
        array(
          'data' => check_plain($relationship_type->label),
        ),
        theme('item_list', array(
          'items' => $gallery_links,
        )),
        theme('item_list', array(
          'items' => $item_links,
        )),
        $field_label,
        theme('links', array(
          'links' => node_gallery_api_relationship_operations($relationship_type->id),
        )),
      );
    }
    return theme('table', array(
      'header' => $headers,
      'rows' => $rows,
      'attributes' => array(
        'class' => array(
          'node-gallery-config-list',
        ),
      ),
    ));
  }
  else {
    return t("There are no gallery relationships defined.");
  }
}