search_api_solr.admin.inc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * @file
  4. * Admin page callbacks for the Search API Solr module.
  5. */
  6. /**
  7. * Form constructor for the Solr files overview.
  8. *
  9. * @param SearchApiServer $server
  10. * The server for which files should be displayed.
  11. *
  12. * @ingroup forms
  13. */
  14. function search_api_solr_solr_config_form($form, &$form_state, SearchApiServer $server) {
  15. $form['title']['#markup'] = '<h2>' . t('List of configuration files found:') . '</h2>';
  16. try {
  17. // Retrieve the list of available files.
  18. $files_list = search_api_solr_server_get_files($server);
  19. if (empty($files_list)) {
  20. $form['info']['#markup'] = t('No files found.');
  21. return $form;
  22. }
  23. $form['files'] = array(
  24. '#type' => 'vertical_tabs',
  25. );
  26. // Generate a fieldset for each file.
  27. foreach ($files_list as $file_name => $file_info) {
  28. $file_date = format_date(strtotime($file_info['modified']));
  29. $escaped_file_name = check_plain($file_name);
  30. $form['files'][$file_name] = array(
  31. '#title' => $escaped_file_name,
  32. '#type' => 'fieldset',
  33. );
  34. $data = '<h3>' . $escaped_file_name . '</h3>';
  35. $data .= '<p><em>' . t('Last modified: @time.', array('@time' => $file_date)) . '</em></p>';
  36. if ($file_info['size'] > 0) {
  37. $file_data = $server->getFile($file_name);
  38. $data .= '<pre><code>' . check_plain($file_data->data) . '</code></pre>';
  39. }
  40. else {
  41. $data .= '<p><em>' . t('The file is empty.') . '</em></p>';
  42. }
  43. $form['files'][$file_name]['data']['#markup'] = $data;
  44. }
  45. }
  46. catch (SearchApiException $e) {
  47. watchdog_exception('search_api_solr', $e, '%type while retrieving config files of Solr server @server: !message in %function (line %line of %file).', array('@server' => $server->name));
  48. $form['info']['#markup'] = t('An error occured while trying to load the list of files.');
  49. }
  50. return $form;
  51. }