ajax_image_editor.php
9.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<?php
/**
* Ajax image editor platform
* @author Logan Cai (cailongqun [at] yahoo [dot] com [dot] cn)
* @link www.phpletter.com
* @since 22/May/2007
*
*/
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php");
$session->gc();
$_GET['path'] = empty($_GET['path'])?CONFIG_SYS_ROOT_PATH . "ajax_image_editor_demo.jpg":$_GET['path'];
if(!empty($_GET['path']) && file_exists($_GET['path']) && is_file($_GET['path']) && isUnderRoot($_GET['path']))
{
$path = $_GET['path'];
}else
{
die(IMG_GEN_IMG_NOT_EXISTS);
}
require_once(CLASS_HISTORY);
$history = new History($path, $session);
if(CONFIG_SYS_DEMO_ENABLE)
{
$sessionImageInfo = $history->getLastestRestorable();
$originalSessionImageInfo = $history->getOriginalImage();
if(sizeof($originalSessionImageInfo))
{
$path = backslashToSlash($session->getSessionDir() . $originalSessionImageInfo['info']['name']);
}
}
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "class.image.php");
$image = new Image();
$imageInfo = $image->getImageInfo($path);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="Logan Cai" />
<meta name="website" content="http://www.phpletter.com" />
<script type="text/javascript" src="jscripts/ajaximageeditor_compressed.js"></script>
<!--
<script type="text/javascript" src="jscripts/jquery.js"></script>
<script type="text/javascript" src="jscripts/form.js"></script>
<script type="text/javascript" src="jscripts/select.js"></script>
<script type="text/javascript" src="jscripts/jqModal.js"></script>
<script type="text/javascript" src="jscripts/rotate.js"></script>
<script type="text/javascript" src="jscripts/interface.js"></script>
<script type="text/javascript" src="jscripts/image_editor_general.js"></script>
-->
<script type="text/javascript">
var imageHistory = false;
var currentFolder = '<?php echo removeTrailingSlash(backslashToSlash(dirname($path))); ?>';
var warningLostChanges = '<?php echo IMG_WARNING_LOST_CHANAGES; ?>';
var warningReset = '<?php echo IMG_WARNING_REST; ?>';
var warningResetEmpty = '<?php echo IMG_WARNING_EMPTY_RESET; ?>';
var warningEditorClose = '<?php echo IMG_WARING_WIN_CLOSE; ?>';
var warningUndoImage = '<?php echo IMG_WARNING_UNDO; ?>';
var warningFlipHorizotal = '<?php echo IMG_WARING_FLIP_H; ?>';
var warningFlipVertical = '<?php echo IMG_WARING_FLIP_V; ?>';
var numSessionHistory = <?php echo $history->getNumRestorable(); ?>;
var noChangeMadeBeforeSave = '<?php echo IMG_WARNING_NO_CHANGE_BEFORE_SAVE; ?>';
var warningInvalidNewName = '<?php echo IMG_SAVE_AS_ERR_NAME_INVALID; ?>';
var wordCloseWindow = '<?php echo LBL_ACTION_CLOSE; ?>';
var warningNoFolderSelected = '<?php echo IMG_SAVE_AS_NOT_FOLDER_SELECTED; ?>';
var urlGetFolderList = '<?php echo appendQueryString(CONFIG_URL_GET_FOLDER_LIST, makeQueryString(array('path'))); ?>';
$(document).ready(
function()
{
$('#windowSaveAs').jqm();
$('#image_mode').val('');
$('#angle').val(0);
$(getImageElement()).clone().appendTo("#hiddenImage");
changeMode();
initDisabledButtons(true);
}
);
</script>
<link href="theme/<?php echo CONFIG_THEME_NAME; ?>/css/image_editor_general.css" type="text/css" rel="stylesheet" />
<link href="theme/<?php echo CONFIG_THEME_NAME; ?>/css/jqModal.css" type="text/css" rel="stylesheet" />
<title>Ajax Image Editor</title>
</head>
<body>
<?php
//displayArray($_SESSION);
?>
<div id="controls">
<fieldset id="modes">
<legend>Modes</legend>
<form name="formAction" id="formAction" method="post" action="<?php echo appendQueryString(CONFIG_URL_IMAGE_UNDO, makeQueryString(array('path'))); ?>">
<input type="hidden" name="file_path" id="file_path" value="<?php echo $_GET['path']; ?>" />
<p><label><?php echo IMG_MODE_RESIZE; ?></label> <input type="radio" name="mode" value="resize" class="input" checked="checked" onclick="return changeMode();"/>
<label><?php echo IMG_MODE_CROP; ?></label> <input type="radio" name="mode" value="crop" class="input" onclick="return changeMode();" />
<label><?php echo IMG_MODE_ROTATE; ?></label> <input type="radio" name="mode" value="rotate" class="input" onclick="return changeMode();" />
<label><?php echo IMG_MODE_FLIP; ?></label> <input type="radio" name="mode" value="flip" class="input" onclick="return changeMode();" />
<label><?php echo IMG_CHECKBOX_CONSTRAINT; ?></label> <input type="checkbox" name="constraint" id="constraint" value="1" class="input" onclick="return toggleConstraint();" />
<!-- <label>Watermark:</label> <input type="radio" name="mode" value="watermark" class="input" onclick="return false;" />-->
<button id="actionRotateLeft" class="disabledButton" onclick="return leftRotate();" disabled><?php echo IMG_BTN_ROTATE_LEFT; ?></button>
<button id="actionRotateRight" class="disabledButton" onclick="return rightRotate();" disabled><?php echo IMG_BTN_ROTATE_RIGHT; ?></button>
<button id="actionFlipH" class="disabledButton" onclick="return flipHorizontal();" disabled><?php echo IMG_BTN_FLIP_H; ?></button>
<button id="actionFlipV" class="disabledButton" onclick="return flipVertical();" disabled><?php echo IMG_BTN_FLIP_V; ?></button>
<button id="actionReset" class="button" onclick="return resetEditor();"><?php echo IMG_BTN_RESET; ?></button>
<button id="actionUndo" class="button" onclick="return undoImage();"><?php echo IMG_BTN_UNDO; ?></button>
<button id="actionSave" class="button" onclick="return saveImage();"><?php echo IMG_BTN_SAVE; ?></button>
<button id="actionSaveAs" class="button" onclick="return saveAsImagePre();"><?php echo IMG_BTN_SAVE_AS; ?></button>
<button id="actionClose" class="button" onclick="return editorClose();"><?php echo IMG_BTN_CLOSE; ?></button></p>
</form>
</fieldset>
<fieldset id="imageInfo">
<legend id="imageInfoLegend"><?php echo IMG_INFO; ?></legend>
<form name="formImageInfo" action="<?php echo appendQueryString(CONFIG_URL_IMAGE_SAVE, makeQueryString(array('path'))); ?>" method="post" id="formImageInfo">
<p><input type="hidden" name="mode" id="image_mode" value="" />
<input type="hidden" name="new_name" id="hidden_new_name" value="" />
<input type="hidden" name="save_to" id="hidden_save_to" value="" />
<input type="hidden" name="path" id="path" value="<?php echo $_GET['path']; ?>" />
<input type="hidden" name="flip_angle" id="flip_angle" value="" />
<label><?php echo IMG_LBL_WIDTH; ?></label> <input type="text" name="width" id="width" value="" class="input imageInput" />
<label><?php echo IMG_LBL_HEIGHT; ?></label> <input type="text" name="height" id="height" value="" class="input imageInput" />
<label><?php echo IMG_LBL_X; ?></label> <input type="text" name="x" id="x" value="" class="input imageInput"/>
<label><?php echo IMG_LBL_Y; ?></label> <input type="text" name="y" id="y" value="" class="input imageInput"/>
<!-- <b>Percentage:</b> <input type="text" name="percentage" id="percentage" value="" class="input imageInput"/>-->
<label><?php echo IMG_LBL_RATIO; ?></label> <input type="text" name="ratio" id="ratio" value="" class="input imageInput"/>
<label><?php echo IMG_LBL_ANGLE; ?></label> <input type="text" name="angle" id="angle" value="" class="input imageInput" />
</p>
</form>
</fieldset>
</div>
<div id="imageArea">
<div id="imageContainer">
<img src="<?php echo $path; ?>" name="<?php echo basename($path); ?>" width="<?php echo $imageInfo['width']; ?>" height="<?php echo $imageInfo['height']; ?>" />
</div>
<div id="resizeMe">
<div id="resizeSE"></div>
<div id="resizeE"></div>
<div id="resizeNE"></div>
<div id="resizeN"></div>
<div id="resizeNW"></div>
<div id="resizeW"></div>
<div id="resizeSW"></div>
<div id="resizeS"></div>
<img id="loading" style="display:none;" src="theme/<?php echo CONFIG_THEME_NAME; ?>/images/loading.gif" />
</div>
</div>
<div id="hiddenImage">
</div>
<div id="windowSaveAs" class="jqmWindow" style="display:none">
<a href="#" class="jqmClose" id="windowSaveClose"><?php echo LBL_ACTION_CLOSE; ?></a>
<form id="formSaveAs" name="formSaveAs" action="" method="post">
<table class="tableForm" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th colspan="2"><?php echo IMG_LBL_SAVE_AS; ?></th>
</tr>
</thead>
<tbody>
<tr>
<th>
<label><?php echo IMG_LBL_NEW_NAME; ?></label>
</th>
<td>
<input type="text" id="new_name" class="input" name="new_name" value="" /> .<?php echo getFileExt($path); ?>
</td>
</tr>
<tr>
<th>
<label><?php echo IMG_LBL_SAVE_TO; ?></label>
</th>
<td>
<select class="input" name="save_to" id="save_to"></select>
</td>
</tr>
<tr>
<th>
</th>
<td>
<span class="comments">*</span>
<?php echo IMG_NEW_NAME_COMMENTS; ?>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th> </th>
<td><input type="button" class="button" value="<?php echo IMG_BTN_SAVE_AS; ?>" onclick="return saveAsImage();" /></td>
</tr>
</tfoot>
</table>
</form>
</div>
</body>
</html>