File: D:/HostingSpaces/debout/debout.nl/app/Composers/CalloutBarComposer.php
<?php
namespace App\Composers;
use Illuminate\View\View;
class CalloutBarComposer
{
/**
* @param View $view
*/
public function compose(View $view)
{
$viewData = $view->getData();
$heading = $viewData['calloutBarHeading'] ?? $viewData['heading'] ?? '';
//1. Check for button data in component (blade),
//2. Check in button translation.
//First step that returns data, is used.
//Step 1
$buttonText = (isset($viewData['calloutBarButtonText'])) ? $viewData['calloutBarButtonText'] : null;
$buttonLink = (isset($viewData['calloutBarButtonLink'])) ? $viewData['calloutBarButtonLink'] : null;
//Step 2
if(isset($viewData['button']) && isset($viewData['button']->translation)) {
if (!$buttonText) $buttonText = $viewData['button']->translation->label ?: null;
if (!$buttonLink) $buttonLink = $viewData['button']->translation->url ?: null;
}
//1. Check for phone data in component (blade),
//2. Check in servicepoint translation.
//3 Check in config(), otherwise null
//First step that returns data, is used.
//Step 1
$phoneDisplay = (isset($viewData['phoneDisplay'])) ? $viewData['phoneDisplay'] : null;
$phoneCall = (isset($viewData['phoneCall'])) ? $viewData['phoneCall'] : null;
//Step 2
if(!$phoneCall || !$phoneDisplay) {
if (isset($viewData['servicepoint']) && $viewData['servicepoint']->translation) {
$phoneDisplay = $viewData['servicepoint']->translation->telephone_label;
$phoneCall = $viewData['servicepoint']->translation->telephone_url;
}
}
//Step 3
if(!$phoneCall) config('site.company_phone_call');
if(!$phoneDisplay) config('site.company_phone_display');
$view->with([
'heading' => $heading,
'buttonText' => $buttonText,
'buttonLink' => $buttonLink,
'phoneDisplay' => $phoneDisplay,
'phoneCall' => $phoneCall
]);
}
}