function imageeditor_save in Image Editor 6
Same name and namespace in other branches
- 7 imageeditor.pages.inc \imageeditor_save()
1 string reference to 'imageeditor_save'
- imageeditor_menu in ./
imageeditor.module - Implementation of hook_menu().
File
- ./
imageeditor.module, line 130 - Allows online editing of images using different image editing services.
Code
function imageeditor_save($service = '', $field_name = '', $delta = '', $new = '', $replace = '', $first_run = '') {
if ($service == 'pixlr' || $service == 'aviary' || $service == 'picnik' || $service == 'fotoflexer' || $service == 'sumopaint' || $service == 'paintweb') {
if ($service == 'pixlr' || $service == 'aviary' || $service == 'fotoflexer' || $service == 'sumopaint' || $service == 'paintweb') {
$image_param = 'image';
}
elseif ($service == 'picnik') {
$image_param = 'file';
}
if ($service == 'pixlr' || $service == 'picnik' || $service == 'fotoflexer') {
if (isset($_GET[$image_param])) {
$image = rawurldecode($_GET[$image_param]);
}
}
elseif ($service == 'aviary') {
if (isset($_POST['imageurl'])) {
$image = rawurldecode($_POST['imageurl']);
}
elseif (isset($_GET[$image_param])) {
$image = rawurldecode($_GET[$image_param]);
}
}
elseif ($service == 'sumopaint') {
if (isset($_POST['data'])) {
if ($_POST['url']) {
$filename = file_save_data(base64_decode($_POST["data"]), file_directory_path() . '/' . basename($_POST['url']));
}
else {
$filename = file_save_data(base64_decode($_POST["data"]), file_directory_path() . '/' . md5($_POST["data"]) . '.png');
}
$image = file_create_url($filename);
$sumo_first_run = 1;
}
elseif (isset($_GET[$image_param])) {
$image = rawurldecode($_GET[$image_param]);
$sumo_first_run = 0;
}
}
elseif ($service == 'paintweb') {
if (isset($_POST['data'])) {
if ($_POST['url'] && $_POST['url'] != 'undefined') {
$filename = file_save_data(base64_decode($_POST["data"]), file_directory_path() . '/' . basename($_POST['url']));
}
else {
$filename = file_save_data(base64_decode($_POST["data"]), file_directory_path() . '/' . md5($_POST["data"]) . '.png');
}
print file_create_url($filename);
$paintweb_first_run = 1;
exit;
}
elseif (isset($_GET[$image_param])) {
$image = rawurldecode($_GET[$image_param]);
$paintweb_first_run = 0;
}
}
$js_code = '';
//Find Remote URL Filefield source input element, set the value and submit
if ($service == 'pixlr' || $service == 'picnik' || $service == 'paintweb') {
$parent_type = 'parent';
}
elseif ($service == 'aviary') {
$parent_type = 'parent.parent';
}
elseif ($service == 'fotoflexer' || $service == 'sumopaint') {
$parent_type = 'opener';
}
$js_code .= 'if(' . $parent_type . '){';
$id = 'edit-' . str_replace('_', '-', $field_name) . '-' . $delta;
if ($service == 'picnik' && isset($_GET['_imageid'])) {
$replace = 1;
}
elseif ($service == 'picnik' && !isset($_GET['_imageid'])) {
$replace = 0;
}
// remove
if (!$new && $replace && $first_run) {
$js_code .= $parent_type . '.$(\'input[name="' . $field_name . '_' . $delta . '_filefield_remove"]\').mousedown();';
if ($service == 'pixlr' || $service == 'aviary' || $service == 'picnik' || $service == 'fotoflexer') {
$js_code .= 'window.location = "' . url('imageeditor/save/' . $service . '/' . $field_name . '/' . $delta . '/' . $new . '/' . $replace . '/0', array(
'absolute' => TRUE,
'query' => array(
$image_param => $image,
),
)) . '";';
}
elseif ($service == 'sumopaint') {
$js_code .= 'window.location = "' . url('imageeditor/save/' . $service . '/' . $field_name . '/' . $delta . '/' . $new . '/' . $replace . '/' . $sumo_first_run, array(
'absolute' => TRUE,
'query' => array(
$image_param => $image,
),
)) . '";';
}
elseif ($service == 'paintweb') {
$js_code .= 'window.location = "' . url('imageeditor/save/' . $service . '/' . $field_name . '/' . $delta . '/' . $new . '/' . $replace . '/' . $paintweb_first_run, array(
'absolute' => TRUE,
'query' => array(
$image_param => $image,
),
)) . '";';
}
}
elseif (!$new && !$replace && $first_run) {
$js_code .= $parent_type . '.$(\'input[name="' . $field_name . '_add_more"]\').mousedown();';
$js_code .= 'window.location = "' . url('imageeditor/save/' . $service . '/' . $field_name . '/' . $delta . '/' . $new . '/' . $replace . '/0', array(
'absolute' => TRUE,
'query' => array(
$image_param => $image,
),
)) . '";';
}
elseif ($new || !$new && $replace && !$first_run) {
$js_code .= $parent_type . '.$(\'a[id="' . $id . '-remote-source"]\').click();';
$js_code .= $parent_type . '.$(\'input[id="' . $id . '-filefield-remote-url"]\').val(\'' . $image . '\');';
$js_code .= $parent_type . '.$(\'input[id="' . $id . '-filefield-remote-transfer"]\').mousedown();';
if ($service == 'pixlr' || $service == 'aviary' || $service == 'picnik' || $service == 'paintweb') {
$js_code .= $parent_type . '.Drupal.imageeditor.overlay.hide();';
}
elseif ($service == 'fotoflexer' || $service == 'sumopaint') {
$js_code .= 'self.close();';
}
}
elseif (!$new && !$replace && !$first_run) {
$pos = strrpos($id, '-');
$starts_with = substr($id, 0, $pos);
$js_code .= $parent_type . '.$(\'a[id^="' . $starts_with . '-"][id$="-remote-source"]:first\').click();';
$js_code .= $parent_type . '.$(\'input[id^="' . $starts_with . '-"][id$="-filefield-remote-url"]:first\').val(\'' . $image . '\');';
$js_code .= $parent_type . '.$(\'input[id^="' . $starts_with . '-"][id$="-filefield-remote-transfer"]:first\').mousedown();';
if ($service == 'pixlr' || $service == 'aviary' || $service == 'picnik' || $service == 'paintweb') {
$js_code .= $parent_type . '.Drupal.imageeditor.overlay.hide();';
}
elseif ($service == 'fotoflexer' || $service == 'sumopaint') {
$js_code .= 'self.close();';
}
}
$js_code .= '}';
}
drupal_add_js($js_code, 'inline');
return '';
}