Example #1
0
$entity->extended_address = $extended_address;
$entity->locality = $locality;
$entity->region = $region;
$entity->postal_code = $postal_code;
$entity->country_code = $country_iso;
if ($entity->country_code && is_callable(array('hypeJunction\\Geo\\Countries', 'getCountries'))) {
    $countries = call_user_func(array('hypeJunction\\Geo\\Countries', 'getCountries'), 'iso', 'name', 'name');
    $country = $countries[$country_iso];
}
$entity->country = $country;
$entity->phone = get_input('phone');
$entity->website = get_input('website');
$entity->twitter = get_input('twitter');
$tools = get_input('tools', array());
$entity->checkins = elgg_extract('checkins', $tools, false);
if ($entity->save()) {
    $entity->location = implode(', ', array_filter(array($street_address, $extended_address, $locality, $region, $postal_code, $country)));
    if (!empty($_FILES['icon']['name']) && $_FILES['icon']['error'] == UPLOAD_ERR_OK && substr_count($_FILES['icon']['type'], 'image/')) {
        IconHandler::makeIcons($entity, $_FILES['icon']['tmp_name']);
    }
    if ($river) {
        elgg_create_river_item(array('view' => 'framework/river/places/create', 'action_type' => 'create', 'subject_guid' => $entity->owner_guid, 'object_guid' => $entity->guid));
    }
    elgg_clear_sticky_form('places/edit');
    system_message(elgg_echo('places:edit:success', array($entity->title)));
    $forward_url = $entity->getURL();
} else {
    register_error(elgg_echo('places:edit:error'));
    $forward_url = REFERER;
}
forward($forward_url);
<?php

namespace hypeJunction\Gallery;

use ElggFile;
use hypeJunction\Filestore\IconHandler;
$guid = get_input('guid');
$entity = get_entity($guid);
if (!$entity instanceof ElggFile || !$entity->canEdit()) {
    register_error(elgg_echo('gallery:tools:crop:error'));
    forward(REFERER);
}
$icon_sizes = get_icon_sizes($entity);
unset($icon_sizes['master']);
$result = IconHandler::makeIcons($entity, null, array('icon_sizes' => $icon_sizes, 'coords' => $coords));
if (!$result) {
    register_error($exception);
} else {
    system_message(elgg_echo('gallery:tools:crop:success'));
}
if (elgg_is_xhr) {
    print json_encode($coords);
}
forward(REFERER);
/**
 * Digital products pagehandler
 *
 * @param array  $page    Array of URL segments
 * @param string $handler Handler name
 * @return boolean
 */
