You are here

public function MyFavController::addFavJS in Favorites 8.2

Add a favorite.

1 string reference to 'MyFavController::addFavJS'
favorites.routing.yml in ./favorites.routing.yml
favorites.routing.yml

File

src/Controller/MyFavController.php, line 34
Contains Drupal\favorites\Controller\MyFavController.

Class

MyFavController
Class MyFavController.

Namespace

Drupal\favorites\Controller

Code

public function addFavJS() {
  global $base_url;
  if (empty($this->account
    ->id())) {
    return;
  }
  else {
    $uid = $this->account
      ->id();
  }
  $title = $_POST['title'];
  $path = $_POST['path'];
  $query = $_POST['query'];
  FavoriteStorage::deleteFav($this->account
    ->id(), $path, $query);
  FavoriteStorage::addFav($this->account
    ->id(), $path, $query, $title);
  $result = FavoriteStorage::getFavorites($uid);
  $message = '<ul>';
  foreach ($result as $favorite) {
    $favorite->path = \Drupal::service('path.alias_manager')
      ->getAliasByPath('/' . trim($favorite->path, '/'));
    if ($favorite->query != '') {
      $url = $base_url . $favorite->path . '?' . $favorite->query;
    }
    else {
      $url = $base_url . $favorite->path;
    }
    $url = Url::fromUri($url);
    $url_delete = Url::fromRoute('favorites.remove', [
      'fid' => $favorite->fid,
    ]);
    $message .= '<li>' . \Drupal::l($favorite->title, $url) . ' <span id="del-' . $favorite->fid . '">' . \Drupal::l('X', $url_delete) . '</span></li>';
  }
  $message .= '</ul>';
  $response = new AjaxResponse();
  $response
    ->addCommand(new HtmlCommand('#myfavlist', $message));
  return $response;
}