Uusimmat blogit ja artikkelit

Lisää sisältöjä

Funetin juhlavuosi: 40 vuotta toimintaa ja 35 vuotta internetissä

Tänä vuonna on kulunut 40 vuotta Funet-tietoverkon perustamisesta ja 35 vuotta Suomen liittymisestä maailmanlaajuiseen internetiin. Juhlavuottaan viettävä Funet voi olla ylpeä monista saavutuksistaan, eikä Suomen liittäminen internetiin ole niistä vähäisin.

Lue lisää »

EISCAT 3D -tutkajärjestelmä mullistaa ilmakehätutkimuksen

Pian valmistumassa olevan uuden EISCAT 3D -tutkajärjestelmän avulla saadaan revontulista kolmiulotteista kuvaa. Hanketta koordinoi Oulun yliopiston Sodankylän geofysiikan observatorio. CSC on hankkeessa tiiviisti mukana.

Lue lisää »

Poikkeustilasta pysyviin rakenteisiin

Korkeakoulujen IT-johtajien verkostot AAPA ja FUCIO sekä CSC kutsuivat korkeakoulujen pedagogiikan, opiskelun ja opetuksen tuen ja hallinnon sekä muut kiinnostuneet ideapankki.csc.fi -webinaariin kesäkuun lopussa.

Lue lisää »

Koronavirus laitetaan kuriin tieteen tietokantojen avulla

Koronavirus voidaan kukistaa kansainvälisellä yhteistyöllä ja tiedon jakamisella. Apuna ovat sähköiset tutkimusinfrastruktuurit. Suomi on jäsenenä näissä ja hyödyt ovat kiistattomat.

Lue lisää »
 
