cforge-2.0.x-dev/modules/cforge_events/cforge_events.module
modules/cforge_events/cforge_events.module
<?php
/**
* @file
* Hooks for cforge_events.
*/
use Drupal\Core\Access\AccessResult;
/**
* Implements hook_node_access().
*
* Use the node's anonaccess flag to determine anon access to a given event.
*/
function cforge_events_node_access($node, $op, $account) {
if ($node->getEntityTypeId() == 'event' && $op == 'view') {
// Or $account->hasPermission('administer nodes').
if ($account->isAnonymous() && !cforge_node_get_publiconly($node->id())) {
return AccessResult::forbidden()->cachePerPermissions();
}
}
return AccessResult::neutral();
}
/**
* Implements hook_form_FORM_ID_alter().
* @note when https://www.drupal.org/project/drupal/issues/2836054 drops we'll do this a different way.
*/
function cforge_events_form_node_event_form_alter(&$form, $form_state) {
if ($form['date']['widget'][0]['value']['#type'] == 'datelist') {
$form['date']['widget'][0]['value']['#date_year_range'] = '2023:2024';
$form['date']['widget'][0]['value']['#date_date_callbacks'][] = ['\Drupal\cforge\Secure', 'dateAfterNow'];
}
elseif ($form['date']['widget'][0]['value']['#type'] == 'datetime') {
$form['date']['widget'][0]['value']['#attributes']['min'] = date('Y-m-d');
$form['date']['widget'][0]['value']['#attributes']['max'] = date('Y-m-d', strtotime('+1 year'));
}
}
