/**
* @param Article $article
* @throws HttpException
* @return Meta
*/
public function generateMetaTags(Article $article)
{
$meta = new Meta(array('title_limit' => 120, 'description_limit' => 200, 'image_limit' => 5));
if ($article) {
$meta->meta('DC.Title', $article->getTitle());
$meta->meta('DC.Description', $article->getAbstract());
$meta->meta('DC.Source', $article->getJournal()->getTitle());
!is_null($article->getJournal()) && $meta->meta('DC.Source.ISSN', $article->getJournal()->getIssn());
!is_null($article->getIssue()) && $meta->meta('DC.Source.Issue', $article->getIssue()->getNumber() . "");
$meta->meta('DC.Source.URI', $this->journalService->generateUrl($article->getJournal()));
!is_null($article->getIssue()) && $meta->meta('DC.Source.Volume', $article->getIssue()->getVolume());
!is_null($article->getPubdate()) && $meta->rawMeta('DC.Date.created', $article->getPubdate()->format('Y-m-d'));
// scheme="ISO8601"
!is_null($article->getPubdate()) && $meta->rawMeta('DC.Date.dateSubmitted', $article->getPubdate()->format('Y-m-d'));
// scheme="ISO8601"
!is_null($article->getPubdate()) && $meta->rawMeta('DC.Date.issued', $article->getPubdate()->format('Y-m-d'));
//scheme="ISO8601"
!is_null($article->getPubdate()) && $meta->rawMeta('DC.Date.modified', $article->getPubdate()->format('Y-m-d'));
// scheme="ISO8601"
!is_null($article->getPubdate()) && $meta->rawMeta('article:modified_time', '<meta content="' . $article->getPubdate()->format('Y-m-d') . '" property="article:modified_time"/>');
!is_null($article->getPubdate()) && $meta->rawMeta('article:publish_time', '<meta content="' . $article->getPubdate()->format('Y-m-d') . '" property="article:publish_time"/>');
$meta->rawMeta('og:url', '<meta content="' . $this->generateUrl($article) . '" property="og:url"/>');
$meta->rawMeta('og:title', '<meta content="' . $article->getTitle() . '" property="og:title"/>');
$meta->rawMeta('og:type', '<meta content="article" property="og:type"/>');
$meta->meta('DC.Type', 'Text.Serial.Journal');
!is_null($article->getSection()) && $meta->meta('DC.Type.articleType', $article->getSection()->getTitle());
$meta->meta('DC.Contributor.Sponsor', '');
$meta->meta('DC.Identifier', $article->getId());
$meta->meta('DC.Identifier.pageNumber', $article->getFirstPage() . '-' . $article->getLastPage());
$meta->meta('DC.Identifier.DOI', $article->getDoi());
$meta->meta('DC.Identifier.URI', $this->generateUrl($article));
$meta->meta('DC.Language', $article->getPrimaryLanguage() . ' scheme="ISO639-1"');
$meta->meta('DC.Rights', '');
$articleAuthors = $article->getArticleAuthors();
$authors = [];
foreach ($articleAuthors as $articleAuthor) {
$authors[] = $articleAuthor->getAuthor()->getFullName();
}
$meta->meta('DC.Creator.PersonalName', $authors);
$meta->meta('citation_author', $authors);
$meta->meta('citation_author_publisher', '');
$meta->meta('citation_title', $article->getTitle());
!is_null($article->getPubdate()) && $meta->meta('citation_date', $article->getPubdate()->format('Y-m-d'));
!is_null($article->getIssue()) && $meta->meta('citation_volume', $article->getIssue()->getVolume());
!is_null($article->getIssue()) && $meta->meta('citation_issue', $article->getIssue()->getNumber());
$meta->meta('citation_firstpage', $article->getFirstPage());
$meta->meta('citation_lastpage', $article->getLastPage());
$meta->meta('citation_doi', $article->getDoi());
$meta->meta('citation_abstract_html_url', $this->generateUrl($article));
$meta->meta('citation_language', $article->getPrimaryLanguage());
$meta->meta('citation_keywords', $article->getKeywords());
foreach ($this->getFullTextFiles($article) as $file) {
$meta->meta('citation_pdf_url', $file->getFile());
}
}
return $meta;
}