Virhe tapahtui prosessoidessa esitysmallia.
The following has evaluated to null or missing:
==> assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL)  [in template "10154#10192#411426" at line 10, column 32]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign viewURL = assetRenderer.getUR...  [in template "10154#10192#411426" at line 10, column 13]
----
1<#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet.tld"] /> 
2<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] /> 
3 
4<div class="kooste25 <@liferay_portlet.namespace />container"> 
5    <#list entries as entry> 
6        <#assign entry = entry /> 
7        <#assign assetRenderer = entry.getAssetRenderer() /> 
8        <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
9        <#if assetLinkBehavior != "showFullContent"> 
10            <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
11        </#if> 
12         
13         
14        <#if entry.getClassName() == "com.liferay.journal.kernel.model.JournalArticle"> 
15         
16            <#assign article = entry.getAssetRenderer().getArticle()/> 
17            <#assign document = saxReaderUtil.read(article.getContentByLocale(locale.toString())) /> 
18            <#assign categories = entry.getCategories() /> 
19            <#assign headline = document.valueOf("//dynamic-element[@name='Headline']/dynamic-content/text()") /> 
20            <#assign summary = htmlUtil.escape(assetRenderer.getSummary(locale)) /> 
21    
22            <div class="boksi"> 
23                <div class="article-content"> 
24        <#list categories as category> 
25                     
26                            <#assign categoryTitle = category.getTitle("en_US", true) /> 
27                            <#assign categoryClass = categoryTitle?lower_case/> 
28                            <#assign categoryClass = categoryClass?replace("[^\\d\\w]", "-", "r")/> 
29 
30                            <#assign categoryId = category.getCategoryId() /> 
31                         
32                     
33                     
34                            <#if category.getTitle(locale.toString(), true) == "Artikkeli" || category.getTitle(locale.toString(), true) == "Article"> 
35                                <div class="ac-${categoryClass}">${category.getTitle(locale.toString(), true)}</div> 
36                            </#if> 
37                     
38                    </#list> 
39                <h3><a href="${viewURL}" target="_blank">${headline}</a></h3> 
40              
41                     
42               
43                   <section class="text"> 
44 
45                        <small><@getMetadataField fieldName="publish-date" /></small> 
46                        <p class="article-summary">${stringUtil.shorten(htmlUtil.stripHtml(summary), 200)}</p> 
47 
48                      <p><a class="readmore" href="${viewURL}" target="_blank"><@liferay.language key="read-more" /> »</a></p>   
49                 
50                    </section>  
51                     
52                
53                </div> 
54         
55                     
56             
57                 
58            </div> 
59        </#if> 
60 
61    <#if entry.getClassName() == "com.liferay.blogs.kernel.model.BlogsEntry"> 
62        <div class="boksi"> 
63	 
64		<#assign curEntry = entry /> 
65        <#assign categories = entry.getCategories() /> 
66	 
67		<#assign bloglink = "https://www.csc.fi/web/blog/post/-/blogs/"> 
68		<#assign urltitle = entry.getAssetRenderer().getUrlTitle() /> 
69	 
70		 
71        <div class="blog-content"> 
72 
73           <#list categories as category> 
74                     
75                    <#assign categoryTitle = category.getTitle("en_US", true) /> 
76                    <#assign categoryClass = categoryTitle?lower_case/> 
77                    <#assign categoryClass = categoryClass?replace("[^\\d\\w]", "-", "r")/> 
78 
79                    <#assign categoryId = category.getCategoryId() /> 
80                    <#assign portletURL = renderResponse.createRenderURL() /> 
81                    ${portletURL.setParameter("resetCur", "TRUE")} 
82                    ${portletURL.setParameter("categoryId", categoryId?string)} 
83                     
84                    <#if category.getTitle(locale.toString(), true) == "Blogi" || category.getTitle(locale.toString(), true) == "Blog"> 
85                        <div class="ac-${categoryClass}">${category.getTitle(locale.toString(), true)}</div> 
86                    </#if> 
87                     
88            </#list> 
89            <h3><a href="${bloglink}${urltitle}" target="_blank">${htmlUtil.escape(curEntry.getTitle())}</a></h3> 
90            
91			<section class="text"> 
92				<#assign summary = curEntry.getDescription() /> 
93 
94			 
95				 
96				<p class="article-summary">${stringUtil.shorten(htmlUtil.stripHtml(summary), 200)}</p> 
97              <p><a class="readmore" href="${bloglink}${urltitle}" target="_blank"><@liferay.language key="read-more" /> »</a></p>  
98                 
99			</section> 
100		</div> 
101	 
102        
103	</div> 
104    </#if> 
105    </#list> 
106</div> <!--csc-article-list--> 
107 
108<script type="text/javascript"> 
109    var container = document.querySelector('.csc-article-list'); 
110    var msnry; 
111 
112    // initialize Masonry after all images have loaded 
113    imagesLoaded( container, function() { 
114        msnry = new Masonry( container ); 
115    }); 
116</script> 
117 
118<#macro getMetadataField fieldName> 
119    <#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
120    <span class="metadata-entry metadata-" ${fieldName}"> 
121        <#assign dateFormat = "dd.MM.yyyy" /> 
122 
123        <#if fieldName == "author"> 
124            <@liferay.language key="by" /> ${portalUtil.getUserName(assetRenderer.getUserId(), 
125        assetRenderer.getUserName())} 
126        <#elseif fieldName == "categories"> 
127            <@liferay_ui["asset-categories-summary"] 
128            className=entry.getClassName() 
129            classPK=entry.getClassPK() 
130            portletURL=renderResponse.createRenderURL() 
131            /> 
132        <#elseif fieldName == "create-date"> 
133        ${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)} 
134        <#elseif fieldName == "expiration-date"> 
135        ${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)} 
136        <#elseif fieldName == "modified-date"> 
137        ${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)} 
138        <#elseif fieldName == "priority"> 
139        ${entry.getPriority()} 
140        <#elseif fieldName == "publish-date" && entry.getPublishDate()??> 
141        ${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)} 
142        <#elseif fieldName == "tags"> 
143            <@liferay_ui["asset-tags-summary"] 
144            className=entry.getClassName() 
145            classPK=entry.getClassPK() 
146            portletURL=renderResponse.createRenderURL() 
147            /> 
148        <#elseif fieldName == "view-count"> 
149            <@liferay_ui["icon"] 
150            image="history" 
151            /> 
152 
153        ${entry.getViewCount()} <@liferay.language key="views" /> 
154        </#if> 
155    </span> 
156    </#if> 
157</#macro>