Mercurial > hg > mpiwg_geobrowser
view plugins/tasks/mpiwg_geobrowser_view.inc @ 1:ea066ce001bd
bug fixes, works now without admin rights
author | Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 29 May 2015 13:59:32 +0200 |
parents | b57c7821382f |
children | 1b6cde0e4b83 |
line wrap: on
line source
<?php function mpiwg_geobrowser_mpiwg_geobrowser_view_page_manager_tasks() { return array( 'task type' => 'page', 'title' => t('mpiwg_geobrowser template'), 'admin title' => t('mpiwg_geobrowser template'), 'admin description' => t('When enabled, this overrides the default Drupal behavior for displaying mpiwg_geobrowsers at <em>mpiwg_geobrowser/%mpiwg_geobrowser</em>. If you add variants, you may use selection criteria such as mpiwg_geobrowser type or language or user access to provide different views of mpiwg_geobrowsers. If no variant is selected, the default Drupal mpiwg_geobrowser view will be used. This page only affects mpiwg_geobrowsers viewed as pages, it will not affect mpiwg_geobrowsers viewed in lists or at other locations. Also please note that if you are using pathauto, aliases may make a mpiwg_geobrowser to be somewhere else, but as far as Drupal is concerned, they are still at mpiwg_geobrowser/%mpiwg_geobrowser.'), 'admin path' => 'mpiwg_geobrowser/%mpiwg_geobrowser', 'hook menu' => 'mpiwg_geobrowser_mpiwg_geobrowser_view_menu', 'hook menu alter' => 'mpiwg_geobrowser_mpiwg_geobrowser_view_menu_alter', 'handler type' => 'context', 'get arguments' => 'mpiwg_geobrowser_mpiwg_geobrowser_view_get_arguments', 'get context placeholders' => 'mpiwg_geobrowser_mpiwg_geobrowser_view_get_contexts', 'disabled' => variable_get('mpiwg_geobrowser_mpiwg_geobrowser_view_disabled', FALSE), 'enable callback' => 'mpiwg_geobrowser_mpiwg_geobrowser_view_enable', 'access callback' => 'mpiwg_geobrowser_mpiwg_geobrowser_view_access_check', ); } function mpiwg_geobrowser_mpiwg_geobrowser_view_menu_alter(&$items, $task) { if (variable_get('mpiwg_geobrowser_mpiwg_geobrowser_view_disabled', FALSE)) { return; } $callback = $items['mpiwg_geobrowser/%mpiwg_geobrowser']['page callback']; if ($callback == 'mpiwg_geobrowser_page_view' || variable_get('mpiwg_geobrowser_override_anyway', TRUE)) { $items['mpiwg_geobrowser/%mpiwg_geobrowser']['page callback'] = 'mpiwg_geobrowser_mpiwg_geobrowser_view_page'; $items['mpiwg_geobrowser/%mpiwg_geobrowser']['file path'] = $task['path']; $items['mpiwg_geobrowser/%mpiwg_geobrowser']['file'] = $task['file']; } else { variable_set('mpiwg_geobrowser_mpiwg_geobrowser_view_disabled', TRUE); if (!empty($GLOBALS['mpiwg_geobrowser_enabling_mpiwg_geobrowser_view'])) { drupal_set_message(t('Page manager module is unable to enable mpiwg_geobrowser/%mpiwg_geobrowser because some other module already has overridden with %callback.', array('%callback' => $callback)), 'error'); } } } function mpiwg_geobrowser_mpiwg_geobrowser_view_page($mpiwg_geobrowser) { drupal_add_css(drupal_get_path('module', 'mpiwg_geobrowser') . '/css/mpiwg_geobrowser_style.css', array('group' => CSS_DEFAULT, 'type' => 'file')); drupal_add_js(drupal_get_path('module', "mpiwg_geobrowser") . '/lib/moment.min.js'); drupal_add_js(drupal_get_path('module', "mpiwg_geobrowser") . '/lib/filesaver/FileSaver.min.js'); #drupal_add_js(libraries_get_path("platin") . '/platin.js'); drupal_add_js(libraries_get_path("platin") . '/devel/platin.js'); drupal_add_css(drupal_get_path('module', 'mpiwg_geobrowser') . '/lib/GeoTemCo/css/platin.css', array('group' => CSS_DEFAULT, 'type' => 'file')); drupal_add_css(libraries_get_path("platin") . '/devel/css/platin.css'); drupal_add_css(libraries_get_path("platin") . '/devel/css/style.css'); $task = page_manager_get_task('mpiwg_geobrowser_view'); ctools_include('context'); ctools_include('context-task-handler'); drupal_set_title($mpiwg_geobrowser->item_description); $uri = entity_uri('mpiwg_geobrowser', $mpiwg_geobrowser); drupal_add_html_head_link(array('rel' => 'canonical', 'href' => url($uri['path'], $uri['options'])), TRUE); drupal_add_html_head_link(array('rel' => 'shortlink', 'href' => url($uri['path'], array_merge($uri['options'], array('alias' => TRUE)))), TRUE); $contexts = ctools_context_handler_get_task_contexts($task, '', array($mpiwg_geobrowser)); $output = ctools_context_handler_render($task, '', $contexts, array($mpiwg_geobrowser->mpiwg_geobrowser_instance_id)); $geoTemCoIntegration = ' <script type="text/javascript"> var mpiwg_geobrowser_widgetsCount = 0; var mpiwg_geobrowser_widgetsLoaded = 0; var mpiwg_geobrowser_noWidgetLoaded = true; var widgetLoadedEvent = new Event("mpiwg_geobrowser_widget_loaded"); var allWidgetsLoadedEvent = new Event("mpiwg_geobrowser_all_widgets_loaded"); Drupal.behaviors.mpiwg_geobrowser_entity = { attach: function (context, settings) { // jQuery(document).ready(function(){ if (context[0] !== undefined && context[0].attributes !== undefined) { var contextAttributes = context[0].attributes; for (i=0; i<contextAttributes.length; i++) { if (contextAttributes[i].name == "id" && contextAttributes[i].value == "panels-ipe-edit-control-form") { window.location.reload(); } } } document.addEventListener("mpiwg_geobrowser_widget_loaded", function (e) { if (mpiwg_geobrowser_noWidgetLoaded) { mpiwg_geobrowser_widgetsCount = mpiwg_geobrowser_widgetsCount; mpiwg_geobrowser_noWidgetLoaded = false; } mpiwg_geobrowser_widgetsLoaded++; if (mpiwg_geobrowser_widgetsLoaded == mpiwg_geobrowser_widgetsCount) { document.dispatchEvent(allWidgetsLoadedEvent); } }, false); // }); } } </script> '; if (isset($output["content"])){ //unterschiedliches Verhalten, je nach dem ob der Inhalt noch in einen admin rahmen eingebettet ist //$output["content"]["#markup"] = $geoTemCoIntegration . $output["content"]["#markup"]; $output["content"]["#markup"] = $geoTemCoIntegration . $output["content"]["#markup"]; if ($output != FALSE) { return $output; } } else { return $geoTemCoIntegration . $output; } $function = 'mpiwg_geobrowser_page_view'; foreach (module_implements('mpiwg_geobrowser_override') as $module) { $call = $module . '_mpiwg_geobrowser_override'; if (($rc = $call('mpiwg_geobrowser_view')) && function_exists($rc)) { $function = $rc; break; } } return $function($mpiwg_geobrowser); } function mpiwg_geobrowser_mpiwg_geobrowser_view_get_arguments($task, $subtask_id) { return array( array( 'keyword' => 'mpiwg_geobrowser', 'identifier' => t('mpiwg_geobrowser being viewed'), 'id' => 1, 'name' => 'entity_id:mpiwg_geobrowser', 'settings' => array(), ), ); } function mpiwg_geobrowser_mpiwg_geobrowser_view_get_contexts($task, $subtask_id) { return ctools_context_get_placeholders_from_argument(mpiwg_geobrowser_mpiwg_geobrowser_view_get_arguments($task, $subtask_id)); } function mpiwg_geobrowser_mpiwg_geobrowser_view_enable($cache, $status) { variable_set('mpiwg_geobrowser_mpiwg_geobrowser_view_disabled', $status); if (!$status) { $GLOBALS['mpiwg_geobrowser_enabling_mpiwg_geobrowser_view'] = TRUE; } } function mpiwg_geobrowser_mpiwg_geobrowser_view_access_check($task, $subtask_id, $contexts) { $context = reset($contexts); return mpiwg_geobrowser_access('view', $context->data); }