Info Center Main Carousel

Resources Overview Tabbed Content

Asset Publisher

Nonprofit Management
December 10, 2019
It’s that time of year again when we can expect to experience some inclement weather conditions across the states. When severe weather interferes with the day-to-day operati...
Read MoreAboutWinter is Upon Us - Prepare your Nonprofit Now
Nonprofit Management
September 11, 2019
What is a KPI? A Key Performance Indicator (KPI) is “a measurable value that demonstrates how effectively a nonprofit (or another type of organization) is achieving its key ...
Read MoreAboutHow KPIs Benefit a Nonprofits Success
Nonprofit Management
March 19, 2019
From 2007 to 2016, the nonprofit sector experienced substantial growth in employment and a range of industries reaped the benefits of this growth. During this time, nonprofi...
Read MoreAbout​​​​​​​Job Growth and Resilience in the Nonprofit Sector
Nonprofit Management
May 03, 2017
Don’t miss out on this NEW self-paced training to introduce you and your nonprofit team to COA Accreditation.Presented by The Council on Accreditation COA, a nonprofit accre...
Read MoreAboutOn-Demand Training: Introduction to COA Accreditation
HR Knowledge
May 03, 2017
Are you keeping up with the Trump administration’s quick moves to change laws, enforcement actions and regulations to support business and our economy?Presented by ThinkHR, ...
Read MoreAboutFree Webinar: HR Compliance Impact with Washington’s First Moves
Nonprofit Management
May 02, 2017
Have you ever critiqued a coworker because of their overbearing tendencies or their abrasive personality? Don’t worry… you’re not alone in your frustrations. However, learni...
Read MoreAboutMaking the Most of Your Staff’s Diversity
Nonprofit Management
January 28, 2014
There comes a time at every nonprofit that conversation must shift—whether naturally or through force—to future leadership needs. But often, founder’s ...
Read MoreAboutUnderstanding Your Future Leadership Needs
Nonprofit Management
April 24, 2014
n an interesting Op-Ed in The Chronicle of Philanthropy, the magazine predicted nonprofits will lose workers to the for-profit sector if they don't feel a sense of p...
Read MoreAboutCould Nonprofits Lose Employees to Business?
Nonprofit Management
August 08, 2014
The 17th annual catalog of The Nonprofit Times Power & Influence Top 50 shows an increased emphasis on the effective implementation of a more civil society. Those el...
Read MoreAboutCongratulations to the Nonprofits Honored as a Part of The Nonprofit Times Power & Influence Top 50

Asset Publisher

