<?php namespace App\Libs\Composers\CF;

use PressRelease;
use DB;
use Lang;
use CfDefaultTemplateCfg;

class CfPressReleaseComposer
{
    use \App\Libs\Composers\SidebarComposerTrait,
        \App\Libs\Composers\BarComposerTrait,
        \App\Libs\Composers\CF\CfRelatedComposerTrait;

    public function compose($view)
    {
        $year = date('Y');
        $data = $view->getData();
        $page = $data['object'];

        $templateData = CfDefaultTemplateCfg::where('entry_id', $page->id)->first();
        $template = config('backoffice.generic.page.templates.2.'.$page->template);

        $years = array();
        $availYears = DB::table('press_releases')
            ->select(DB::raw('DISTINCT YEAR(date) as year'))
            ->join('website_objects', 'website_objects.object_id', '=', 'press_releases.id')
            ->where('website_objects.website_id', 2)
            ->where('website_objects.object_type', 'PressRelease')
            ->orderBy('year', 'desc')
            ->get();
        array_push($years, array("id" => "all", "label" => Lang::get('frontend.all')));
        foreach ($availYears as $year) {
            array_push($years, array("id" => $year->year, "label" => $year->year));
        }

        $this->composeSidebar($view, \CfDefaultTemplateCfg::query());
        $this->composeBars($view, $templateData);
        $this->composeRelated($view, $templateData);

        $view->with(array(
            'filters' => array(
                array("id" => "year", "name" => Lang::get('frontend.year'), "values" => $years)
            )
        ));
    }
}
