Zobacz pełną wersję : [Rozwiązane] Intro image poniżej tytułu
Witam,
we wcześniejszej wersji joomla intro image było zawsze wewnątrz artykułu, w joomla 4 widzę, że intro image jest powyżej tytułu. Czy jest jakaś szansa by to zmienić?
/majan
siristru
17-05-2022, 12:35
Tak... ale to może zależeć po prostu od szablonu.
Prostym sposobem jest nadpisanie widoku artykułu szablonem.
Czy robiłeś to kiedyś sam? Jak nie to Cię poinstruuję.
Przyznam się bez bicia, że nie mam doświadczenia w nadpisywaniu widoku artykułu czy nawet samego szablonu. Cały szablon tworzę w TeampleToaster potem go importuje i ewentualnie poprawiam kodowanie w CSS. Gdybyś mógł pomóc, to będę wdzięczny. Możemy ewentualnie zgadać się PRIV
/majan
siristru
17-05-2022, 15:13
To prosta sprawa :)
Sprawdź czy masz plik w lokalizacji:
ROOT/templates/<twoj-szablon>/html/com_content/article/default.php
Jeśli nie masz to skopiuj go tam z lokalizacji:
ROOT/components/com_content/tmpl/article/default.php
Blok odpowiedzialny za wyświetlenie obrazka głównego artykułu:
<?php echo LayoutHelper::render('joomla.content.full_image', $this->item); ?>
A blok tytułu:
<?php if ($params->get('show_title')) : ?>
<div class="page-header">
<<?php echo $htag; ?> itemprop="headline">
<?php echo $this->escape($this->item->title); ?>
</<?php echo $htag; ?>>
<?php if ($this->item->state == ContentComponent::CONDITION_UNPUBLISHED) : ?>
<span class="badge bg-warning text-light"><?php echo Text::_('JUNPUBLISHED'); ?></span>
<?php endif; ?>
<?php if ($isNotPublishedYet) : ?>
<span class="badge bg-warning text-light"><?php echo Text::_('JNOTPUBLISHEDYET'); ?></span>
<?php endif; ?>
<?php if ($isExpired) : ?>
<span class="badge bg-warning text-light"><?php echo Text::_('JEXPIRED'); ?></span>
<?php endif; ?>
</div>
<?php endif; ?>
Odpowiednio przenieś linię z obrazkiem tam gdzie Ci to pasuje. Kod dla Joomla 4.
Mam to zrobić z poziomu zaplecza joomla czy z poziomu ftp?
siristru
17-05-2022, 18:44
Przez klienta FTP. Chyba, że masz już ten plik w tej lokalizacji w szablonie, wtedy można przez admina... ale mi jest zawsze wygodniej przez FTP.
Nie jestem pewien ale wydaje mi się, że kod który podałeś odnosi się do full image, czyli do Ilustracja pełnego tekstu, a mi zależy na ilustracji wprowadzenia.
siristru
18-05-2022, 11:31
Przepraszam, moja wina. Masz rację, oto dla widoku kategorii:
ROOT/components/com_content/tmpl/category/blog_item.php
<?php echo LayoutHelper::render('joomla.content.intro_image', $this->item); ?>
A tytuł:
<?php echo LayoutHelper::render('joomla.content.blog_style_de fault_item_title', $this->item); ?>
Plik skopiuj do:
ROOT/templates/<twoj-szablon>/html/com_content/category/blog_item.php
Nie bardzo rozumiem, czy mam zamienić linijkę ?
<?php echo LayoutHelper::render('joomla.content.intro_image', $this->item); ?>
na
<?php echo LayoutHelper::render('joomla.content.blog_style_de fault_item_title', $this->item); ?>
siristru
18-05-2022, 12:18
Zamienić... miejscami :) Przennieść jedno nad drugie.
perfect działa :) nie wiem czemu tekst nie opływa obrazka ale moze do tego dojdę :) chyba że masz pomysł?
- - - Updated - - -
perfect działa :) nie wiem czemu tekst nie opływa obrazka ale moze do tego dojdę :) chyba że masz pomysł?
siristru
18-05-2022, 13:07
To jest kod dla tego obrazka:
$params = $displayData->params;
$images = json_decode($displayData->images);
if (empty($images->image_intro))
{
return;
}
$imgclass = empty($images->float_intro) ? $params->get('float_intro') : $images->float_intro;
$layoutAttr = [
'src' => $images->image_intro,
'alt' => empty($images->image_intro_alt) && empty($images->image_intro_alt_empty) ? false : $images->image_intro_alt,
];
?>
<figure class="<?php echo $this->escape($imgclass); ?> item-image">
<?php if ($params->get('link_intro_image') && ($params->get('access-view') || $params->get('show_noauth', '0') == '1')) : ?>
<a href="<?php echo Route::_(RouteHelper::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)); ?>" itemprop="url" title="<?php echo $this->escape($displayData->title); ?>">
<?php echo LayoutHelper::render('joomla.html.image', array_merge($layoutAttr, ['itemprop' => 'thumbnailUrl'])); ?>
</a>
<?php else : ?>
<?php echo LayoutHelper::render('joomla.html.image', array_merge($layoutAttr, ['itemprop' => 'thumbnail'])); ?>
<?php endif; ?>
<?php if (isset($images->image_intro_caption) && $images->image_intro_caption !== '') : ?>
<figcaption class="caption"><?php echo $this->escape($images->image_intro_caption); ?></figcaption>
<?php endif; ?>
</figure>
I tutaj mamy:
$imgclass = empty($images->float_intro) ? $params->get('float_intro') : $images->float_intro;
Zobacz czy jest ustawiony float dla obrazka w ustawieniach globalnych dla artykułu czy też w samym artykule - sprawdź czy właściwa klasa jest przypisana do obrazka i czy jest obsługiwana w stylach CSS jako float.
Jeżeli nie wiesz jak to zrobić - wyślij mi na PW link do strony, pomogę.
W ustawieniach globalnych dla artykułu w pozycji Klasa obrazu wprowadzenia jest ustawione left, ale nie działa chyba...
ustawiłem swoje klasy
figure.small_img.item-image > img
{
height:250px;
float:left;
margin-right: 25px;
}
figure.big_img.item-image
{
text-align:center;
}
Nie wiem czy jest to zrobione zgodnie z sztuką, ale działa. Jeśli powinno być to inaczej to jestem otwarty na sugestie
siristru
19-05-2022, 10:07
No i git :)
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!