123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <?php
- /**
- * @param string $value Value of model where stored image ids
- * @return array Array of file ids
- */
- 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")
- {
- /* @var $image ElggFile */
- $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;
- }
- /**
- * check if all values persist in both arrays
- */
- 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();
- }
- /*
- function gallery_field($entity_id, $entity_field)
- {
- elgg_load_js('gallery_field_editor');
-
- $entity = get_entity($entity_id);
- $metadata = elgg_get_metadata(array(
- 'guids' => array($entity_id),
- 'metadata_names' => array($entity_field)
- ));
-
- $title = elgg_echo("gallery_field:edit_images_title");
-
- $content = elgg_view('gallery_field/editor', array(
- 'value' => $metadata->value,
- 'entity' => $entity
- ));
-
- $body = elgg_view_layout('content', array(
- 'content' => $content,
- 'title' => $title,
- 'filter' => '',
- ));
-
- echo elgg_view_page($title, $body);
- }*/
|