Skip to content

Commit

Permalink
Option display thumbnail only on Articles Widget
Browse files Browse the repository at this point in the history
  • Loading branch information
sonvnn committed Dec 24, 2024
1 parent 9060ce9 commit ff7733f
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 51 deletions.
107 changes: 56 additions & 51 deletions framework/elements/articles/articles.php
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@

// Image Options
$layout = $params->get('layout', 'classic');
$thumbnail_only = $params->get('thumbnail_only', 0);
$enable_image_cover = $params->get('enable_image_cover', 0);
$min_height = $params->get('min_height', 500);
$height = $params->get('height', '');
Expand Down Expand Up @@ -256,63 +257,67 @@
foreach ($items as $key => $item) {
$link = RouteHelper::getArticleRoute($item->slug, $item->catid, $item->language);
$media = '';
switch ($item->post_format) {
case 'gallery':
$gallery = (array) $item->params->get('astroid_article_gallery_items', array());
if (count($gallery)) {
$has_gallery = true;
$media = '<div id="astroid-articles-'.$item->id.'" class="as-slideshow-media carousel slide carousel-fade overflow-hidden'.$img_border_radius.'" data-bs-ride="carousel">';
$media .= '<div class="carousel-inner">';
$active = true;
foreach ($gallery as $gallery_item) {
$media .= '<div class="carousel-item'.($active ? ' active' : '').'" data-bs-interval="3000">';
$media .= '<a href="'.Route::_($link).'" title="'. $item->title . '">';
if ($enable_image_cover) {
$media .= '<div class="position-absolute top-0 start-0 end-0 bottom-0 astroid-image-overlay-cover">';
}
$media .= '<img src="'.$gallery_item->image.'" class="d-block w-100'.($enable_image_cover ? ' object-fit-cover w-100 h-100' : '').'" alt="'.$gallery_item->title.'">';
if ($enable_image_cover) {
if ($thumbnail_only && !empty($item->image_thumbnail)) {
$media = $media = '<img class="'. ($media_position == 'bottom' ? 'order-2 ' : '') . ($media_position == 'left' || $media_position == 'right' ? 'object-fit-cover w-100 h-100 ' : '') . ($params->get('card_style', '') == 'none' || $border_radius !== '' ? '' : 'card-img-'. $media_position) .'" src="'. $item->image_thumbnail .'" alt="'.$item->title.'">';
} else {
switch ($item->post_format) {
case 'gallery':
$gallery = (array) $item->params->get('astroid_article_gallery_items', array());
if (count($gallery)) {
$has_gallery = true;
$media = '<div id="astroid-articles-'.$item->id.'" class="as-slideshow-media carousel slide carousel-fade overflow-hidden'.$img_border_radius.'" data-bs-ride="carousel">';
$media .= '<div class="carousel-inner">';
$active = true;
foreach ($gallery as $gallery_item) {
$media .= '<div class="carousel-item'.($active ? ' active' : '').'" data-bs-interval="3000">';
$media .= '<a href="'.Route::_($link).'" title="'. $item->title . '">';
if ($enable_image_cover) {
$media .= '<div class="position-absolute top-0 start-0 end-0 bottom-0 astroid-image-overlay-cover">';
}
$media .= '<img src="'.$gallery_item->image.'" class="d-block w-100'.($enable_image_cover ? ' object-fit-cover w-100 h-100' : '').'" alt="'.$gallery_item->title.'">';
if ($enable_image_cover) {
$media .= '</div>';
}
$media .= '</a>';
$media .= '</div>';
$active = false;
}
$media .= '</a>';
$media .= '</div>';
$active = false;
$media .= '</div>';
}
$media .= '</div>';
$media .= '</div>';
}
break;
case 'video':
$video_url = $item->params->get('astroid_article_video_url', '');
$video_local_url = $item->params->get('astroid_article_video_local', '');
$video_type = $item->params->get('astroid_article_video_type', '');
$video_src = Article::getVideoSrc($video_url);
if ($video_type !== 'local') {
if ($video_src) {
if ($video_type == 'vimeo') {
$video_src .= '?autoplay=1&loop=1&muted=1&autopause=0&title=0&byline=0&portrait=0&controls=0';
}
$media = '<div class="entry-video ratio ratio-16x9 overflow-hidden'.$img_border_radius.'">';
$media .= '<iframe src="' . $video_src . '" title="'.$item->title.'" allowfullscreen></iframe>';
$media .= '</div>';
if ($video_type == 'youtube' && !empty($item->image_thumbnail)) {
$media = '<img class="'. ($media_position == 'bottom' ? 'order-2 ' : '') . ($media_position == 'left' || $media_position == 'right' ? 'object-fit-cover w-100 h-100 ' : '') . ($params->get('card_style', '') == 'none' || $border_radius !== '' ? '' : 'card-img-'. $media_position) .'" src="'. $item->image_thumbnail .'" alt="'.$item->title.'">';
break;
case 'video':
$video_url = $item->params->get('astroid_article_video_url', '');
$video_local_url = $item->params->get('astroid_article_video_local', '');
$video_type = $item->params->get('astroid_article_video_type', '');
$video_src = Article::getVideoSrc($video_url);
if ($video_type !== 'local') {
if ($video_src) {
if ($video_type == 'vimeo') {
$video_src .= '?autoplay=1&loop=1&muted=1&autopause=0&title=0&byline=0&portrait=0&controls=0';
}
$media = '<div class="entry-video ratio ratio-16x9 overflow-hidden'.$img_border_radius.'">';
$media .= '<iframe src="' . $video_src . '" title="'.$item->title.'" allowfullscreen></iframe>';
$media .= '</div>';
if ($video_type == 'youtube' && !empty($item->image_thumbnail)) {
$media = '<img class="'. ($media_position == 'bottom' ? 'order-2 ' : '') . ($media_position == 'left' || $media_position == 'right' ? 'object-fit-cover w-100 h-100 ' : '') . ($params->get('card_style', '') == 'none' || $border_radius !== '' ? '' : 'card-img-'. $media_position) .'" src="'. $item->image_thumbnail .'" alt="'.$item->title.'">';
}
}
} elseif (!empty($video_local_url)) {
$document->loadVideoBG();
$media = '<a href="'.Route::_($link).'" title="'. $item->title . '"><div class="as-article-video-local as-image-cover astroid-image-overlay-cover'.(!$enable_image_cover ? ' ratio ratio-16x9' : '').'" data-as-video-bg="'.Uri::base('true').'/images/'.$video_local_url.'"'.(!empty($item->image_thumbnail) ? ' data-as-video-poster="'.$item->image_thumbnail.'"' : '').'></div></a>';
}
break;
case 'audio':
$renderer = new FileLayout('blog.audio', JPATH_LIBRARIES . '/astroid/framework/frontend');
$media = $renderer->render(['article' => $item]);
break;
default:
if (!empty($item->image_thumbnail)) {
$media = '<img class="'. ($media_position == 'bottom' ? 'order-2 ' : '') . ($media_position == 'left' || $media_position == 'right' ? 'object-fit-cover w-100 h-100 ' : '') . ($params->get('card_style', '') == 'none' || $border_radius !== '' ? '' : 'card-img-'. $media_position) .'" src="'. $item->image_thumbnail .'" alt="'.$item->title.'">';
}
} elseif (!empty($video_local_url)) {
$document->loadVideoBG();
$media = '<a href="'.Route::_($link).'" title="'. $item->title . '"><div class="as-article-video-local as-image-cover astroid-image-overlay-cover'.(!$enable_image_cover ? ' ratio ratio-16x9' : '').'" data-as-video-bg="'.Uri::base('true').'/images/'.$video_local_url.'"'.(!empty($item->image_thumbnail) ? ' data-as-video-poster="'.$item->image_thumbnail.'"' : '').'></div></a>';
}
break;
case 'audio':
$renderer = new FileLayout('blog.audio', JPATH_LIBRARIES . '/astroid/framework/frontend');
$media = $renderer->render(['article' => $item]);
break;
default:
if (!empty($item->image_thumbnail)) {
$media = '<img class="'. ($media_position == 'bottom' ? 'order-2 ' : '') . ($media_position == 'left' || $media_position == 'right' ? 'object-fit-cover w-100 h-100 ' : '') . ($params->get('card_style', '') == 'none' || $border_radius !== '' ? '' : 'card-img-'. $media_position) .'" src="'. $item->image_thumbnail .'" alt="'.$item->title.'">';
}
break;
break;
}
}
$item_image_cover = !empty($item->image_thumbnail) && ($enable_image_cover || $layout == 'overlay');
if ($item_image_cover && ($item->post_format !== 'video' || $video_type !== 'local')) {
Expand Down
1 change: 1 addition & 0 deletions framework/elements/articles/articles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@
<option value="classic">ASTROID_WIDGET_LAYOUT_CLASSIC_LABEL</option>
<option value="overlay">ASTROID_WIDGET_LAYOUT_IMG_OVERLAY_LABEL</option>
</field>
<field astroidgroup="image_options" name="thumbnail_only" type="astroidradio" astroid-switch="true" default="0" label="ASTROID_WIDGET_IMAGE_THUMBNAIL_ONLY"/>
<field astroidgroup="image_options" name="img_border_radius" type="astroidlist" label="ASTROID_WIDGET_BORDER_RADIUS_LABEL" default="">
<option value="">ASTROID_NONE</option>
<option value="rounded">TPL_ASTROID_ICON_STYLE_ROUNDED</option>
Expand Down
1 change: 1 addition & 0 deletions language/en-GB/en-GB.astroid.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1570,6 +1570,7 @@ ASTROID_WIDGET_ORDERING_FEATURED="Featured Only"
ASTROID_WIDGET_ORDERING_ALPHABET_ASCENDING="Alphabet Ascending"
ASTROID_WIDGET_ORDERING_ALPHABET_DESCENDING="Alphabet Descending"
ASTROID_WIDGET_ORDERING_RANDOM="Random"
ASTROID_WIDGET_IMAGE_THUMBNAIL_ONLY="Thumbnail Only"
ASTROID_WIDGET_LIMIT_LABEL="Limit"
ASTROID_WIDGET_ARTICLES_LIMIT_DESC="Set the number of articles you want to display."
ASTROID_WIDGET_ARTICLES_ORDERING_DESC="Select articles ordering from the list."
Expand Down

0 comments on commit ff7733f

Please sign in to comment.