@php
// blade za elemente, ki vsebujejo samo besedilo, npr. text, title, page_title, summary, cta_button, more_link
// vsi ti elementi dobijo tiny editor, ki je za določene tipe dokumentov morda omejen (npr. v cta_button ne moreš izbrati slogov h2, h3, ...)
/** @var App\Models\Page $page */
/** @var App\Models\Page $parent */
/** @var App\Models\Page $grandparent */
// $mode je lahko 'html', 'plain' ali 'readonly'
$mode = $mode ?? 'html';
$element_type = $page->element_type_key;
$content_type = App\Classes\Prefs::$web_page_element_types[$element_type]['content_type'] ?? 'text';
$style = ''; // potrebujemo, če je $context == 'mail'
$tag = 'div';
if($element_type == 'page_title' and (
in_array($parent?->element_type, App\Classes\Prefs::$web_page_children_types)
or in_array($grandparent?->element_type, App\Classes\Prefs::$web_page_children_types)
)) {
$tag = 'h1';
if($context == 'mail') {
$style = 'line-height: 1.3em; margin: 0; width: 100%;font-size: 2.50em;';
if(App\Classes\Site::KarpoSi()) { $style.= 'font-weight: 600; font-size: 3.0em;'; }
}
} else if($element_type == 'title') {
$tag = 'h2';
if($context == 'mail') {
$style = 'line-height: 1.3em; margin: 0; width: 100%;font-size: 1.80em;';
if(App\Classes\Site::KarpoSi()) { $style.= 'font-weight: 600; font-size: 2.2em;'; }
}
} else if($element_type == 'subtitle' or $element_type == 'page_title') {
$tag = 'h3';
if($context == 'mail') {
$style = 'line-height: 1.3em; margin: 0; width: 100%;font-size: 1.60em;';
if(App\Classes\Site::KarpoSi()) { $style.= 'font-weight: 600; font-size: 1.8em;'; }
}
} else if($element_type == 'subsubtitle') {
$tag = 'h4';
if($context == 'mail') {
$style = 'line-height: 1.3em; margin: 0; width: 100%;font-size: 1.45em;';
if(App\Classes\Site::KarpoSi()) { $style.= 'font-weight: 600; font-size: 1.2em;'; }
}
} else if($element_type == 'faq_question_text') {
$tag = 'h4';
if($context == 'mail') {
$style = 'line-height: 1.3em; margin: 0; width: 100%;font-size: 1.45em;'; // TODO: prilagodi format, ker mora biti manjši, kot je sicer h4
if(App\Classes\Site::KarpoSi()) { $style.= 'font-weight: 600; font-size: 1.2em;'; } // TODO: prilagodi format, ker mora biti manjši, kot je sicer h4
}
// } else if($element_type == 'more_link') {
// $tag = 'a';
}
if($page->is_content_copy) {
// besedilo je vezano na stran, torej v bistvu na naslov strani (ker ni nujno, da je na strani dejanski element z naslovom)
$converted_content = $page->content_page->getContent($content_type, $mode, convert: true);
$unconverted_content = $page->content_page->getContent($content_type, $mode, convert: false);
$converted_tooltip = $page->content_page->getContent('tooltip', $mode, convert: true);
$page_id = $page->content_page->id;
} else if(in_array($element_type, ['product_description', 'product_short_descr', 'product_highlights'])) {
$converted_content = $page->product_page->getContent($content_type, $mode, convert: true);
$unconverted_content = $page->product_page->getContent($content_type, $mode, convert: false);
$converted_tooltip = $page->product_page->getContent('tooltip', $mode, convert: true);
$page_id = $page->product_page->id;
} else {
$converted_content = $page->getContent(type: $content_type, mode: $mode, convert: true);
$unconverted_content = $page->getContent(type: $content_type, mode: $mode, convert: false);
$converted_tooltip = $page->getContent(type: 'tooltip', mode: $mode, convert: true);
$page_id = $page->id;
}
// če gre za naslov ali podnaslov in nimamo vsebine, poiščimo naslov ustrezne strani
if(is_null($converted_content) and in_array($element_type, ['page_title', 'title', 'subtitle', 'subsubtitle'])) {
/** @var App\Models\Page $current_page */
if($content_type == 'menu_item_title') {
$title_page = $page;
} else {
$title_page = $page->parent;
}
$title = $title_page->title;
while($title_page and !$title) {
if($title_page->id == $current_page->id) {
break;
}
if(!$title_page->parent) {
break;
}
$title_page = $title_page->parent;
$title = $title_page->title;
}
// if($title_page->id != $current_page->id) {
// $tag = 'h4';
// }
$converted_content = $title_page->getContent($content_type, $mode, convert: true);
$unconverted_content = $title_page->getContent($content_type, $mode, convert: false);
$converted_tooltip = $title_page->getContent('tooltip', $mode, convert: true);
// $page_id = $title_page->id;
}
// dump($element_type,
// $page->id.'|'.$page->content_id.'|'.$page->parent_id.'|'.$page->parent?->id,
// $page->parent?->id.'|'.$page->parent?->content_id.'|'.$page->parent?->parent_id.'|'.$page->parent?->parent?->id,
// $page->parent?->parent?->id.'|'.$page->parent?->parent?->content_id.'|'.$page->parent?->parent?->parent_id.'|'.$page->parent?->parent?->parent?->id,
// $page->parent?->parent?->parent?->id.'|'.$page->parent?->parent?->parent?->content_id.'|'.$page->parent?->parent?->parent?->parent_id.'|'.$page->parent?->parent?->parent?->parent?->id,
// $page->parent?->parent?->parent?->parent?->id.'|'.$page->parent?->parent?->parent?->parent?->content_id.'|'.$page->parent?->parent?->parent?->parent?->parent_id.'|'.$page->parent?->parent?->parent?->parent?->parent?->id,
// );
if($element_type == 'more_link' and is_null($converted_content)) {
$converted_content = __('edit.content_templates.more_link.0');
$unconverted_content = __('edit.content_templates.more_link.0');
}
// if(filter_var($converted_content, FILTER_VALIDATE_EMAIL) !== false) {
// // besedilo je email, vstavimo ga v span z white-space nowrap, da se ne more deliti, če domena vsebuje pomišljaj
// $converted_content = ''.$converted_content.'';
// }
// določimo še inline style v primeru, da delamo mail
if(($context ?? null) == 'mail') {
if($classes['element_styles']['a'] ?? null) {
$converted_content = str_replace('icon_class ?? App\Classes\Prefs::$web_page_element_types[$page->element_type_key]['icon_class'] ?? null;
@endphp
{{-- komentar za lažje urejanje v Developer Tools - takoj za @endphp --}}
@if(!empty(App\Classes\Prefs::$web_edit_mode) or App::isLocal())
@endif
@if(/*$element_type == 'cta_button' && */ $icon_class)
@if(str_starts_with($icon_class, 'ms:'))
{{-- Material Symbols icons --}}
{{substr($icon_class, 3)}}{!! $content['text'] ?? null !!}
@else
{{-- IcoMoon liteness-icons --}}
{!! $content['text'] ?? null !!}
@endif
@endif
{{-- element za edit mode - če sploh smo v edit_mode; WARNING: znotraj taga ne sme biti presledkov, sicer brskalnik tega ne zazna kot :empty --}}
@if($edit_mode and !$page->combined_restrictions->contains('edit_text'))
<{{$tag}} class="mnm-edit-inline"
data-table-name="pages"
data-table-id="{{$page_id}}"
data-element_type="{{$element_type ?? ''}}"
data-content_type="{{$content_type ?? ''}}"
data-section="{{$section ?? ''}}"
style="{{ $style }}"
title="{{ $converted_tooltip }}"
>{!! $unconverted_content ?? null !!}{{$tag}}>
@endif
{{-- element za non-edit mode; WARNING: znotraj taga ne sme biti presledkov, sicer brskalnik tega ne zazna kot :empty --}}
<{{$tag}} class="{{ ($mode == 'html') ? 'mnm-non-edit-inline' : '' }}"
style="{{ $style }}"
title="{{ $converted_tooltip }}"
>{!! $converted_content ?? null !!}{{$tag}}>