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

use CfLandingPageCfg;

class CfLandingPageComposer
{

    public function compose($view)
    {
        $viewData = $view->getData();
        $page = $viewData['object'];

        $data = CfLandingPageCfg::with(array(
            'tiles' => function ($q) {
                $q->full()->with('image', 'sideImage')->orderBy("website_objects.position", "asc");
            }, 'bgImage', 'leftBoxBgImage', 'rightBoxBgImage'
        ))->where('entry_id', $page->id)->first();


        //Inline styles
        $data->highlightBgStyles = "";
        if ($data->bgImage) {
            $data->highlightBgStyles .= "background: url('".getMediaUrl($data->bgImage->filename,
                    '1920x670')."') no-repeat; background-size: cover; background-position: center;";
        } else {
            if ($data->background_color) {
                $data->highlightBgStyles .= "background-color: ".$data->background_color.";";
            }
        }

        $data->leftBoxBgStyles = "";
        if ($data->leftBoxBgImage) {
            $data->leftBoxBgStyles .= "background: url('".getMediaUrl($data->leftBoxBgImage->filename,
                    '660x520')."') no-repeat; background-size: cover; background-position: center;";
        } else {
            if ($data->left_box_bg_color) {
                $data->leftBoxBgStyles .= "background-color: ".$data->left_box_bg_color.";";
            }
        }
        if ($data->left_box_opacity != null) {
            $data->leftBoxBgStyles .= 'opacity: '.($data->left_box_opacity / 100).';';
        }

        $data->rightBoxBgStyles = "";
        if ($data->rightBoxBgImage) {
            $data->rightBoxBgStyles .= "background: url('".getMediaUrl($data->rightBoxBgImage->filename,
                    '660x520')."') no-repeat; background-size: cover; background-position: center;";
        } else {
            if ($data->right_box_bg_color) {
                $data->rightBoxBgStyles .= "background-color: ".$data->right_box_bg_color.";";
            }
        }
        if ($data->right_box_opacity != null) {
            $data->rightBoxBgStyles .= 'opacity: '.($data->right_box_opacity / 100).';';
        }

        $cssStyles = "";
        $elements = ['p', 'h1', 'h2', 'h3', 'h4', 'h5'];
        $applyTo = ".landing-page .page-highlight .box";
        if ($data->left_box_forecolor) {
            foreach ($elements as $i => $element) {
                if ($i > 0) {
                    $cssStyles .= ',';
                }
                $cssStyles .= $applyTo.'.left-box '.$element;
            }
            $cssStyles .= ' { color: '.$data->left_box_forecolor.'; } ';
        }
        if ($data->right_box_forecolor) {
            foreach ($elements as $i => $element) {
                if ($i > 0) {
                    $cssStyles .= ',';
                }
                $cssStyles .= $applyTo.'.right-box '.$element;
            }
            $cssStyles .= ' { color: '.$data->right_box_forecolor.'; } ';
        }

        /*
        $metaData = new \stdClass();
        if ($page->meta_title) {
            $metaData->meta_title = $page->meta_title;
        } else {
            $metaData->meta_title = cut_string(strip_tags($page->title), 100);
        }
        if ($page->meta_description) {
            $metaData->meta_description = $page->meta_description;
        } else {
            $metaData->meta_description = cut_string(strip_tags($page->summary), 200);
        }
        if ($page->no_index) {
            $metaData->no_index = true;
        }

        $metaData->meta_keywords = $page->meta_keywords;
        */
        $view->with(array(
            'data' => $data,
            'css' => $cssStyles
            //  'metaData'       => $metaData
        ));
    }
}
