Exemplo n.º 1
0
<?php

elgg_load_css('media');
elgg_require_js('forms/media/upload');
$entity = elgg_extract('entity', $vars);
$type = elgg_extract('type', $vars);
// Upload module
$upload_title = elgg_echo('media:upload');
$upload_mod = '<div class="elgg-text-help">' . elgg_echo('media:upload:instructions') . '</div>';
$upload_mod .= elgg_view("input/file", ['name' => 'media', 'class' => 'media-upload-input']);
echo elgg_view_module('aside', $upload_title, $upload_mod, ['class' => 'media-upload-module']);
// Cropper module
$cropper_title = elgg_echo('media:crop:title');
$cropper_mod = elgg_format_element('p', ['class' => 'elgg-text-help'], elgg_echo('media:create:instructions'));
$img = '';
$sizes = elgg_media_get_thumb_sizes($entity, $type);
$ratio = $sizes['small']['square'] ? 1 : $sizes['small']['w'] / $sizes['small']['h'];
if (elgg_has_media($entity, $type)) {
    $x = $y = 0;
    $width = $height = $sizes['master']['w'];
    if ($entity->{"{$type}_x2"} > $entity->{"{$type}_x1"} && $entity->{"{$type}_y2"} > $entity->{"{$type}_y1"}) {
        $x = (int) $entity->{"{$type}_x1"};
        $y = (int) $entity->{"{$type}_y1"};
        $width = (int) $entity->{"{$type}_x2"} - (int) $entity->{"{$type}_x1"};
        $height = (int) $entity->{"{$type}_y2"} - (int) $entity->{"{$type}_y1"};
    }
    $img = elgg_view('output/img', ['src' => $entity->getIconURL(['type' => $type, 'size' => 'master']), 'alt' => elgg_echo('media'), 'data-x' => $x, 'data-y' => $y, 'data-width' => $width, 'data-height' => $height]);
}
$cropper_mod .= elgg_format_element('div', ['class' => 'media-cropper-preview'], $img);
foreach (['x1', 'y1', 'x2', 'y2'] as $coord) {
    $cropper_mod .= elgg_view('input/hidden', ['name' => $coord, 'value' => (int) $entity->{$coord}, "data-{$coord}" => true]);
Exemplo n.º 2
0
/**
 * Removes entity media
 *
 * @param \ElggEntity $entity  Entity
 * @param string      $type    Media type
 * @return bool
 */
function elgg_remove_media(\ElggEntity $entity, $type = 'icon')
{
    $original = elgg_get_media_original($entity, $type);
    if (!$original || !$original->delete()) {
        return false;
    }
    unset($entity->{"{$type}_originalfilename"});
    unset($entity->{"{$type}_time_created"});
    foreach (['x1', 'x2', 'y1', 'y2'] as $c) {
        unset($entity->{"{$type}_{$c}"});
    }
    $success = true;
    $sizes = elgg_media_get_thumb_sizes($entity, $type);
    foreach ($sizes as $size => $opts) {
        $file = elgg_get_media_file($entity, $type, $size);
        if (!$file) {
            continue;
        }
        $file->delete();
    }
    return $success;
}