123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <?php
- function gallery_field_image_ids_from_value($value)
- {
- if(strlen($value) == 0 || intval($value) == 0)
- {
- return array();
- }
- $return_value = array();
- $value_arr = explode(",", $value);
- foreach($value_arr as $value_item)
- {
- $value_item_int = intval($value_item);
- if($value_item_int > 0)
- {
- $return_value[] = $value_item_int;
- }
- }
- return $return_value;
- }
- function gallery_field_delete_images()
- {
- $entity_id = $_POST['entity_id'];
- $field = $_POST['field'];
- $delete_images_list = $_POST['images'];
- $delete_ids = explode(",", $delete_images_list);
-
-
- $entity = get_entity($entity_id);
- if(false == $entity->canEdit())
- {
- throw new Exception("can`t edit");
- }
-
- $current_image_ids = gallery_field_image_ids_from_value($entity->$field);
- $new_image_ids = array();
- foreach($current_image_ids as $image_id)
- {
- if(in_array($image_id, $delete_ids))
- {
- $image_entity = get_entity($image_id);
- if($image_entity)
- {
- $image_entity->delete();
- }
- }
- else
- {
- $new_image_ids[] = $image_id;
- }
- }
-
- $entity->$field = implode(",", $new_image_ids);
- $entity->save();
-
- echo "ok";
- }
- function gallery_field_show_image($image_id, $size = "default")
- {
-
- $image = get_entity($image_id);
- if($size == 'thumb')
- {
- $image = get_entity($image->thumb_file_guid);
- }
-
-
- $success = false;
- $contents = null;
-
- if ($image->open("read")) {
-
- $contents = $image->read($image->getSize());
- if ($contents) {
- $success = true;
- }
- $image->close();
- }
-
- if($success == false)
- {
- throw new Exception("can`t read image");
- }
-
- header("Content-type: ".$image->getMimeType(), true);
- header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true);
- header("Pragma: public", true);
- header("Cache-Control: public", true);
- header("Content-Length: " . strlen($contents));
- echo $contents;
-
-
- }
- function gallery_field_save_sort()
- {
- $entity_id = $_POST['entity_id'];
- $field = $_POST['field'];
- $sort_images_list = $_POST['images'];
- $sort_ids = explode(",", $sort_images_list);
-
- $entity = get_entity($entity_id);
- if(false == $entity->canEdit())
- {
- throw new Exception("can`t edit");
- }
-
- $current_image_ids = gallery_field_image_ids_from_value($entity->$field);
-
- if(count($current_image_ids) == 0)
- {
- return;
- }
-
- if(count(array_intersect($sort_ids, $current_image_ids)) != count($current_image_ids))
- {
- throw new Exception("bad count");
- }
-
- $entity->$field = implode(",", $sort_ids);
- $entity->save();
- }
|