docs: public String buildSelectTemplates(String attributes) {
  
          List options = new ArrayList();
          List values = new ArrayList();
          TreeMap templates = null;
          int selectedIndex = -1;
          try {
              // get all available templates
              templates = CmsNewResourceXmlPage.getTemplates(getCms(), null);
          } catch (CmsException e) {
              // can usually be ignored
              if (LOG.isInfoEnabled()) {
                  LOG.info(e);
              }
          }
          if (templates == null) {
              // no templates found, return empty String
              return "";
          } else {
              // templates found, create option and value lists
              CmsMessages messages = Messages.get().getBundle(getLocale());
              options.add(messages.key(Messages.GUI_PLEASE_SELECT_0));
              values.add("");
              options.add(messages.key(Messages.GUI_BUTTON_ALL_0));
              values.add(ALL);
              if (ALL.equals(getParamTemplate())) {
                  selectedIndex = 1;
              }
              Iterator i = templates.entrySet().iterator();
              int counter = 2;
              while (i.hasNext()) {
                  Map.Entry entry = (Map.Entry)i.next();
                  String key = (String)entry.getKey();
                  String path = (String)entry.getValue();
                  if (path.equals(getParamTemplate())) {
                      selectedIndex = counter;
                  }
                  options.add(key);
                  values.add(path);
                  counter++;
              }
          }
          return buildSelect(attributes, options, values, selectedIndex, false);
      }