コード例 #1
0
ファイル: start.php プロジェクト: coldtrick/entity_tools
/**
 * Entity tools page handler
 *
 * @param array $page url parts
 *
 * @return true|void
 */
function entity_tools_page_handler($page)
{
    $supported = array_keys(entity_tools_get_supported_entity_types());
    $subtype = elgg_extract(2, $page, $supported[0]);
    switch ($page[0]) {
        case 'owner':
        case 'group':
            echo elgg_view_resource('entity_tools/list', ['subtype' => $subtype]);
            return true;
    }
}
コード例 #2
0
ファイル: Menus.php プロジェクト: coldtrick/entity_tools
 /**
  * Add menu items to the filter menu
  *
  * @param string $hook   hook name
  * @param string $type   hook type
  * @param array  $return current return value
  * @param array  $params parameters
  *
  * @return array
  */
 public static function registerFilter($hook, $type, $return, $params)
 {
     if (!elgg_in_context('entities')) {
         return;
     }
     $page_owner = elgg_get_page_owner_entity();
     if (elgg_instanceof($page_owner, 'group')) {
         $href_prefix = "entities/group/{$page_owner->getGUID()}/";
     } else {
         $href_prefix = "entities/owner/{$page_owner->username}/";
     }
     $types = array_keys(entity_tools_get_supported_entity_types());
     if (empty($types)) {
         return;
     }
     $return = [];
     $priority = 10;
     foreach ($types as $type) {
         $return[] = \ElggMenuItem::factory(['name' => $type, 'text' => elgg_echo("item:object:{$type}"), 'href' => $href_prefix . $type, 'priority' => $priority]);
         $priority += 10;
     }
     return $return;
 }
コード例 #3
0
ファイル: entity.php プロジェクト: coldtrick/entity_tools
<?php

$entity = elgg_extract('entity', $vars);
if (!$entity instanceof \ElggEntity) {
    return;
}
$supported = entity_tools_get_supported_entity_types();
$class = $supported[$entity->getSubtype()];
$migrate = new $class($entity);
$row_data = [];
$title = $entity->getDisplayName();
if (empty($title)) {
    $title = $entity->description;
}
$row_data[] = elgg_view('output/url', ['text' => elgg_get_excerpt($title, 30), 'title' => $title, 'href' => $entity->getURL()]);
if ($migrate->canBackDate()) {
    $row_data[] = elgg_view('input/datetimepicker', ['name' => "params[{$entity->guid}][time_created]", 'value' => $entity->time_created, 'timestamp' => true, 'readonly' => true]);
}
if ($migrate->canChangeOwner()) {
    $row_data[] = elgg_view('input/userpicker', ['name' => "params[{$entity->guid}][owner_guid]", 'values' => $entity->getOwnerGUID(), 'limit' => 1]);
}
if ($migrate->canChangeContainer()) {
    $view = 'input/entity_tools_container';
    if (elgg_view_exists("{$view}/{$entity->getSubtype()}")) {
        $view = "{$view}/{$entity->getSubtype()}";
    }
    $row_data[] = elgg_view($view, ['entity' => $entity, 'name' => "params[{$entity->guid}][container_guid]", 'value' => $entity->getContainerGUID()]);
}
$row = implode('</td><td>', $row_data);
echo "<tr><td>{$row}</td></tr>";
コード例 #4
0
ファイル: list.php プロジェクト: coldtrick/entity_tools
<?php

// only when logged in
elgg_gatekeeper();
// depending on plugin setting who can view this page
entity_tools_gatekeeper();
// make sure we can edit the page owner
$page_owner = elgg_get_page_owner_entity();
if (empty($page_owner) || !$page_owner->canEdit()) {
    register_error(elgg_echo('pageownerunavailable', [$page_owner->guid]));
    forward(REFERER);
}
$subtype = elgg_extract('subtype', $vars);
// get supported types
$supported_types = array_keys(entity_tools_get_supported_entity_types());
if (!in_array($subtype, $supported_types)) {
    register_error(elgg_echo('entity_tools:error:unsupported_subtype', [$subtype]));
    forward(REFERER);
}
$title_text = elgg_echo('entity_tools:page:owner:title', [$page_owner->name, elgg_echo('item:object:' . $subtype)]);
$content = elgg_view_form('entity_tools/update_entities', [], ['subtype' => $subtype, 'owner' => $page_owner]);
// build page
$page_data = elgg_view_layout('content', array('title' => $title_text, 'content' => $content));
// show page
echo elgg_view_page($title_text, $page_data);