An error occurred while processing the template.
?substring(...) argument #2 had invalid value: The index must be at least 0, but was -1.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign strToReplace = blogsEntryLoca...  [in template "6242803#6242849#6281901" at line 79, column 1]
----
1<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] /> 
2<#assign liferay_theme = taglibLiferayHash["/META-INF/liferay-theme.tld"] /> 
3<@liferay_theme["defineObjects"]/> 
4 
5<#assign blogsEntryLocalService = serviceLocator.findService("com.liferay.blogs.kernel.service.BlogsEntryLocalService")> 
6<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")> 
7<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
8<#assign documentService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
9 
10 
11<#assign namespace = randomNamespace /> 
12<#assign smallImageURL = ""> 
13<#assign imageUrl = ""> 
14<#assign videoUrl = ""> 
15<#assign subHeading = ""> 
16<#assign blogClassName="com.liferay.blogs.kernel.model.BlogsEntry"> 
17<#assign documentClassName = "com.liferay.document.library.kernel.model.DLFileEntry"> 
18<#assign vocabularyNameToUse = "Topic"> 
19<#assign resetCurParam = "false"> 
20<#if renderRequest.getParameter("resetCur")?? && renderRequest.getParameter("resetCur")??> 
21    <#if renderRequest.getParameter("resetCur") == "true"> 
22        <#assign resetCurParam = "false"> 
23    </#if> 
24</#if> 
25<#assign categoryIdParam = ""> 
26<#if renderRequest.getParameter("categoryId")?? && renderRequest.getParameter("categoryId")??> 
27    <#assign categoryIdParam = renderRequest.getParameter("categoryId")> 
28</#if> 
29<#assign pagination = "none"> 
30<#assign pageinationDelta = 5> 
31 
32<#attempt> 
33    <#assign pagination = portletPreferences["paginationType"]?first > 
34    <#recover> 
35</#attempt> 
36 
37<#attempt> 
38    <#assign pageinationDelta = portletPreferences["delta"]?first?number > 
39    <#recover> 
40</#attempt> 
41 
42<#assign portletId = themeDisplay.getPortletDisplay().getId()> 
43<#assign siteGroupID = themeDisplay.getSiteGroupId()> 
44 
45<#assign vocabularyIdToUse = 0> 
46<#attempt> 
47    <#assign vocabularyIdToUse = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getSiteGroupId(), vocabularyNameToUse).getVocabularyId()> 
48        <#recover> 
49</#attempt> 
50 
51<script> 
52function redirectToPage(pageURL){ 
53	var pathValue = window.location.pathname; 
54	pageURL = pageURL.replace(" ","-").replace("'","-").replace("&",""); 
55	var rest = pathValue.substring(0, pathValue.lastIndexOf("/") + 1); 
56	var last = pathValue.substring(pathValue.lastIndexOf("/") + 1, pathValue.length); 
57	var pathValue = pathValue.replace(last,pageURL); 
58	//console.log("pathValue : " +pathValue);	 
59	window.location.href = pathValue; 
60
61</script> 
62 
63<script> 
64$(document).ready(function() { 
65    $('.${namespace}asset-img .video-click-popup').click(function() { 
66        showVideoPlayerModal($(this).attr('href')); 
67    }); 
68}); 
69</script> 
70 
71<div id="${namespace}info-wrapper" class="info-wrapper"> 
72<#assign fullUid = ""> 
73<#list entries as entry> 
74<#assign firstChar = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())?last_index_of("/")> 
75<#assign lastChar = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())?index_of("?")> 
76 
77<#assign firstSlash = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())?index_of("/")> 
78<#assign lastSlash = firstChar> 
79<#assign strToReplace = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())?substring(firstSlash+1, lastSlash)> 
80 
81<#assign fullUid = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())?substring(firstChar+1, lastChar)> 
82<#assign dlfileEntry2 = documentService.getDLFileEntryByUuidAndGroupId(fullUid, siteGroupID)> 
83<#assign imageFolderID = dlfileEntry2.getFolderId()> 
84<#assign imageTitle = dlfileEntry2.getTitle()> 
85<#assign replaceStr = "documents"+"/"+siteGroupID+"/"+imageFolderID+"/"+imageTitle> 
86 
87    <#assign dateToUse = entry.getCreateDate()> 
88	<#assign entry = entry /> 
89 
90	<#assign assetRenderer = entry.getAssetRenderer() /> 
91     
92	<#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
93 
94    <#assign dlfileModalPopup = ""> 
95 
96	<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
97    <#assign linkTarget = ""> 
98	<#if assetLinkBehavior != "showFullContent"> 
99		<#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
100		<#assign viewURL = "/c/blogs/find_entry?entryId=" + entry.getClassPK()> 
101	</#if> 
102	<#assign blogCategoies = assetCategoryService.getCategories(entry.getClassName(), entry.getClassPK())> 
103	<#assign entryClassName = entry.getClassName()> 
104	 
105	<#if (entryClassName == blogClassName)> 
106		<#assign blogEntry = blogsEntryLocalService.getEntry(entry.getClassPK())> 
107		<#assign dateToUse = blogEntry.getDisplayDate()> 
108		<#assign imageUrl = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())> 
109		 
110	<#assign fixUrl = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("image-url")?replace(strToReplace, replaceStr)> 
111		<#assign imageUrl = fixUrl> 
112		 
113		<#assign videoUrl = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("video-url")> 
114		<#assign subHeading = blogsEntryLocalService.getEntry(entry.getClassPK()).getExpandoBridge().getAttribute("sub-heading")> 
115		<#if blogEntry.isSmallImage() > 
116			<#assign smallImageURL = blogEntry.getEntryImageURL(themeDisplay)?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())> 
117		</#if> 
118	<#elseif entryClassName == documentClassName> 
119	    <#attempt> 
120    	    <#assign dlFileEntry = documentService.getDLFileEntry(entry.getClassPK())> 
121    	    <#if dlFileEntry.getExpandoBridge().hasAttribute("image-url")> 
122    	        <#assign imageUrl = dlFileEntry.getExpandoBridge().getAttribute("image-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())> 
123    	   	${imageUrl} 
124            </#if> 
125            <#if dlFileEntry.getExpandoBridge().hasAttribute("icon-url")> 
126    	        <#assign smallImageURL = dlFileEntry.getExpandoBridge().getAttribute("icon-url")?replace("[$SITE_GROUP_ID$]", themeDisplay.getSiteGroupId())> 
127    	    </#if> 
128    	    <#if dlFileEntry.getExpandoBridge().hasAttribute("display-title")> 
129    	        <#assign documentDisplayTitle = dlFileEntry.getExpandoBridge().getAttribute("display-title")> 
130    	        <#if documentDisplayTitle?has_content> 
131    	            <#assign entryTitle = htmlUtil.escape(documentDisplayTitle) /> 
132    	        </#if> 
133    	    </#if> 
134    	    <#if dlFileEntry.getExpandoBridge().hasAttribute("modal-popup-function")> 
135    	        <#assign dlfileModalPopup = dlFileEntry.getExpandoBridge().getAttribute("modal-popup-function")> 
136    	    </#if> 
137    	     
138    	    <#if !dlfileModalPopup?has_content> 
139    	        <#assign viewURL = themeDisplay.getPortalURL() + "/c/document_library/get_file?uuid=" + dlFileEntry.getUuid() + "&groupId=" + themeDisplay.getScopeGroupId()> 
140    	        <#assign linkTarget = "target=\"_blank\""> 
141    	    </#if> 
142	    <#recover> 
143	         
144	    </#attempt> 
145	</#if> 
146	<#assign linkTarget = "target=\"_blank\""> 
147	 
148<div class="asset-wrapper"> 
149    <#if dlfileModalPopup?has_content> 
150        <div class="${namespace}asset-img asset-img"> 
151            <img src="${imageUrl}" onclick="${dlfileModalPopup}" class="asset-image" > 
152        </div> 
153    <#else> 
154        <#if (imageUrl != "") || (videoUrl != "")> 
155    	<div class="${namespace}asset-img asset-img"> 
156            <#if (videoUrl != "")> 
157        		<div class="video-modal video-click-popup" href="${videoUrl}"> 
158        	<#else> 
159        	    <#if (imageUrl != "")> 
160        	        <a href="${viewURL}" target="_blank" ${linkTarget}> 
161        	    </#if> 
162        	</#if> 
163    	 
164        	<#if (imageUrl != "")> 
165        		<img src="${imageUrl}" class="asset-image" > 
166        	</#if> 
167        	 
168        	<#if (videoUrl != "")> 
169        		</div> 
170        	<#else> 
171        	    <#if (imageUrl != "")> 
172        	        </a> 
173        	    </#if> 
174        	</#if> 
175    	</div> 
176        </#if> 
177    </#if> 
178<div class="asset-icon"> </div> 
179	<div class="asset-abstract"> 
180		<div class="lfr-meta-actions asset-actions"> 
181						<@getEditIcon /> 
182		</div> 
183<#assign categoryName= ""> 
184<#if entry.getCategories()?has_content> 
185    <#list entry.getCategories() as curCategory> 
186        <#if curCategory.getVocabularyId() == vocabularyIdToUse> 
187    		<#assign categoryName= curCategory.getName()> 
188    		<#break> 
189    	</#if> 
190    </#list> 
191</#if> 
192 
193<#attempt> 
194    <#if categoryIdParam?? && !validator.isNull(categoryIdParam) && validator.isNumber(categoryIdParam)> 
195        <#assign categoryName = assetCategoryService.getCategory(categoryIdParam?number).getName()> 
196    </#if> 
197    <#recover> 
198</#attempt> 
199 
200<#if categoryName?has_content> 
201    <div class="asset-category"> 
202        <span class="content-pillar" style="background-color: #707070;">${categoryName}</span>   
203    </div> 
204</#if> 
205		<div class="asset-title-image">	 
206			<#if (smallImageURL != "")> 
207				<img alt="" src="${smallImageURL}" /> 
208			</#if> 
209					 
210			<h3 class="title"> 
211			    <#if dlfileModalPopup?has_content> 
212			        <a onclick="${dlfileModalPopup}">${entryTitle}</a> 
213			    <#else> 
214			    	<a href="${viewURL}" ${linkTarget}>${entryTitle}</a> 
215			    </#if> 
216			</h3> 
217		</div> 
218 
219	 
220<div class="date-and-author"><span class="asset-date"> 
221				${dateUtil.getDate(dateToUse, "MMMM dd, yyyy ", locale)} 
222			</span><!--/ 
223			<span class="asset-author"> 
224				<@liferay.language key="written-by" /> ${htmlUtil.escape(portalUtil.getUserName(entry.getUserId(), entry.getUserName()))} 
225			</span>--> 
226			</div> 
227		<div class="asset-content"> 
228		 
229 
230			<div class="asset-summary"> 
231				<@getMetadataField fieldName="author" /> 
232				 
233                <#assign abstractTxt = htmlUtil.escape(assetRenderer.getSummary(locale)) > 
234                <#-- <#assign abstractTxtLen = abstractTxt?length > 172  --> 
235                <#if abstractTxt?length gt 172> 
236                    ${abstractTxt[0..172]}... 
237				<!-- ${htmlUtil.escape(assetRenderer.getSummary(locale))} --> 
238                <#else> 
239                    ${abstractTxt} 
240                </#if> 
241 
242			</div> 
243			<#if dlfileModalPopup?has_content> 
244			    <a onclick="${dlfileModalPopup}" class="more-link"><@liferay.language key="read-more" /><span class="hide-accessible"><@liferay.language key="about" />${entryTitle}</span></a> 
245			<#else> 
246			 
247				<a href="${viewURL}" ${linkTarget} class="more-link"><@liferay.language key="read-more" /><span class="hide-accessible"><@liferay.language key="about" />${entryTitle}</span></a> 
248			</#if> 
249			 
250		</div> 
251	</div> 
252	<div class="clearfix"></div> 
253</div> 
254</#list> 
255</div> 
256 
257<script> 
258    AUI().use('liferay-portlet-url', function(A) { 
259     
260        $(document).ready(function() { 
261            if ($('#${namespace}info-wrapper').siblings('.lfr-pagination').find('ul.lfr-pagination-buttons a').length) { 
262                $('#${namespace}info-wrapper').siblings('.lfr-pagination').find('ul.lfr-pagination-buttons a').attr('href', 'javascript:;'); 
263                $('#${namespace}info-wrapper').siblings('.lfr-pagination').attr('curParam', '1'); 
264                $('#${namespace}info-wrapper').siblings('.lfr-pagination').click(function() { 
265                    if ($(this).attr('curParam') === '1') { 
266                        $($(this).find('ul.lfr-pagination-buttons li')[0]).addClass('disabled'); 
267                    } else { 
268                        $($(this).find('ul.lfr-pagination-buttons li')[0]).removeClass('disabled'); 
269
270                }); 
271                 
272                $($('#${namespace}info-wrapper').siblings('.lfr-pagination').find('ul.lfr-pagination-buttons a')[0]).click(function() { 
273                    if (!$(this).parent().hasClass('disabled')) { 
274                       var curParam = Number($(this).parents('.lfr-pagination').attr('curParam')); 
275                       if (Number(curParam) <= 1) { 
276                        return; 
277
278                       $(this).parents('ul.lfr-pagination-buttons').find('li:nth-child(2)').removeClass('disabled'); 
279                       //console.log($(this).parents('ul.lfr-pagination-buttons').find('li:nth-child(2)')); 
280                       var nextURL = Liferay.PortletURL.createRenderURL(); 
281                       $(this).parents('.lfr-pagination').attr('curParam', Number(curParam) - 1); 
282                       nextURL.setPortletId('${portletId}'); 
283                       nextURL.setWindowState('exclusive'); 
284                       nextURL.setParameter('cur', curParam - 1); 
285                       nextURL.setParameter('resetCur', '${resetCurParam}'); 
286                       <#if categoryIdParam??> 
287                            nextURL.setParameter('categoryId', '${categoryIdParam}'); 
288                       </#if> 
289                       //$('#${namespace}info-wrapper').load(nextURL.toString() + ' .info-wrapper'); 
290                       $.ajax({ 
291                          url: nextURL.toString(), 
292                        }).done(function( data ) { 
293                            Liferay.fire('activateTab', {tabId: $('#${namespace}info-wrapper').parents('div.content[tabNameValue]').attr('tabNameValue'), scrollToTab: true}); 
294                            $('#${namespace}info-wrapper').html($(data).find('.info-wrapper').addBack('.info-wrapper').html()); 
295                            if ($($(data).find('.lfr-pagination-buttons li')[1]).hasClass('disabled')) { 
296                                 $($('#${namespace}info-wrapper').siblings('.lfr-pagination').find('ul.lfr-pagination-buttons li')[1]).addClass('disabled'); 
297                              
298
299                        }); 
300
301                }); 
302                $($('#${namespace}info-wrapper').siblings('.lfr-pagination').find('ul.lfr-pagination-buttons a')[1]).click(function() { 
303                    //console.log('clicked ' + !$(this).hasClass("disabled")) 
304                    if (!$(this).parent().hasClass('disabled')) { 
305                       var nextURL = Liferay.PortletURL.createRenderURL(); 
306                       var curParam = Number($(this).parents('.lfr-pagination').attr('curParam')); 
307                       $(this).parents('.lfr-pagination').attr('curParam', Number(curParam) + 1); 
308                       nextURL.setPortletId('${portletId}'); 
309                       nextURL.setWindowState('exclusive'); 
310                       nextURL.setParameter('cur', curParam + 1); 
311                       nextURL.setParameter('resetCur', '${resetCurParam}'); 
312                       <#if categoryIdParam??> 
313                            nextURL.setParameter('categoryId', '${categoryIdParam}'); 
314                       </#if> 
315                       //$('#${namespace}info-wrapper').load(nextURL.toString() + ' .info-wrapper'); 
316                       $.ajax({ 
317                          url: nextURL.toString(), 
318                        }).done(function( data ) { 
319                            $('#${namespace}info-wrapper').html($(data).find('.info-wrapper').addBack('.info-wrapper').html()); 
320                            if ($($(data).find('.lfr-pagination-buttons li')[1]).hasClass('disabled')) { 
321                                 $($('#${namespace}info-wrapper').siblings('.lfr-pagination').find('ul.lfr-pagination-buttons li')[1]).addClass('disabled'); 
322
323                            Liferay.fire('activateTab', {tabId: $('#${namespace}info-wrapper').parents('div.content[tabNameValue]').attr('tabNameValue'), scrollToTab: true}); 
324                        }); 
325
326                }); 
327
328            
329        }); 
330    }); 
331    </script> 
332 
333<#macro getDiscussion> 
334	<#if validator.isNotNull(assetRenderer.getDiscussionPath()) && (enableComments == "true")> 
335		<br /> 
336 
337		<#assign discussionURL = renderResponse.createActionURL() /> 
338 
339		${discussionURL.setParameter("struts_action", "/asset_publisher/" + assetRenderer.getDiscussionPath())} 
340 
341		<@liferay_ui["discussion"] 
342			className=entry.getClassName() 
343			classPK=entry.getClassPK() 
344			formAction=discussionURL?string 
345			formName="fm" + entry.getClassPK() 
346			ratingsEnabled=enableCommentRatings == "true" 
347			redirect=portalUtil.getCurrentURL(request) 
348			userId=assetRenderer.getUserId() 
349		/> 
350	</#if> 
351</#macro> 
352 
353<#macro getEditIcon> 
354	<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
355		<#assign redirectURL = renderResponse.createRenderURL() /> 
356 
357		${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")} 
358		${redirectURL.setWindowState("pop_up")} 
359 
360		<#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
361 
362		<#if validator.isNotNull(editPortletURL)> 
363			<#assign title = languageUtil.format(locale, "edit-x", entryTitle) /> 
364 
365			<@liferay_ui["icon"] 
366				image="edit" 
367				message=title 
368				url="javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
369			/> 
370		</#if> 
371	</#if> 
372</#macro> 
373 
374<#macro getFlagsIcon> 
375	<#if enableFlags == "true"> 
376		<@liferay_ui["flags"] 
377			className=entry.getClassName() 
378			classPK=entry.getClassPK() 
379			contentTitle=entry.getTitle(locale) 
380			label=false 
381			reportedUserId=entry.getUserId() 
382		/> 
383	</#if> 
384</#macro> 
385 
386<#macro getMetadataField 
387	fieldName 
388
389	<#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
390		<span class="metadata-entry metadata-${fieldName}"> 
391			<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" /> 
392 
393			<#if fieldName == "author"> 
394				<@liferay.language key="by" /> ${portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName())} 
395			<#elseif fieldName == "categories"> 
396				<@liferay_ui["asset-categories-summary"] 
397					className=entry.getClassName() 
398					classPK=entry.getClassPK() 
399					portletURL=renderResponse.createRenderURL() 
400				/> 
401			<#elseif fieldName == "create-date"> 
402				${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)} 
403			<#elseif fieldName == "expiration-date"> 
404				${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)} 
405			<#elseif fieldName == "modified-date"> 
406				${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)} 
407			<#elseif fieldName == "priority"> 
408				${entry.getPriority()} 
409			<#elseif fieldName == "publish-date"> 
410				${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)} 
411			<#elseif fieldName == "tags"> 
412				<@liferay_ui["asset-tags-summary"] 
413					className=entry.getClassName() 
414					classPK=entry.getClassPK() 
415					portletURL=renderResponse.createRenderURL() 
416				/> 
417			<#elseif fieldName == "view-count"> 
418				<@liferay_ui["icon"] 
419					image="history" 
420				/> 
421 
422				${entry.getViewCount()} <@liferay.language key="views" /> 
423			</#if> 
424		</span> 
425	</#if> 
426</#macro> 
427 
428<#macro getPrintIcon> 
429	<#if enablePrint == "true" > 
430		<#assign printURL = renderResponse.createRenderURL() /> 
431 
432		${printURL.setParameter("struts_action", "/asset_publisher/view_content")} 
433		${printURL.setParameter("assetEntryId", entry.getEntryId()?string)} 
434		${printURL.setParameter("viewMode", "print")} 
435		${printURL.setParameter("type", entry.getAssetRendererFactory().getType())} 
436 
437		<#if (validator.isNotNull(assetRenderer.getUrlTitle()))> 
438			<#if (assetRenderer.getGroupId() != themeDisplay.getScopeGroupId())> 
439				${printURL.setParameter("groupId", assetRenderer.getGroupId()?string)} 
440			</#if> 
441 
442			${printURL.setParameter("urlTitle", assetRenderer.getUrlTitle())} 
443		</#if> 
444 
445		${printURL.setWindowState("pop_up")} 
446 
447		<@liferay_ui["icon"] 
448			image="print" 
449			message="print" 
450			url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "printAsset', title: '" + languageUtil.format(locale, "print-x-x", ["hide-accessible", entryTitle]) + "', uri: '" + htmlUtil.escapeURL(printURL.toString()) + "'});" 
451		/> 
452	</#if> 
453</#macro> 
454 
455<#macro getRatings> 
456	<#if (enableRatings == "true")> 
457		<div class="asset-ratings"> 
458			<@liferay_ui["ratings"] 
459				className=entry.getClassName() 
460				classPK=entry.getClassPK() 
461			/> 
462		</div> 
463	</#if> 
464</#macro> 
465 
466<#macro getRelatedAssets> 
467	<#if enableRelatedAssets == "true"> 
468		<@liferay_ui["asset-links"] 
469			assetEntryId=entry.getEntryId() 
470		/> 
471	</#if> 
472</#macro> 
473 
474<#macro getSocialBookmarks> 
475	<#if enableSocialBookmarks == "true"> 
476		<@liferay_ui["social-bookmarks"] 
477			displayStyle="${socialBookmarksDisplayStyle}" 
478			target="_blank" 
479			title=entry.getTitle(locale) 
480			url=viewURL 
481		/> 
482	</#if> 
483</#macro> 

Asset Publisher

Nonprofit Finance
December 18, 2019
Understanding the concept of the “business model” for your nonprofit has become a more integral component to maintaining organization sustainability within the nonprofit sec...
Read MoreAboutThe Importance of Understanding Your Nonprofit's Cash Flow
Nonprofit Finance
November 14, 2019
Last year, the Financial Accounting Standards Board (FASB) released Accounting Standards Update (ASU) 2018-08, which clarifies the accounting guidelines for contributions re...
Read MoreAbout[Webinar Recording] Accounting for Nonprofit Grants and Contributions
Nonprofit Finance
August 07, 2019
Nonprofit professionals face a challenging job that is made even more complex by industry dynamics and a competitive talent marketplace&#x2014;requiring even more attent...
Read MoreAbout​​​​​​​[Webinar Recording] National Nonprofit Benefit Study
Nonprofit Finance
October 29, 2019
Giving in the U.S. in 2020 will be different in many ways than previously&#x2014;mainly because of campaigns, economic conditions, and tax law implications. Don&#39;...
Read MoreAbout[Webinar Recording] Trends and Forecasts for Charitable Giving
Nonprofit Finance
October 08, 2019
What is an executive director? An executive director is “responsible for overseeing the administration, the program and the strategic plan of a nonprofit organization. Other...
Read MoreAboutHow an Executive Director Becomes a Financial Leader
Nonprofit Finance
September 27, 2019
Thousands of nonprofits have registered with their states in order to legally solicit donations... do you know what state requirements extend to your organization?Presented ...
Read MoreAbout[Webinar Recording] Fundraising Registration 101
Nonprofit Finance
May 01, 2019
Did you know that certain nonprofits can legally opt out of paying state unemployment taxes? Do you understand who is benefiting from this tax exemption law? In this article...
Read MoreAbout​​​​​​​The True Story of Nonprofits and Taxes
Nonprofit Finance
June 26, 2018
UST helps 501(c)(3)s lower their unemployment costs &amp; maintain HR compliance, providing resources to help refocus on mission objectives. UST, a program dedicated to ...
Read MoreAboutUST Nonprofit Members Utilized Over $1.1 Million in Cloud-Based HR Resources
Nonprofit Finance
July 13, 2018
UST is giving 532 nonprofits $3,869,249 in cash back for their ability to reduce their anticpiated unemployment claims within the year. UST, a program dedicated to providing...
Read MoreAboutNonprofits Receive Over $3.8 Million in Cash Back Through UST’s Claims Management Services
Nonprofit Finance
August 01, 2018
UST releases 2018 UI toolkit to help nonprofit organizations better understand unemployment insurance options and claims management best practices. UST, a program dedicated ...
Read MoreAboutNonprofit Toolkit Offers the Top Guides for Managing Unemployment

EBook Download Button

GotoStage Webinar Channel