source: tags/0.9beta/plugins/ImageManager/config.inc.php

Last change on this file was 565, checked in by gogo, 13 years ago

Improvements to passing configuration to (php currently) Plugin backends.

This was prompted by #844, and numerous people having trouble with configuring ImageManager?.

A file has been added contrib/php-xinha.php (perhaps should be moved somewhere better),
this file contains functions which make it much easier to trustworthily pass data to
backends from the javascript frontend.

An example is easiest, imagine the following in your xinha setup, step 3...

with (xinha_config.ImageManager?)
{

<?php

require_once('/path/to/xinha/contrib/php-xinha.php');
xinha_pass_to_php_backend
(

array
(

'images_dir' => '/home/your/directory',
'images_url' => '/directory'

)

)

?>

}

that's all you need. It will (should at least) work with non-default session names also.

File size: 9.4 KB
Line 
1<?php
2/**
3 * Image Manager configuration file.
4 * @author $Author: Wei Zhuo $
5 * @version $Id: config.inc.php 27 2004-04-01 08:31:57Z Wei Zhuo $
6 * @package ImageManager
7 *
8 * @todo change all these config values to defines()
9 */
10
11// REVISION HISTORY:
12//
13// 2005-03-20 Yermo Lamers (www.formvista.com):
14//      . unified backend.
15// . created a set of defaults that make sense for bundling with Xinha.
16
17// -------------------------------------------------------------------------
18
19/**
20* Default backend URL
21*
22* URL to use for unified backend.
23*
24* The ?__plugin=ImageManager& is required.
25*/
26
27$IMConfig['backend_url'] = "backend.php?__plugin=ImageManager&";
28
29/**
30* Backend Installation Directory
31*
32* location of backend install; these are used to link to css and js
33* assets because we may have the front end installed in a different
34* directory than the backend. (i.e. nothing assumes that the frontend
35* and the backend are in the same directory)
36*/
37
38$IMConfig['base_dir'] = getcwd();
39$IMConfig['base_url'] = '';
40
41// ------------------------------------------------------------
42
43/**
44* Path to directory containing images.
45*
46* File system path to the directory you want to manage the images
47* for multiple user systems, set it dynamically.
48*
49* NOTE: This directory requires write access by PHP. That is,
50* PHP must be able to create files in this directory.
51* Able to create directories is nice, but not necessary.
52*
53* CHANGE THIS: for out-of-the-box demo purposes we're setting this to ./demo_images
54* which has some graphics in it.
55*/
56
57// $IMConfig['images_dir'] = "/some/path/to/images/directory;
58
59$IMConfig['images_dir'] = "demo_images";
60
61// -------------------------------------------------------------------------
62
63/**
64* URL of directory containing images.
65*
66* The URL to the above path, the web browser needs to be able to see it.
67* It can be protected via .htaccess on apache or directory permissions on IIS,
68* check you web server documentation for futher information on directory protection
69* If this directory needs to be publicly accessiable, remove scripting capabilities
70* for this directory (i.e. disable PHP, Perl, CGI). We only want to store assets
71* in this directory and its subdirectories.
72*
73* CHANGE THIS: You need to change this to match the url where you have Xinha
74* installed. If the images show up blank chances are this is not set correctly.
75*/
76
77// $IMConfig['images_url'] = "/url/to/above";
78
79// try to figure out the URL of the sample images directory. For your installation
80// you will probably want to keep images in another directory.
81
82$IMConfig['images_url'] = str_replace( "backend.php", "", $_SERVER["PHP_SELF"] ) . "demo_images";
83
84// -------------------------------------------------------------------------
85
86/**
87* PHP Safe Mode?
88*
89* Possible values: true, false
90*
91* TRUE - If PHP on the web server is in safe mode, set this to true.
92* SAFE MODE restrictions: directory creation will not be possible,
93* only the GD library can be used, other libraries require
94* Safe Mode to be off.
95*
96* FALSE - Set to false if PHP on the web server is not in safe mode.
97*/
98
99$IMConfig['safe_mode'] = false;
100
101// -------------------------------------------------------------------------
102
103/**
104* Image Library to use.
105*
106* Possible values: 'GD', 'IM', or 'NetPBM'
107*
108* The image manipulation library to use, either GD or ImageMagick or NetPBM.
109* If you have safe mode ON, or don't have the binaries to other packages,
110* your choice is 'GD' only. Other packages require Safe Mode to be off.
111*
112* DEFAULT: GD is probably the most likely to be available.
113*/
114
115$IMConfig['IMAGE_CLASS'] = 'GD';
116
117
118// -------------------------------------------------------------------------
119
120/**
121* NetPBM or IM binary path.
122*
123* After defining which library to use, if it is NetPBM or IM, you need to
124* specify where the binary for the selected library are. And of course
125* your server and PHP must be able to execute them (i.e. safe mode is OFF).
126* GD does not require the following definition.
127*/
128
129$IMConfig['IMAGE_TRANSFORM_LIB_PATH'] ='/usr/bin/';
130
131// For windows, something like
132// C:/"Program Files"/ImageMagick-5.5.7-Q16/
133
134// -------------------------------------------------------------------------
135//                OPTIONAL SETTINGS
136// -------------------------------------------------------------------------
137
138/**
139* Thumbnail prefix
140*
141* The prefix for thumbnail files, something like .thumb will do. The
142* thumbnails files will be named as "prefix_imagefile.ext", that is,
143*  prefix + orginal filename.
144*/
145
146$IMConfig['thumbnail_prefix'] = '.';
147
148// -------------------------------------------------------------------------
149
150/**
151* Thumbnail Directory
152*
153* Thumbnail can also be stored in a directory, this directory
154* will be created by PHP. If PHP is in safe mode, this parameter
155*  is ignored, you can not create directories.
156*
157*  If you do not want to store thumbnails in a directory, set this
158*  to false or empty string '';
159*/
160
161$IMConfig['thumbnail_dir'] = '.thumbs';
162
163// -------------------------------------------------------------------------
164
165/**
166* Resized prefix
167*
168* The prefix for resized files, something like .resized will do.  The
169* resized files will be named <prefix>_<width>x<height>_<original>
170* resized files are created when one changes the dimensions of an image
171* in the image manager selection dialog - the image is scaled when the
172* user clicks the ok button.
173*/
174
175$IMConfig['resized_prefix'] = '.resized';
176
177// -------------------------------------------------------------------------
178
179/**
180* Resized Directory
181*
182* Resized images may also be stored in a directory, except in safe mode.
183*/
184
185$IMConfig['resized_dir'] = '.resized';
186
187// -------------------------------------------------------------------------
188
189/**
190* Allow New Directories
191*
192*
193* Possible values: true, false
194*
195* TRUE -  Allow the user to create new sub-directories in the
196*        $IMConfig['base_dir'].
197*
198* FALSE - No directory creation.
199*
200* NOTE: If $IMConfig['safe_mode'] = true, this parameter
201*     is ignored, you can not create directories
202*
203* DEFAULT: for demo purposes we turn this off.
204*/
205
206$IMConfig['allow_new_dir'] = true;
207
208// -------------------------------------------------------------------------
209
210/**
211* Allow Uploads
212*
213*  Possible values: true, false
214*
215*  TRUE - Allow the user to upload files.
216*
217*  FALSE - No uploading allowed.
218*
219* DEFAULT: for demo purposes we turn this off.
220*/
221
222$IMConfig['allow_upload'] = true;
223
224// -------------------------------------------------------------------------
225
226/**
227* Validate Images
228*
229* Possible values: true, false
230*
231* TRUE - If set to true, uploaded files will be validated based on the
232*        function getImageSize, if we can get the image dimensions then
233*        I guess this should be a valid image. Otherwise the file will be rejected.
234*
235* FALSE - All uploaded files will be processed.
236*
237* NOTE: If uploading is not allowed, this parameter is ignored.
238*/
239
240$IMConfig['validate_images'] = true;
241
242// -------------------------------------------------------------------------
243
244/**
245* Default Thumnail.
246*
247* The default thumbnail if the thumbnails can not be created, either
248* due to error or bad image file.
249*/
250
251$IMConfig['default_thumbnail'] = 'img/default.gif';
252
253// -------------------------------------------------------------------------
254
255/**
256*  Thumbnail dimensions.
257*/
258
259$IMConfig['thumbnail_width'] = 96;
260$IMConfig['thumbnail_height'] = 96;
261
262// -------------------------------------------------------------------------
263
264/**
265* Editor Temporary File Prefix.
266*
267* Image Editor temporary filename prefix.
268*/
269
270$IMConfig['tmp_prefix'] = '.editor_';
271
272
273$IMConfig['ViewMode'] = 'thumbs';
274
275
276
277
278////////////////////////////////////////////////////////////////////////////////
279//       ================== END OF CONFIGURATION =======================      //
280////////////////////////////////////////////////////////////////////////////////
281
282
283// Standard PHP Backend Data Passing
284//  if data was passed using xinha_pass_to_php_backend() we merge the items
285//  provided into the Config
286require_once(realpath(dirname(__FILE__) . '/../../contrib/php-xinha.php'));
287if($passed_data = xinha_read_passed_data())
288{
289  $IMConfig = array_merge($IMConfig, $passed_data);
290  $IMConfig['backend_url'] .= xinha_passed_data_querystring() . '&';
291}
292// Deprecated config passing, don't use this way any more!
293elseif(isset($_REQUEST['backend_config']))
294{
295  if(get_magic_quotes_gpc()) {
296    $_REQUEST['backend_config'] = stripslashes($_REQUEST['backend_config']);
297  }
298 
299  // Config specified from front end, check that it's valid
300  session_start();
301  $secret = $_SESSION[$_REQUEST['backend_config_secret_key_location']];
302
303  if($_REQUEST['backend_config_hash'] !== sha1($_REQUEST['backend_config'] . $secret))
304  {
305    die("Backend security error.");
306  }
307
308  $to_merge = unserialize($_REQUEST['backend_config']);
309  if(!is_array($to_merge))
310  {
311    die("Backend config syntax error.");
312  }
313
314  $IMConfig = array_merge($IMConfig, $to_merge);
315  $IMConfig['backend_url'] .= "backend_config=" . rawurlencode($_REQUEST['backend_config']) . '&';
316  $IMConfig['backend_url'] .= "backend_config_hash=" . rawurlencode($_REQUEST['backend_config_hash']) . '&';
317  $IMConfig['backend_url'] .= "backend_config_secret_key_location=" . rawurlencode($_REQUEST['backend_config_secret_key_location']) . '&';
318
319}
320
321define('IMAGE_CLASS', $IMConfig['IMAGE_CLASS']);
322define('IMAGE_TRANSFORM_LIB_PATH', $IMConfig['IMAGE_TRANSFORM_LIB_PATH']);
323define( "IM_CONFIG_LOADED", "yes" );
324
325// bring in the debugging library
326
327include_once( "ddt.php" );
328
329// uncomment to send debug messages to a local file
330// _setDebugLog( "/tmp/debug_log.txt" );
331
332// turn debugging on everywhere.
333// _ddtOn();
334
335// END
336
337?>
Note: See TracBrowser for help on using the repository browser.