incanus / drupal-dav forked from bendiken/drupal-dav

Drupal module that provides connectivity for the WebDAV protocol.

This URL has Read+Write access

drupal-dav / dav.admin.inc
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 1 <?php
2 // $Id$
3
4 /**
5 * @file
6 * DAV API admin page callbacks.
7 */
8
9 //////////////////////////////////////////////////////////////////////////////
10 // DAV API settings form
11
12 function dav_admin_settings() {
13 $form = array();
14
15 // DAV server settings
16 $form['server'] = array('#type' => 'fieldset', '#title' => t('DAV server settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
17 $form['server']['dav_server'] = array(
18 '#type' => 'radios',
19 '#title' => t('DAV server'),
20 '#default_value' => (int)DAV_SERVER,
21 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
2610b3c0 » incanus 2008-07-21 merged development from SVN... 22 '#description' => t('Whether to enable the DAV server functionality provided by this module. Note that this requires the <a href="!url" target="_blank">PEAR HTTP_WebDAV_Server</a> library to be available.', array('!url' => DAV_PEAR_SERVER)),
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 23 );
24 $form['server']['dav_root_url'] = array(
25 '#type' => 'textfield',
26 '#title' => t('DAV URL'),
fe4cd193 » bendiken 2008-10-11 Minor cleanup for stricter ... 27 '#default_value' => url(DAV_ROOT .'/', array('absolute' => TRUE)),
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 28 '#size' => 60,
29 '#maxlength' => 255,
30 '#description' => t('This is the absolute URL to the DAV root collection provided by this module, if the DAV server functionality has been enabled above. Use this path in your DAV client program to access the DAV resources exported by this Drupal site. Note that, at present, this path can\'t be aliased or changed.'),
31 '#attributes' => array('disabled' => 'disabled'),
32 );
33 $form['server']['dav_dot_files'] = array(
34 '#type' => 'radios',
35 '#title' => t('Allow hidden file/collection creation'),
36 '#default_value' => (int)DAV_DOT_FILES,
37 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
38 '#description' => t('Whether to allow files and collections with a name beginning with a dot character (.) to be created. Files named this way are interpreted as hidden files on Unix systems. While this is enabled by default to provide maximum compatibility with various operating systems and clients, you should consider disabling it if you are sure that no useful information will be stored in hidden files. See also the Windows and Mac OS X compatibility sections, below.'),
39 );
40 $form['server']['dav_trace'] = array(
41 '#type' => 'radios',
42 '#title' => t('Enable DAV method tracing'),
43 '#default_value' => (int)DAV_TRACE,
44 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
45 '#description' => t('Whether to log debug/troubleshooting information on all DAV HTTP methods. Note that enabling this will have a negative impact on performance and you should never use this except for troubleshooting purposes. <em>Requires trace.module.</em>'),
46 );
55a66851 » incanus 2008-11-07 added MIME type icons to we... 47 $form['server']['dav_icons'] = array(
48 '#type' => 'radios',
49 '#title' => t('Enable web listing icons'),
50 '#default_value' => module_exists('file') ? (int)DAV_ICONS : FALSE,
51 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
52 '#description' => t('Whether to show MIME type icons next to files and directories when browsing the DAV listing in a web browser (i.e., using HTTP GET). <em>Requires FileFramework.</em>'),
53 '#attributes' => !module_exists('file') ? array('disabled' => 'disabled') : array(),
54 );
1b1f0bc7 » incanus 2008-11-07 added custom setting for ch... 55 $form['server']['dav_encode'] = array(
56 '#type' => 'textfield',
57 '#title' => t('Characters to encode'),
58 '#default_value' => DAV_ENCODE,
59 '#size' => 60,
60 '#maxlength' => 255,
61 '#description' => t('Characters to encode in path and file names per !rfc. Unless you know what you are doing and grok what this is all about, it is recommended that you leave this setting unchanged.', array('!rfc' => l('RFC 1738', 'http://www.ietf.org/rfc/rfc1738.txt'))),
62 );
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 63
64 if (DAV_SERVER && !_dav_load_server()) {
2610b3c0 » incanus 2008-07-21 merged development from SVN... 65 drupal_set_message(t('Warning: unable to load the <a href="!url" target="_blank">PEAR HTTP_WebDAV_Server</a> library.', array('!url' => DAV_PEAR_SERVER)), 'error');
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 66 }
67
68 // DAV server modules
69 $form['modules'] = array('#type' => 'fieldset', '#title' => t('DAV server modules'), '#collapsible' => TRUE, '#collapsed' => TRUE);
062ee420 » bendiken 2008-10-11 Added a new setting for sel... 70 if (count(dav_get_modules()) > 0) {
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 71 $header = array(t('Name'), t('Description'));
062ee420 » bendiken 2008-10-11 Added a new setting for sel... 72 $rows = array();
73 foreach (dav_get_modules('info') as $name => $info) {
74 $rows[] = array($info->name, $info->description);
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 75 }
76 $modules = theme('table', $header, $rows);
77 }
78 else {
062ee420 » bendiken 2008-10-11 Added a new setting for sel... 79 $modules = '<div>'. t('No DAV modules currently installed; DAV server disabled.') .'</div>';
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 80 }
81 $form['modules']['dav_modules'] = array('#type' => 'markup', '#value' => $modules);
062ee420 » bendiken 2008-10-11 Added a new setting for sel... 82 if (count(dav_get_modules()) > 0) {
83 $form['modules']['dav_root_module'] = array(
84 '#type' => 'select',
85 '#title' => t('Root collection owner'),
df9ff9df » incanus 2008-11-07 fix issue with DAV root mod... 86 '#default_value' => DAV_ROOT_MODULE,
062ee420 » bendiken 2008-10-11 Added a new setting for sel... 87 '#options' => dav_get_modules('titles'),
0dbf2a95 » bendiken 2008-10-11 Implemented special case ha... 88 '#description' => t('Select which module should have ownership of the file/collection creation process in the DAV root collection. While all DAV server modules may publish items in the root collection, to prevent ambiguity only one module can respond to top-level PUT/MKCOL requests.'),
062ee420 » bendiken 2008-10-11 Added a new setting for sel... 89 );
90 }
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 91
92 // DAV client settings
93 $form['client'] = array('#type' => 'fieldset', '#title' => t('DAV client settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
94 $form['client']['dav_client'] = array(
95 '#type' => 'radios',
96 '#title' => t('DAV client'),
97 '#default_value' => (int)DAV_CLIENT,
98 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
2610b3c0 » incanus 2008-07-21 merged development from SVN... 99 '#description' => t('Whether to attempt loading the <a href="!url" target="_blank">PEAR HTTP_WebDAV_Client</a> library on Drupal initialization in order to provide <tt>webdav://</tt> and <tt>webdavs://</tt> stream wrappers for PHP, allowing the use of remote DAV resources using the regular file system functions in PHP. Disabled by default, enable it if you need it.', array('!url' => DAV_PEAR_CLIENT)),
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 100 );
101
102 if (DAV_CLIENT && !_dav_load_client()) {
2610b3c0 » incanus 2008-07-21 merged development from SVN... 103 drupal_set_message(t('Warning: unable to load the <a href="!url" target="_blank">PEAR HTTP_WebDAV_Client</a> library.', array('!url' => DAV_PEAR_CLIENT)), 'error');
4f91fa8f » bendiken 2008-05-08 Imported 6.x branch from th... 104 }
105
106 // Windows compatibility
107 $form['windows'] = array('#type' => 'fieldset', '#title' => t('Windows compatibility'), '#collapsible' => TRUE, '#collapsed' => TRUE);
108 $form['windows']['dav_windows_server_discovery'] = array(
109 '#type' => 'radios',
110 '#title' => t('Expect broken server discovery'),
111 '#default_value' => (int)DAV_WINDOWS_SERVER_DISCOVERY,
112 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
113 '#description' => t('This is a workaround for the Windows XP and Windows Vista WebDAV redirector bug <a target="_blank" href="http://support.microsoft.com/?kbid=831805">KB831805</a>. A <a target="_blank" href="http://www.greenbytes.de/tech/webdav/webfolder-client-list.html#issue-options-req-against-root">similar bug</a> also exists in most versions of the Microsoft Web Folder Client. Leave this enabled if you need to serve any Windows clients.'),
114 );
115 $form['windows']['dav_windows_basic_auth'] = array(
116 '#type' => 'radios',
117 '#title' => t('Expect invalid FQDN user names'),
118 '#default_value' => (int)DAV_WINDOWS_BASIC_AUTH,
119 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
120 '#description' => t('This is a workaround for the Windows XP WebDAV redirector bug <a target="_blank" href="http://support.microsoft.com/?kbid=315621">KB315621</a>. Leave this enabled if you need to serve Windows XP clients.'),
121 );
122 $form['windows']['dav_windows_no_thumbs_db'] = array(
123 '#type' => 'radios',
124 '#title' => t('Prevent thumbnail cache (Thumbs.db) creation'),
125 '#default_value' => (int)DAV_WINDOWS_NO_THUMBS_DB,
126 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
127 '#description' => t('Disallows the creation of spurious <a target="_blank" href="http://en.wikipedia.org/wiki/Thumbs.db">Thumbs.db</a> files by Windows clients. Leaving this enabled is highly recommended, but a yet better option in some cases may be to <a target="_blank" href="http://en.wikipedia.org/wiki/Thumbs.db#External_links">disable Thumbs.db creation</a> on the client side altogether.'),
128 );
129
130 // Mac OS X compatibility
131 $form['macosx'] = array('#type' => 'fieldset', '#title' => t('Mac OS X compatibility'), '#collapsible' => TRUE, '#collapsed' => TRUE);
132 $form['macosx']['dav_macosx_no_ds_store'] = array(
133 '#type' => 'radios',
134 '#title' => t('Prevent .DS_Store file creation'),
135 '#default_value' => (int)DAV_MACOSX_NO_DS_STORE,
136 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
137 '#description' => t('Disallows the creation of spurious <a target="_blank" href="http://en.wikipedia.org/wiki/.DS_Store">.DS_Store</a> files by Mac OS X clients. Leaving this enabled is highly recommended, but a yet better option is to <a target="_blank" href="http://docs.info.apple.com/article.html?artnum=301711">disable .DS_Store creation over network connections</a> on the client side altogether.'),
138 );
139 $form['macosx']['dav_macosx_no_forks'] = array(
140 '#type' => 'radios',
141 '#title' => t('Prevent resource fork creation'),
142 '#default_value' => (int)DAV_MACOSX_NO_FORKS,
143 '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
144 '#description' => t('Disallows the creation of resouce forks, also known as dot-underscore files because their names start with "._". Unless you know what you are doing and grok what this is all about, it is recommended that you leave this setting enabled.'),
145 );
146
147 return system_settings_form($form);
148 }