Commit | Line | Data |
---|---|---|
85a85fb1 AE |
1 | {if !$disableAds|isset}{assign var='disableAds' value=false}{/if} |
2 | ||
b9e122ff | 3 | <div class="contentItemList"> |
c6ded21e | 4 | {foreach from=$objects item='article' name='articles'} |
5c7960a3 | 5 | {if $article->getArticleContent()} |
bc6a64d7 | 6 | <article class="contentItem contentItemMultiColumn"> |
27a18c8b | 7 | <div class="contentItemLink"> |
2bc265c8 AE |
8 | <div class="contentItemImage contentItemImageLarge"> |
9 | <img | |
10 | class="contentItemImageElement" | |
11 | src="{if $article->getTeaserImage()}{$article->getTeaserImage()->getThumbnailLink('medium')}{else}{$__wcf->getStyleHandler()->getStyle()->getCoverPhotoURL()}{/if}" | |
12 | height="{if $article->getTeaserImage()}{@$article->getTeaserImage()->getThumbnailHeight('medium')}{else}{@$__wcf->getStyleHandler()->getStyle()->getCoverPhotoHeight()}{/if}" | |
13 | width="{if $article->getTeaserImage()}{@$article->getTeaserImage()->getThumbnailWidth('medium')}{else}{@$__wcf->getStyleHandler()->getStyle()->getCoverPhotoWidth()}{/if}" | |
14 | loading="lazy" | |
15 | alt=""> | |
16 | ||
b9e122ff AE |
17 | {hascontent} |
18 | <div class="contentItemBadges"> | |
19 | {content} | |
20 | {if $article->isDeleted}<span class="badge label red contentItemBadge contentItemBadgeIsDeleted">{lang}wcf.message.status.deleted{/lang}</span>{/if} | |
ac85d37d | 21 | {if !$article->isPublished()}<span class="badge label green contentItemBadge contentItemBadgeIsDisabled">{lang}wcf.message.status.disabled{/lang}</span>{/if} |
e9217d79 | 22 | {if $article->isNew()}<span class="badge label contentItemBadge contentItemBadgeNew">{lang}wcf.message.new{/lang}</span>{/if} |
ebd7b480 AE |
23 | |
24 | {event name='contentItemBadges'} | |
b9e122ff | 25 | {/content} |
a5a4f02d | 26 | </div> |
b9e122ff AE |
27 | {/hascontent} |
28 | </div> | |
29 | ||
30 | <div class="contentItemContent"> | |
31 | {if $article->hasLabels()} | |
32 | <div class="contentItemLabels"> | |
33 | {foreach from=$article->getLabels() item=label} | |
d158b05a | 34 | {@$label->render('contentItemLabel')} |
b9e122ff | 35 | {/foreach} |
a5a4f02d | 36 | </div> |
b9e122ff AE |
37 | {/if} |
38 | ||
55508d81 | 39 | <h2 class="contentItemTitle"><a href="{$article->getLink()}" class="contentItemTitleLink">{$article->getTitle()}</a></h2> |
b9e122ff AE |
40 | |
41 | <div class="contentItemDescription"> | |
42 | {@$article->getFormattedTeaser()} | |
43 | </div> | |
44 | </div> | |
27a18c8b | 45 | </div> |
b9e122ff AE |
46 | |
47 | <div class="contentItemMeta"> | |
37dff6c8 | 48 | <span class="contentItemMetaImage"> |
b9e122ff | 49 | {@$article->getUserProfile()->getAvatar()->getImageTag(32)} |
37dff6c8 | 50 | </span> |
b9e122ff AE |
51 | |
52 | <div class="contentItemMetaContent"> | |
53 | <div class="contentItemMetaAuthor"> | |
37dff6c8 | 54 | {@$article->getUserProfile()->getFormattedUsername()} |
a5a4f02d | 55 | </div> |
b9e122ff AE |
56 | <div class="contentItemMetaTime"> |
57 | {@$article->time|time} | |
0c968ac8 | 58 | </div> |
b9e122ff | 59 | </div> |
b20c6ed6 | 60 | |
b9e122ff | 61 | <div class="contentItemMetaIcons"> |
ec21ca41 AE |
62 | {if MODULE_LIKE && $__wcf->getSession()->getPermission('user.like.canViewLike') && $article->cumulativeLikes} |
63 | <div class="contentItemMetaIcon"> | |
b54fdcc0 | 64 | {include file='shared_topReaction' cachedReactions=$article->cachedReactions render='short'} |
ec21ca41 AE |
65 | </div> |
66 | {/if} | |
6abd2194 MW |
67 | {if $article->getDiscussionProvider()->getDiscussionCountPhrase()}{* empty phrase indicates that comments are disabled *} |
68 | <div class="contentItemMetaIcon"> | |
ab43711a | 69 | {icon name='comments'} |
6abd2194 MW |
70 | <span aria-label="{$article->getDiscussionProvider()->getDiscussionCountPhrase()}"> |
71 | {$article->getDiscussionProvider()->getDiscussionCount()} | |
72 | </span> | |
73 | </div> | |
74 | {/if} | |
75 | ||
4c184eb0 | 76 | {event name='contentItemMetaIcons'} |
b9e122ff AE |
77 | </div> |
78 | </div> | |
79 | </article> | |
5c7960a3 | 80 | {/if} |
85a85fb1 AE |
81 | |
82 | {if MODULE_WCF_AD && !$disableAds} | |
83 | {if $tpl[foreach][articles][iteration] === 1} | |
84 | {hascontent} | |
85 | <div class="contentItem contentItemAd"> | |
86 | {content}{@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.article.after1stArticle')}{/content} | |
87 | </div> | |
88 | {/hascontent} | |
89 | {else} | |
90 | {if $tpl[foreach][articles][iteration] % 2 === 0} | |
91 | {hascontent} | |
92 | <div class="contentItem contentItemAd"> | |
93 | {content}{@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.article.afterEvery2ndArticle')}{/content} | |
94 | </div> | |
95 | {/hascontent} | |
96 | {/if} | |
97 | ||
98 | {if $tpl[foreach][articles][iteration] % 3 === 0} | |
99 | {hascontent} | |
100 | <div class="contentItem contentItemAd"> | |
101 | {content}{@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.article.afterEvery3rdArticle')}{/content} | |
102 | </div> | |
103 | {/hascontent} | |
104 | {/if} | |
105 | ||
106 | {if $tpl[foreach][articles][iteration] % 5 === 0} | |
107 | {hascontent} | |
108 | <div class="contentItem contentItemAd"> | |
109 | {content}{@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.article.afterEvery5thArticle')}{/content} | |
110 | </div> | |
111 | {/hascontent} | |
112 | ||
113 | {if $tpl[foreach][articles][iteration] % 10 === 0} | |
114 | {hascontent} | |
115 | <div class="contentItem contentItemAd"> | |
116 | {content}{@$__wcf->getAdHandler()->getAds('com.woltlab.wcf.article.afterEvery10thArticle')}{/content} | |
117 | </div> | |
118 | {/hascontent} | |
119 | {/if} | |
120 | {/if} | |
121 | {/if} | |
122 | {/if} | |
a5a4f02d | 123 | {/foreach} |
b9e122ff | 124 | </div> |