function cms_content_sync_get_publish_changes_operations in CMS Content Sync 8
Same name and namespace in other branches
- 2.1.x cms_content_sync.module \cms_content_sync_get_publish_changes_operations()
- 2.0.x cms_content_sync.module \cms_content_sync_get_publish_changes_operations()
Returns operations for "push changes" action.
2 calls to cms_content_sync_get_publish_changes_operations()
- cms_content_sync_entity_operation_alter in ./
cms_content_sync.module - Implements hook_entity_operation_alter().
- cms_content_sync_form_menu_edit_form_alter in ./
cms_content_sync.module - Implements hook_form_menu_edit_form_alter().
File
- ./
cms_content_sync.module, line 1793 - Module file for cms_content_sync.
Code
function cms_content_sync_get_publish_changes_operations(EntityInterface $entity) {
if (!Drupal::currentUser()
->hasPermission('publish cms content sync changes')) {
return [];
}
$operations = [];
/** @var \Drupal\Core\Routing\RedirectDestinationInterface $redirect_destination */
$redirect_destination = Drupal::service('redirect.destination');
$flows = PushIntent::getFlowsForEntity($entity, PushIntent::PUSH_MANUALLY);
if (!count($flows)) {
return [];
}
foreach ($flows as $flow) {
$route_parameters = [
'flow_id' => $flow
->id(),
'entity' => $entity
->id(),
'entity_type' => $entity
->getEntityTypeId(),
];
$operations['publish_changes_' . $flow
->id()] = [
'title' => t('Push changes - %name', [
'%name' => $flow->name,
]),
'weight' => 150,
'url' => Url::fromRoute('cms_content_sync.publish_changes', $route_parameters),
'query' => $redirect_destination
->getAsArray(),
];
}
return $operations;
}