annotate sites/all/modules/ctools/page_manager/plugins/tasks/term_view.inc @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents ff03f76ab3fe
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 * Handle the 'term view' override task.
danielebarchiesi@0 6 *
danielebarchiesi@0 7 * This plugin overrides term/%term and reroutes it to the page manager, where
danielebarchiesi@0 8 * a list of tasks can be used to service this request based upon criteria
danielebarchiesi@0 9 * supplied by access plugins.
danielebarchiesi@0 10 */
danielebarchiesi@0 11
danielebarchiesi@0 12 /**
danielebarchiesi@0 13 * Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
danielebarchiesi@0 14 * more information.
danielebarchiesi@0 15 */
danielebarchiesi@0 16 function page_manager_term_view_page_manager_tasks() {
danielebarchiesi@0 17 if (module_exists('taxonomy')) {
danielebarchiesi@0 18 return array(
danielebarchiesi@0 19 // This is a 'page' task and will fall under the page admin UI
danielebarchiesi@0 20 'task type' => 'page',
danielebarchiesi@0 21
danielebarchiesi@0 22 'title' => t('Taxonomy term template'),
danielebarchiesi@0 23 'admin title' => t('Taxonomy term template'),
danielebarchiesi@0 24 'admin description' => t('When enabled, this overrides the default Drupal behavior for displaying taxonomy terms at <em>taxonomy/term/%term</em>. If you add variants, you may use selection criteria such as vocabulary or user access to provide different displays of the taxonomy term and associated nodes. If no variant is selected, the default Drupal taxonomy term display will be used. This page only affects items actually displayed ad taxonomy/term/%term. Some taxonomy terms, such as forums, have their displays moved elsewhere. Also please note that if you are using pathauto, aliases may make a taxonomy terms appear somewhere else, but as far as Drupal is concerned, they are still at taxonomy/term/%term.'),
danielebarchiesi@0 25 'admin path' => 'taxonomy/term/%taxonomy_term',
danielebarchiesi@0 26 'admin summary' => 'page_manager_term_view_admin_summary',
danielebarchiesi@0 27
danielebarchiesi@0 28 // Menu hooks so that we can alter the term/%term menu entry to point to us.
danielebarchiesi@0 29 'hook menu' => 'page_manager_term_view_menu',
danielebarchiesi@0 30 'hook menu alter' => 'page_manager_term_view_menu_alter',
danielebarchiesi@0 31
danielebarchiesi@0 32 // Provide a setting to the primary settings UI for Panels
danielebarchiesi@0 33 'admin settings' => 'page_manager_term_view_admin_settings',
danielebarchiesi@0 34 // Even though we don't have subtasks, this allows us to save our settings.
danielebarchiesi@0 35 'save subtask callback' => 'page_manager_term_view_save',
danielebarchiesi@0 36
danielebarchiesi@0 37 // Callback to add items to the page manager task administration form:
danielebarchiesi@0 38 'task admin' => 'page_manager_term_view_task_admin',
danielebarchiesi@0 39
danielebarchiesi@0 40 // This is task uses 'context' handlers and must implement these to give the
danielebarchiesi@0 41 // handler data it needs.
danielebarchiesi@0 42 'handler type' => 'context',
danielebarchiesi@0 43 'get arguments' => 'page_manager_term_view_get_arguments',
danielebarchiesi@0 44 'get context placeholders' => 'page_manager_term_view_get_contexts',
danielebarchiesi@0 45
danielebarchiesi@0 46 // Allow this to be enabled or disabled:
danielebarchiesi@0 47 'disabled' => variable_get('page_manager_term_view_disabled', TRUE),
danielebarchiesi@0 48 'enable callback' => 'page_manager_term_view_enable',
danielebarchiesi@0 49 'access callback' => 'page_manager_term_view_access_check',
danielebarchiesi@0 50
danielebarchiesi@0 51 // Allow additional operations
danielebarchiesi@0 52 'operations' => array(
danielebarchiesi@0 53 'settings' => array(
danielebarchiesi@0 54 'title' => t('Settings'),
danielebarchiesi@0 55 'description' => t('Edit name, path and other basic settings for the page.'),
danielebarchiesi@0 56 'form' => 'page_manager_term_view_settings',
danielebarchiesi@0 57 ),
danielebarchiesi@0 58 ),
danielebarchiesi@0 59 );
danielebarchiesi@0 60 }
danielebarchiesi@0 61 }
danielebarchiesi@0 62
danielebarchiesi@0 63 /**
danielebarchiesi@0 64 * Callback defined by page_manager_term_view_page_manager_tasks().
danielebarchiesi@0 65 *
danielebarchiesi@0 66 * Alter the term view input so that term view comes to us rather than the
danielebarchiesi@0 67 * normal term view process.
danielebarchiesi@0 68 */
danielebarchiesi@0 69 function page_manager_term_view_menu_alter(&$items, $task) {
danielebarchiesi@0 70 if (variable_get('page_manager_term_view_disabled', TRUE)) {
danielebarchiesi@0 71 return;
danielebarchiesi@0 72 }
danielebarchiesi@0 73
danielebarchiesi@0 74 // Override the term view handler for our purpose, but only if someone else
danielebarchiesi@0 75 // has not already done so.
danielebarchiesi@0 76 if (isset($items['taxonomy/term/%taxonomy_term']) && $items['taxonomy/term/%taxonomy_term']['page callback'] == 'taxonomy_term_page' || variable_get('page_manager_override_anyway', FALSE)) {
danielebarchiesi@0 77 $items['taxonomy/term/%taxonomy_term']['page callback'] = 'page_manager_term_view_page';
danielebarchiesi@0 78 $items['taxonomy/term/%taxonomy_term']['file path'] = $task['path'];
danielebarchiesi@0 79 $items['taxonomy/term/%taxonomy_term']['file'] = $task['file'];
danielebarchiesi@0 80 }
danielebarchiesi@0 81 else {
danielebarchiesi@0 82 // automatically disable this task if it cannot be enabled.
danielebarchiesi@0 83 variable_set('page_manager_term_view_disabled', TRUE);
danielebarchiesi@0 84
danielebarchiesi@0 85 if (isset($items['taxonomy/term/%taxonomy_term']['page callback'])) {
danielebarchiesi@0 86 $callback = $items['taxonomy/term/%taxonomy_term']['page callback'];
danielebarchiesi@0 87 }
danielebarchiesi@0 88 // Because Views changes %taxonomy_term to %views_arg, check to see if that
danielebarchiesi@0 89 // is why we can't enable:
danielebarchiesi@0 90 else if (isset($items['taxonomy/term/%views_arg']['page callback'])) {
danielebarchiesi@0 91 $callback = $items['taxonomy/term/%views_arg']['page callback'];
danielebarchiesi@0 92 }
danielebarchiesi@0 93 else {
danielebarchiesi@0 94 $callback = t('an unknown callback');
danielebarchiesi@0 95 }
danielebarchiesi@0 96 if (!empty($GLOBALS['page_manager_enabling_term_view'])) {
danielebarchiesi@0 97 drupal_set_message(t('Page manager module is unable to enable taxonomy/term/%taxonomy_term because some other module already has overridden with %callback.', array('%callback' => $callback)), 'error');
danielebarchiesi@0 98 }
danielebarchiesi@0 99 }
danielebarchiesi@0 100 }
danielebarchiesi@0 101
danielebarchiesi@0 102 /**
danielebarchiesi@0 103 * Entry point for our overridden term view.
danielebarchiesi@0 104 *
danielebarchiesi@0 105 * This function asks its assigned handlers who, if anyone, would like
danielebarchiesi@0 106 * to run with it. If no one does, it passes through to Drupal core's
danielebarchiesi@0 107 * term view, which is term_page_view().
danielebarchiesi@0 108 */
danielebarchiesi@0 109 function page_manager_term_view_page($term, $depth = NULL) {
danielebarchiesi@0 110 // Prep the term to be displayed so all of the regular hooks are triggered.
danielebarchiesi@0 111 // Rather than calling taxonomy_term_page() directly, as it that would
danielebarchiesi@0 112 // potentially load nodes that were not necessary, execute some of the code
danielebarchiesi@0 113 // prior to identifying the correct CTools or Page Manager task handler and
danielebarchiesi@0 114 // only proceed with the rest of the code if necessary.
danielebarchiesi@0 115
danielebarchiesi@0 116 // Assign the term name as the page title.
danielebarchiesi@0 117 drupal_set_title($term->name);
danielebarchiesi@0 118
danielebarchiesi@0 119 // If there is a menu link to this term, the link becomes the last part
danielebarchiesi@0 120 // of the active trail, and the link name becomes the page title.
danielebarchiesi@0 121 // Thus, we must explicitly set the page title to be the node title.
danielebarchiesi@0 122 $uri = entity_uri('taxonomy_term', $term);
danielebarchiesi@0 123
danielebarchiesi@0 124 // Set the term path as the canonical URL to prevent duplicate content.
danielebarchiesi@0 125 drupal_add_html_head_link(array('rel' => 'canonical', 'href' => url($uri['path'], $uri['options'])), TRUE);
danielebarchiesi@0 126 // Set the non-aliased path as a default shortlink.
danielebarchiesi@0 127 drupal_add_html_head_link(array('rel' => 'shortlink', 'href' => url($uri['path'], array_merge($uri['options'], array('alias' => TRUE)))), TRUE);
danielebarchiesi@0 128
danielebarchiesi@0 129 // Trigger the main
danielebarchiesi@0 130 $build = taxonomy_term_show($term);
danielebarchiesi@0 131
danielebarchiesi@0 132 // Load my task plugin
danielebarchiesi@0 133 $task = page_manager_get_task('term_view');
danielebarchiesi@0 134
danielebarchiesi@0 135 // Load the term into a context.
danielebarchiesi@0 136 ctools_include('context');
danielebarchiesi@0 137 ctools_include('context-task-handler');
danielebarchiesi@0 138 $contexts = ctools_context_handler_get_task_contexts($task, '', array($term, $depth));
danielebarchiesi@0 139
danielebarchiesi@0 140 if (empty($contexts)) {
danielebarchiesi@0 141 return drupal_not_found();
danielebarchiesi@0 142 }
danielebarchiesi@0 143
danielebarchiesi@0 144 // Build the full output using the configured CTools plugin.
danielebarchiesi@0 145 $output = ctools_context_handler_render($task, '', $contexts, array($term->tid));
danielebarchiesi@0 146 if ($output !== FALSE) {
danielebarchiesi@0 147 return $output;
danielebarchiesi@0 148 }
danielebarchiesi@0 149
danielebarchiesi@0 150 // Try loading an override plugin.
danielebarchiesi@0 151 foreach (module_implements('page_manager_override') as $module) {
danielebarchiesi@0 152 $call = $module . '_page_manager_override';
danielebarchiesi@0 153 if (($rc = $call('term_view')) && function_exists($rc)) {
danielebarchiesi@0 154 return $rc($node);
danielebarchiesi@0 155 }
danielebarchiesi@0 156 }
danielebarchiesi@0 157
danielebarchiesi@0 158 // Otherwise, fall back to replicating the output normally generated by
danielebarchiesi@0 159 // taxonomy_term_page().
danielebarchiesi@0 160
danielebarchiesi@0 161 // Build breadcrumb based on the hierarchy of the term.
danielebarchiesi@0 162 $current = (object) array(
danielebarchiesi@0 163 'tid' => $term->tid,
danielebarchiesi@0 164 );
danielebarchiesi@0 165 // @todo This overrides any other possible breadcrumb and is a pure hard-coded
danielebarchiesi@0 166 // presumption. Make this behavior configurable per vocabulary or term.
danielebarchiesi@0 167 $breadcrumb = array();
danielebarchiesi@0 168 while ($parents = taxonomy_get_parents($current->tid)) {
danielebarchiesi@0 169 $current = array_shift($parents);
danielebarchiesi@0 170 $breadcrumb[] = l($current->name, 'taxonomy/term/' . $current->tid);
danielebarchiesi@0 171 }
danielebarchiesi@0 172 $breadcrumb[] = l(t('Home'), NULL);
danielebarchiesi@0 173 $breadcrumb = array_reverse($breadcrumb);
danielebarchiesi@0 174 drupal_set_breadcrumb($breadcrumb);
danielebarchiesi@0 175 drupal_add_feed('taxonomy/term/' . $term->tid . '/feed', 'RSS - ' . $term->name);
danielebarchiesi@0 176
danielebarchiesi@0 177 if ($nids = taxonomy_select_nodes($term->tid, TRUE, variable_get('default_nodes_main', 10))) {
danielebarchiesi@0 178 $nodes = node_load_multiple($nids);
danielebarchiesi@0 179 $build += node_view_multiple($nodes);
danielebarchiesi@0 180 $build['pager'] = array(
danielebarchiesi@0 181 '#theme' => 'pager',
danielebarchiesi@0 182 '#weight' => 5,
danielebarchiesi@0 183 );
danielebarchiesi@0 184 }
danielebarchiesi@0 185 else {
danielebarchiesi@0 186 $build['no_content'] = array(
danielebarchiesi@0 187 '#prefix' => '<p>',
danielebarchiesi@0 188 '#markup' => t('There is currently no content classified with this term.'),
danielebarchiesi@0 189 '#suffix' => '</p>',
danielebarchiesi@0 190 );
danielebarchiesi@0 191 }
danielebarchiesi@0 192 return $build;
danielebarchiesi@0 193 }
danielebarchiesi@0 194
danielebarchiesi@0 195 /**
danielebarchiesi@0 196 * Callback to get arguments provided by this task handler.
danielebarchiesi@0 197 *
danielebarchiesi@0 198 * Since this is the term view and there is no UI on the arguments, we
danielebarchiesi@0 199 * create dummy arguments that contain the needed data.
danielebarchiesi@0 200 */
danielebarchiesi@0 201 function page_manager_term_view_get_arguments($task, $subtask_id) {
danielebarchiesi@0 202 return array(
danielebarchiesi@0 203 array(
danielebarchiesi@0 204 'keyword' => 'term',
danielebarchiesi@0 205 'identifier' => page_manager_term_view_get_type() == 'multiple' ? t('Term(s) being viewed') : t('Term being viewed'),
danielebarchiesi@0 206 'id' => 1,
danielebarchiesi@0 207 'name' => page_manager_term_view_get_type() == 'multiple' ? 'terms' : 'term',
danielebarchiesi@0 208 'settings' => array('input_form' => 'tid', 'breadcrumb' => variable_get('page_manager_taxonomy_breadcrumb', TRUE)),
danielebarchiesi@0 209 'default' => '404',
danielebarchiesi@0 210 ),
danielebarchiesi@0 211 array(
danielebarchiesi@0 212 'keyword' => 'depth',
danielebarchiesi@0 213 'identifier' => t('Depth'),
danielebarchiesi@0 214 'id' => 1,
danielebarchiesi@0 215 'name' => 'string',
danielebarchiesi@0 216 'settings' => array(),
danielebarchiesi@0 217 ),
danielebarchiesi@0 218 );
danielebarchiesi@0 219 }
danielebarchiesi@0 220
danielebarchiesi@0 221 /**
danielebarchiesi@0 222 * Callback to get context placeholders provided by this handler.
danielebarchiesi@0 223 */
danielebarchiesi@0 224 function page_manager_term_view_get_contexts($task, $subtask_id) {
danielebarchiesi@0 225 return ctools_context_get_placeholders_from_argument(page_manager_term_view_get_arguments($task, $subtask_id));
danielebarchiesi@0 226 }
danielebarchiesi@0 227
danielebarchiesi@0 228 /**
danielebarchiesi@0 229 * Settings page for this item.
danielebarchiesi@0 230 */
danielebarchiesi@0 231 function page_manager_term_view_settings($form, &$form_state) {
danielebarchiesi@0 232 // This passes thru because the setting can also appear on the main Panels
danielebarchiesi@0 233 // settings form. If $settings is an array it will just pick up the default.
danielebarchiesi@0 234 $settings = isset($form_state->update_values) ? $form_state->update_values : array();
danielebarchiesi@0 235 return page_manager_term_view_admin_settings($form, $settings);
danielebarchiesi@0 236 }
danielebarchiesi@0 237
danielebarchiesi@0 238 /**
danielebarchiesi@0 239 * Copy form values into the page cache.
danielebarchiesi@0 240 */
danielebarchiesi@0 241 function page_manager_term_view_settings_submit(&$form, &$form_state) {
danielebarchiesi@0 242 $form_state['page']->update_values = $form_state['values'];
danielebarchiesi@0 243 }
danielebarchiesi@0 244
danielebarchiesi@0 245 /**
danielebarchiesi@0 246 * Save when the page cache is saved.
danielebarchiesi@0 247 */
danielebarchiesi@0 248 function page_manager_term_view_save($subtask, $cache) {
danielebarchiesi@0 249 if (isset($cache->update_values)) {
danielebarchiesi@0 250 variable_set('page_manager_term_view_type', $cache->update_values['page_manager_term_view_type']);
danielebarchiesi@0 251 variable_set('page_manager_taxonomy_breadcrumb', $cache->update_values['page_manager_taxonomy_breadcrumb']);
danielebarchiesi@0 252 }
danielebarchiesi@0 253 }
danielebarchiesi@0 254
danielebarchiesi@0 255 /**
danielebarchiesi@0 256 * Provide a setting to the Panels administrative form.
danielebarchiesi@0 257 */
danielebarchiesi@0 258 function page_manager_term_view_admin_settings($form, $settings = array()) {
danielebarchiesi@0 259 if (empty($settings)) {
danielebarchiesi@0 260 $settings = array(
danielebarchiesi@0 261 'page_manager_term_view_type' => page_manager_term_view_get_type(),
danielebarchiesi@0 262 'page_manager_taxonomy_breadcrumb' => variable_get('page_manager_taxonomy_breadcrumb', TRUE),
danielebarchiesi@0 263 );
danielebarchiesi@0 264 }
danielebarchiesi@0 265
danielebarchiesi@0 266 $form['page_manager_term_view_type'] = array(
danielebarchiesi@0 267 '#type' => 'radios',
danielebarchiesi@0 268 '#title' => t('Allow multiple terms on taxonomy/term/%term'),
danielebarchiesi@0 269 '#options' => array('single' => t('Single term'), 'multiple' => t('Multiple terms')),
danielebarchiesi@0 270 '#description' => t('By default, Drupal allows multiple terms as an argument by separating them with commas or plus signs. If you set this to single, that feature will be disabled.') . ' ' . t('This feature does not currently work and is disabled.'),
danielebarchiesi@0 271 '#default_value' => $settings['page_manager_term_view_type'],
danielebarchiesi@0 272 // @todo -- fix this
danielebarchiesi@0 273 '#disabled' => TRUE,
danielebarchiesi@0 274 );
danielebarchiesi@0 275 $form['page_manager_taxonomy_breadcrumb'] = array(
danielebarchiesi@0 276 '#title' => t('Inject hierarchy of first term into breadcrumb trail'),
danielebarchiesi@0 277 '#type' => 'checkbox',
danielebarchiesi@0 278 '#default_value' => $settings['page_manager_taxonomy_breadcrumb'],
danielebarchiesi@0 279 '#description' => t('If checked, taxonomy term parents will appear in the breadcrumb trail.'),
danielebarchiesi@0 280 );
danielebarchiesi@0 281
danielebarchiesi@0 282 return $form;
danielebarchiesi@0 283 }
danielebarchiesi@0 284
danielebarchiesi@0 285 /**
danielebarchiesi@0 286 * Callback to enable/disable the page from the UI.
danielebarchiesi@0 287 */
danielebarchiesi@0 288 function page_manager_term_view_enable($cache, $status) {
danielebarchiesi@0 289 variable_set('page_manager_term_view_disabled', $status);
danielebarchiesi@0 290
danielebarchiesi@0 291 // Set a global flag so that the menu routine knows it needs
danielebarchiesi@0 292 // to set a message if enabling cannot be done.
danielebarchiesi@0 293 if (!$status) {
danielebarchiesi@0 294 $GLOBALS['page_manager_enabling_term_view'] = TRUE;
danielebarchiesi@0 295 }
danielebarchiesi@0 296 }
danielebarchiesi@0 297
danielebarchiesi@0 298 function page_manager_term_view_get_type() {
danielebarchiesi@0 299 // $view_type = variable_get('page_manager_term_view_type', 'multiple');
danielebarchiesi@0 300 // Revert to just allowing single.
danielebarchiesi@0 301 $view_type = 'single';
danielebarchiesi@0 302
danielebarchiesi@0 303 return $view_type;
danielebarchiesi@0 304 }
danielebarchiesi@0 305
danielebarchiesi@0 306 /**
danielebarchiesi@0 307 * Provide a nice administrative summary of the page so an admin can see at a
danielebarchiesi@0 308 * glance what this page does and how it is configured.
danielebarchiesi@0 309 */
danielebarchiesi@0 310 function page_manager_term_view_admin_summary($task, $subtask) {
danielebarchiesi@0 311 $task_name = page_manager_make_task_name($task['name'], $subtask['name']);
danielebarchiesi@0 312
danielebarchiesi@0 313 $rows[] = array(
danielebarchiesi@0 314 array('class' => array('page-summary-label'), 'data' => t('Path')),
danielebarchiesi@0 315 array('class' => array('page-summary-data'), 'data' => 'taxonomy/term/%term'),
danielebarchiesi@0 316 array('class' => array('page-summary-operation'), 'data' => ''),
danielebarchiesi@0 317 );
danielebarchiesi@0 318
danielebarchiesi@0 319 $rows[] = array(
danielebarchiesi@0 320 array('class' => array('page-summary-label'), 'data' => t('Access')),
danielebarchiesi@0 321 array('class' => array('page-summary-data'), 'data' => t('This page is publicly accessible.')),
danielebarchiesi@0 322 array('class' => array('page-summary-operation'), 'data' => ''),
danielebarchiesi@0 323 );
danielebarchiesi@0 324
danielebarchiesi@0 325 $menu = t('No menu entry');
danielebarchiesi@0 326
danielebarchiesi@0 327 $rows[] = array(
danielebarchiesi@0 328 array('class' => array('page-summary-label'), 'data' => t('Menu')),
danielebarchiesi@0 329 array('class' => array('page-summary-data'), 'data' => $menu),
danielebarchiesi@0 330 array('class' => array('page-summary-operation'), 'data' => ''),
danielebarchiesi@0 331 );
danielebarchiesi@0 332
danielebarchiesi@0 333 if (page_manager_term_view_get_type() == 'multiple') {
danielebarchiesi@0 334 $message = t('Multiple terms may be used, separated by , or +.');
danielebarchiesi@0 335 }
danielebarchiesi@0 336 else {
danielebarchiesi@0 337 $message = t('Only a single term may be used.');
danielebarchiesi@0 338 }
danielebarchiesi@0 339
danielebarchiesi@0 340 $rows[] = array(
danielebarchiesi@0 341 array('class' => array('page-summary-label'), 'data' => t('%term')),
danielebarchiesi@0 342 array('class' => array('page-summary-data'), 'data' => $message),
danielebarchiesi@0 343 array('class' => array('page-summary-operation'), 'data' => ''),
danielebarchiesi@0 344 );
danielebarchiesi@0 345
danielebarchiesi@0 346 if (variable_get('page_manager_taxonomy_breadcrumb', TRUE)) {
danielebarchiesi@0 347 $message = t('Breadcrumb trail will contain taxonomy term hierarchy');
danielebarchiesi@0 348 }
danielebarchiesi@0 349 else {
danielebarchiesi@0 350 $message = t('Breadcrumb trail will not contain taxonomy term hiearchy.');
danielebarchiesi@0 351 }
danielebarchiesi@0 352
danielebarchiesi@0 353 $rows[] = array(
danielebarchiesi@0 354 array('class' => array('page-summary-label'), 'data' => t('Breadcrumb')),
danielebarchiesi@0 355 array('class' => array('page-summary-data'), 'data' => $message),
danielebarchiesi@0 356 array('class' => array('page-summary-operation'), 'data' => ''),
danielebarchiesi@0 357 );
danielebarchiesi@0 358
danielebarchiesi@0 359 $output = theme('table', array(), $rows, array('id' => 'page-manager-page-summary'));
danielebarchiesi@0 360 return $output;
danielebarchiesi@0 361 }
danielebarchiesi@0 362
danielebarchiesi@0 363 /**
danielebarchiesi@0 364 * Callback to determine if a page is accessible.
danielebarchiesi@0 365 *
danielebarchiesi@0 366 * @param $task
danielebarchiesi@0 367 * The task plugin.
danielebarchiesi@0 368 * @param $subtask_id
danielebarchiesi@0 369 * The subtask id
danielebarchiesi@0 370 * @param $contexts
danielebarchiesi@0 371 * The contexts loaded for the task.
danielebarchiesi@0 372 * @return
danielebarchiesi@0 373 * TRUE if the current user can access the page.
danielebarchiesi@0 374 */
danielebarchiesi@0 375 function page_manager_term_view_access_check($task, $subtask_id, $contexts) {
danielebarchiesi@0 376 return user_access('access content');
danielebarchiesi@0 377 }