You are here

function _fasttoggle_create_node_link in Fasttoggle 8.3

Create fastoggle node action link function.

1 call to _fasttoggle_create_node_link()
fasttoggle_node_links_alter in ./fasttoggle.module
Implements hook_node_links_alter().

File

./fasttoggle.module, line 20
Main file for the fasttoggle module.

Code

function _fasttoggle_create_node_link(NodeInterface $entity, $toggle, $link_name) {
  $config = \Drupal::config('fasttoggle.settings');
  $label_style = $config
    ->get('label_style');
  switch ($toggle) {
    case 'status':
      switch ($label_style) {
        case 0:
          $entity
            ->isPublished() ? $link_title = t('Published') : ($link_title = t('Not published'));
          break;
        case 1:
          $entity
            ->isPublished() ? $link_title = t('Unpublish') : ($link_title = t('Publish'));
          break;
      }
      break;
    case 'promote':
      switch ($label_style) {
        case 0:
          $entity
            ->isPromoted() ? $link_title = t('Promoted') : ($link_title = t('Not promoted'));
          break;
        case 1:
          $entity
            ->isPromoted() ? $link_title = t('Demote') : ($link_title = t('Promote'));
          break;
      }
      break;
    case 'sticky':
      switch ($label_style) {
        case 0:
          $entity
            ->isSticky() ? $link_title = t('Sticky') : ($link_title = t('Not sticky'));
          break;
        case 1:
          $entity
            ->isSticky() ? $link_title = t('Make not sticky') : ($link_title = t('Make sticky'));
          break;
      }
      break;
  }
  $link[$link_name] = [
    'title' => $link_title,
    'url' => Url::fromUserInput('/fasttoggle/node/' . $entity
      ->id() . '/' . $toggle),
    'attributes' => [
      'class' => [
        'use-ajax',
        'fasttoggle-node-' . $toggle,
      ],
    ],
  ];
  return $link[$link_name];
}