function page_handler($page, $handler)
{
    elgg_push_breadcrumb(elgg_echo('places'), $handler);
    $context = elgg_extract(0, $page, 'all');
    switch ($context) {
        case 'all':
        case 'featured':
            elgg_register_title_button('places', 'create');
            $title = elgg_echo("places:{$context}");
            elgg_push_breadcrumb($title);
            $vars = array('filter_context' => $context);
            $content = elgg_view('framework/places/list', $vars);
            $filter = elgg_view('framework/places/filter', $vars);
            $sidebar = elgg_view('framework/places/sidebar', $vars);
            break;
        case 'owner':
            $username = $page[1];
            if ($username) {
                $user = get_user_by_username($username);
            } else {
                if (elgg_is_logged_in()) {
                    $user = elgg_get_logged_in_user_entity();
                }
            }
            elgg_set_page_owner_guid($user->guid);
            if (elgg_get_logged_in_user_guid() == $user->guid) {
                elgg_register_title_button('places', 'create');
                $title = elgg_echo('places:mine');
            } else {
                $title = elgg_echo('places:owner', array($user->name));
            }
            elgg_push_breadcrumb($user->name, $handler . '/owner/' . $user->username);
            $vars = array('filter_context' => $context);
            $content = elgg_view('framework/places/list', $vars);
            $filter = elgg_view('framework/places/filter', $vars);
            $sidebar = elgg_view('framework/places/sidebar', $vars);
            break;
        case 'group':
            $group = get_entity($page[1]);
            if (!elgg_instanceof($group, 'group')) {
                return false;
            }
            elgg_set_page_owner_guid($group->guid);
            if ($group->canWriteToContainer(0, 'object', Place::SUBTYPE)) {
                elgg_register_title_button('places', 'create');
            }
            elgg_push_breadcrumb($group->name, $handler . '/group/' . $group->guid);
            $content = elgg_view('framework/places/group', $vars);
            $filter = false;
            $sidebar = false;
            break;
        case 'bookmarked':
            gatekeeper();
            $username = $page[1];
            if ($username) {
                $user = get_user_by_username($username);
            } else {
                if (elgg_is_logged_in()) {
                    $user = elgg_get_logged_in_user_entity();
                }
            }
            if (!$user->canEdit()) {
                return false;
            }
            elgg_set_page_owner_guid($user->guid);
            if (elgg_get_logged_in_user_guid() == $user->guid) {
                elgg_register_title_button('places', 'create');
                $title = elgg_echo('places:bookmarked:mine');
            } else {
                $title = elgg_echo('places:bookmarked:owner', array($user->name));
            }
            elgg_push_breadcrumb($user->name, $handler . '/owner/' . $user->username);
            elgg_push_breadcrumb($title, $handler . '/bookmarked/' . $user->username);
            $vars = array('filter_context' => $context);
            $content = elgg_view('framework/places/list', $vars);
            $filter = elgg_view('framework/places/filter', $vars);
            $sidebar = elgg_view('framework/places/sidebar', $vars);
            break;
        case 'view':
        case 'profile':
            $entity_guid = $page[1];
            $entity = get_entity($entity_guid);
            if (!$entity instanceof Place) {
                return false;
            }
            $container = $entity->getContainerEntity();
            if (elgg_instanceof($container, 'group')) {
                elgg_set_page_owner_guid($container->guid);
                group_gatekeeper(true);
                elgg_push_breadcrumb($container->name, $handler . '/group/' . $container->guid);
            } else {
                $owner = $entity->getOwnerEntity();
                elgg_push_breadcrumb($owner->name, $handler . '/owner/' . $owner->username);
            }
            elgg_set_page_owner_guid($entity->guid);
            $title = $entity->title;
            elgg_push_breadcrumb($title);
            $header_override = '';
            $content = elgg_view('framework/places/profile', array('entity' => $entity));
            $sidebar = elgg_view('framework/places/sidebar', array('entity' => $entity));
            $filter = false;
            break;
        case 'create':
            $container_guid = $page[1];
            $container = get_entity($container_guid);
            if (elgg_instanceof($container) && !$container->canWriteToContainer(0, 'object', Place::SUBTYPE)) {
                return false;
            }
            $title = elgg_echo('places:create');
            $content = elgg_view('framework/places/edit', array('container' => $container));
            $filter = false;
            $sidebar = elgg_view('framework/places/sidebar', array('container' => $container));
            break;
        case 'edit':
            $entity_guid = $page[1];
            $entity = get_entity($entity_guid);
            if (!$entity instanceof Place || !$entity->canEdit()) {
                return false;
            }
            $title = elgg_echo('places:edit', array($entity->title));
            $content = elgg_view('framework/places/edit', array('entity' => $entity));
            $filter = false;
            $sidebar = elgg_view('framework/places/sidebar', array('entity' => $entity));
            break;
        case 'icon':
            $guid = elgg_extract(1, $page, 0);
            $size = elgg_extract(2, $page, 'medium');
            $entity = get_entity($guid);
            $config = get_icon_sizes($entity);
            if (!array_key_exists($size, $config)) {
                $size = 'medium';
            }
            IconHandler::outputRawIcon($entity->guid, $size);
            break;
    }
    if ($content) {
        if (elgg_is_xhr()) {
            echo $content;
        } else {
            $layout = elgg_view_layout('content', array('header_override' => isset($header_override) ? $header_override : null, 'title' => $title, 'content' => $content, 'filter' => $filter, 'sidebar' => $sidebar));
            echo elgg_view_page($title, $layout);
        }
        return true;
    }
    return false;
}
 /**
  * Create new entities from file uploads
  *
  * @param string $input Name of the file input
  * @return void
  */
 protected static function entityFactory($input)
 {
     if (!isset(self::$config['filestore_prefix'])) {
         $prefix = "file/";
     }
     $uploads = self::$uploads[$input];
     $handled_uploads = array();
     $entities = array();
     foreach ($uploads as $key => $upload) {
         if ($upload->error) {
             $handled_uploads[] = $upload;
             continue;
         }
         $filehandler = new ElggFile();
         if (is_array(self::$attributes)) {
             foreach (self::$attributes as $key => $value) {
                 $filehandler->{$key} = $value;
             }
         }
         $filestorename = elgg_strtolower(time() . $upload->name);
         $filehandler->setFilename($prefix . $filestorename);
         $filehandler->title = $upload->name;
         $filehandler->originalfilename = $upload->name;
         $filehandler->filesize = $upload->size;
         $filehandler->mimetype = $upload->mimetype;
         $filehandler->simpletype = $upload->simpletype;
         $filehandler->open("write");
         $filehandler->close();
         move_uploaded_file($upload->path, $filehandler->getFilenameOnFilestore());
         if ($filehandler->save()) {
             $upload->guid = $filehandler->getGUID();
             $upload->file = $filehandler;
             if ($filehandler->simpletype == "image") {
                 IconHandler::makeIcons($filehandler);
             }
             $entities[] = $filehandler;
         } else {
             $upload->error = elgg_echo('upload:error:unknown');
         }
         $handled_uploads[] = $upload;
     }
     self::$uploads[$input] = $handled_uploads;
     self::$files[$input] = $entities;
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 public function put(ParameterBag $params)
 {
     $decoded = "";
     if ($params->contents) {
         if (empty($params->filename) || empty($params->mimetype)) {
             throw new GraphException("You need to provide a filename and content type with encoded file contents", HttpResponse::HTTP_BAD_REQUEST);
         }
         for ($i = 0; $i < ceil(strlen($params->contents) / 256); $i++) {
             $decoded = $decoded . base64_decode(substr($params->contents, $i * 256, 256));
         }
         if (!$decoded) {
             throw new GraphException("File contents can not be empty and must be encoded with base64", HttpResponse::HTTP_BAD_REQUEST);
         }
         if (empty($params->checksum) || md5($decoded) != $params->checksum) {
             throw new GraphException("Checksum mismatch", HttpResponse::HTTP_BAD_REQUEST);
         }
     }
     $owner_guid = $params->owner_guid ?: elgg_get_logged_in_user_guid();
     $owner = get_entity($owner_guid);
     if (!$owner->canEdit()) {
         throw new GraphException("You are not allowed to upload files on users's behalf", HttpResponse::HTTP_FORBIDDEN);
     }
     $container_guid = $params->container_guid ?: elgg_get_logged_in_user_guid();
     $container = get_entity($container_guid);
     if (!$container->canWriteToContainer($owner->guid, 'object', 'file')) {
         throw new GraphException("You are not allowed to upload files to this container", HttpResponse::HTTP_FORBIDDEN);
     }
     $file_guid = $params->guid ?: 0;
     if ($file_guid) {
         $file = get_entity($file_guid);
     } else {
         if ($decoded) {
             $file = new ElggFile();
             $file->subtype = 'file';
             $file->owner_guid = $owner->guid;
             $file->container_guid = $container->guid;
             $file->title = $params->title ?: $params->filename;
             $file->access_id = ACCESS_PRIVATE;
             $file->origin = 'graph';
         }
     }
     $attrs = array('title', 'description', 'access_id');
     foreach ($attrs as $attr) {
         if (isset($params->{$attr}) && $this->request->get($attr) !== null) {
             $file->{$attr} = $params->{$attr};
         }
     }
     if (!$file instanceof \ElggFile) {
         throw new GraphException("Unable to load or create a file entity");
     }
     if ($decoded) {
         $file->setFilename("file/{$params->filename}");
         if (!$file->exists()) {
             $file->open('write');
             $file->close();
         }
         file_put_contents($file->getFilenameOnFilestore(), $decoded);
         $file->originalfilename = $params->filename;
         $mimetype = $file->detectMimeType(null, $params->mimetype);
         $file->setMimeType($mimetype);
         $file->simpletype = elgg_get_file_simple_type($mimetype);
     }
     $guid = $file->save();
     if (!$guid) {
         $file->delete();
         throw new GraphException("File could not be saved with given parameters", HttpResponse::HTTP_BAD_REQUEST);
     }
     if ($file->simpletype == 'image') {
         IconHandler::makeIcons($file);
     }
     return array('nodes' => array($file));
 }