diff --git a/app/Classes/Link.php b/app/Classes/Link.php index 838ba5e..da6569e 100644 --- a/app/Classes/Link.php +++ b/app/Classes/Link.php @@ -29,7 +29,7 @@ class Link private string $title; - public function __construct(protected string $url, protected ?string $innerHtml, protected ?Bundle $bundle = null) + public function __construct(protected string $url, protected ?string $innerHtml = null, protected ?Bundle $bundle = null) { } @@ -141,7 +141,7 @@ public function title(): string public function toArray(): array { if ($this->bundle !== null) { - $existingData = $this->bundle->metadata('links')->get($this->url, []); + $existingData = $this->bundle->metadata('links')->get($this->url, [], false); if (!empty($existingData['checked']) && Carbon::parse($existingData['checked'])->gt(now()->subMonth())) { return $existingData; @@ -191,7 +191,7 @@ public function toHtmlElement(): HtmlElement 'rel' => $data['rel'], 'title' => $data['title'], 'class' => $data['classes'], - ], $this->innerHtml); + ], $this->innerHtml ?? $this->url); } /** diff --git a/app/Classes/MetadataManager.php b/app/Classes/MetadataManager.php index 397c7d6..229a011 100644 --- a/app/Classes/MetadataManager.php +++ b/app/Classes/MetadataManager.php @@ -117,9 +117,13 @@ public function merge(array $array) * @param mixed $default The default value to return if the key does not exist. * @return mixed The value of the specified key, or the default value. */ - public function get($key, $default = null) + public function get($key, $default = null, bool $respectDots = true) { - return data_get($this->content, $key, $default); + if ($respectDots) { + return data_get($this->content, $key, $default); + } else { + return $this->content[$key] ?? $default; + } } /** diff --git a/app/Services/BundleRenderers/Renderers/BaseRenderer.php b/app/Services/BundleRenderers/Renderers/BaseRenderer.php index 017c5f2..9758bdb 100644 --- a/app/Services/BundleRenderers/Renderers/BaseRenderer.php +++ b/app/Services/BundleRenderers/Renderers/BaseRenderer.php @@ -4,6 +4,7 @@ use App\Classes\AttachmentsManager; use App\Classes\Bundle; +use App\Classes\Link; use App\Services\BundleRenderers\Contracts\RendersBundle; use Carbon\Carbon; use Exception; @@ -93,6 +94,15 @@ protected function shareCommonDataWithView(): void data_set($this->viewData, 'siteTitle', $this->bundle->getSiteTitle()); data_set($this->viewData, 'articleTitle', $this->bundle->getArticleTitle()); data_set($this->viewData, 'bundle', $this->bundle); + + if (!empty($this->bundle->metadata('metadata')->get('links.Page originale'))) { + $url = $this->bundle->metadata('metadata')->get('links.Page originale')[0]; + $link = (new Link($url, null, $this->bundle))->toArray(); + + $link['url'] = $url; + + data_set($this->viewData, 'mainLink', $link); + } } protected function handlePagination() diff --git a/resources/css/article-list.css b/resources/css/article-list.css index 35b7fee..41b7795 100644 --- a/resources/css/article-list.css +++ b/resources/css/article-list.css @@ -13,6 +13,7 @@ .article-list { color: #6c7a89; box-shadow: 0 1px 1rem #000; background: #01010c radial-gradient(at bottom center, #00101f, #000614, #01010c) no-repeat; + position: relative; .article-card { font-size: 1rem; diff --git a/resources/views/article-card.blade.php b/resources/views/article-card.blade.php index 4a96e93..e50cc1b 100644 --- a/resources/views/article-card.blade.php +++ b/resources/views/article-card.blade.php @@ -3,14 +3,21 @@ @if (!empty($cover)) {!! $cover !!} @endif + + @if(!empty($mainLink) && $mainLink['isDead']) +
+ Lien mort depuis le {{ Carbon\Carbon::parse($mainLink['checked'])->format('d/m/Y') }} +
+ @endif +

{!! $bundle->getArticleTitle() !!}

- @if (!empty($date)) + @if (!empty($date))

- @endif - @if (!empty($section)) + @endif + @if (!empty($section))

{!! $section->getArticleTitle() !!}

- @endif + @endif
diff --git a/resources/views/article.blade.php b/resources/views/article.blade.php index b8eeadb..c6b40f6 100644 --- a/resources/views/article.blade.php +++ b/resources/views/article.blade.php @@ -6,6 +6,15 @@ @if (empty($bundle->metadata()->get('hide_title')))

{{ $articleTitle }}

@endif + + @if(!empty($mainLink)) +

{!! $mainLink['url'] !!}

+ @endif + @if (!empty($date)) @endif