33 lines
895 B
PHP
33 lines
895 B
PHP
|
<?php
|
||
|
|
||
|
namespace App\Services\BundleRenderers\Renderers;
|
||
|
|
||
|
use App\Classes\Bundle;
|
||
|
use Carbon\Carbon;
|
||
|
|
||
|
class BlogRenderer extends BaseRenderer
|
||
|
{
|
||
|
/**
|
||
|
* Renders a complete HTML view of the bundle
|
||
|
*/
|
||
|
public function render()
|
||
|
{
|
||
|
return view('article', [
|
||
|
'articleTitle' => $this->bundle->metadata()->get('title'),
|
||
|
'date' => Carbon::parse($this->bundle->metadata()->get('date'))->format('d/m/Y'),
|
||
|
'body' => $this->bundle->markdown()->render(),
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return a boolean value indicating if this creator in particular can
|
||
|
* create bundles for specified section
|
||
|
*/
|
||
|
public static function handles(Bundle $bundle): bool
|
||
|
{
|
||
|
$parts = preg_split('#/#', $bundle->getPath(), -1, PREG_SPLIT_NO_EMPTY);
|
||
|
|
||
|
return $parts && $parts[0] === 'blog' && count($parts) === 5;
|
||
|
}
|
||
|
}
|