Group Banner New Link Broken when Links.Count Greater than 1 for Anonymous Visitor

This is more of a report than a question, but I don't have the option to start a discussion only.

Default Group - Banner widget in 12.0.1.15778 has logic for redirecting to login for +New button when the links count is 1, but in instances where the $links.count would be more than 1, it appends the literal text "$core_v2_encoding.HtmlAttributeEncode($link.Url)" in the URL instead of redirecting to login.

Here is the workaround I used to correct:

#if (!$isRegistered && $includeNewLogin && $links.Count == 1)
		#set($returnToCurrentUrl = true)
		#set($loginLink = $core_v2_urls.LogIn("%{ReturnToCurrentUrl = $returnToCurrentUrl}"))
		<div class="navigation-list new">
			<div class="ui-links" data-direction="vertical">
				<ul class="navigation-list">
					<li class="navigation-list-item">
						<a href="$core_v2_encoding.HtmlAttributeEncode($loginLink)">$core_v2_language.GetResource('new_post')</a>
					</li>
				</ul>
			</div>
		</div>
	#elseif (!$isRegistered && $includeNewLogin && $links.Count > 1)
		#set($returnToCurrentUrl = true)
		#set($loginLink = $core_v2_urls.LogIn("%{ReturnToCurrentUrl = $returnToCurrentUrl}"))
		#foreach($link in $links)
		#beforeall
			<div class="navigation-list new">
				<div class="ui-links" data-direction="vertical" data-maxlinks="0">
					<ul class="navigation-list">
		#each
						<li class="navigation-list-item">
							<a class="$link.CssClass" href="$core_v2_encoding.HtmlAttributeEncode($loginLink)">$link.Label</a>
						</li>
		#afterall
						<li class="navigation-list-item">
							<a
								#if ($isRegistered)
									$core_v2_tourTip.Render($core_v2_language.GetResource('TourTipNew'), "%{ CssClass = 'more', Index = 100 }")
								#else
									class="more"
								#end
								href="#" data-more>
								$core_v2_language.GetResource('new_post')
							</a>
						</li>
						<li class="navigation-list-item">
							<a href="#" data-cancel>$core_v2_language.GetResource('cancel')</a>
						</li>
					</ul>
				</div>
			</div>
	    #end
	#elseif ($links.Count == 1)
		#foreach($link in $links)
			<div class="navigation-list new">
				<div class="ui-links" data-direction="vertical" data-maxlinks="1" data-minlinks="1">
					<ul class="navigation-list">
						<li class="navigation-list-item">
							<a
								#if ($isRegistered)
									$core_v2_tourTip.Render($core_v2_language.GetResource('TourTipNew'), "%{ CssClass = $link.CssClass, Index = 100 }")
								#else
									class="$link.CssClass"
								#end
								href="$core_v2_encoding.HtmlAttributeEncode($link.Url)">$core_v2_language.GetResource('new_post')</a>
						</li>
					</ul>
				</div>
			</div>
		#end
	#elseif ($links.Count > 1)
		#foreach($link in $links)
		#beforeall
			<div class="navigation-list new">
				<div class="ui-links" data-direction="vertical" data-maxlinks="0">
					<ul class="navigation-list">
		#each
						<li class="navigation-list-item">
							<a class="$link.CssClass" href="$core_v2_encoding.HtmlAttributeEncode($link.Url)">$link.Label</a>
						</li>
		#afterall
						<li class="navigation-list-item">
							<a
								#if ($isRegistered)
									$core_v2_tourTip.Render($core_v2_language.GetResource('TourTipNew'), "%{ CssClass = 'more', Index = 100 }")
								#else
									class="more"
								#end
								href="#" data-more>
								$core_v2_language.GetResource('new_post')
							</a>
						</li>
						<li class="navigation-list-item">
							<a href="#" data-cancel>$core_v2_language.GetResource('cancel')</a>
						</li>
					</ul>
				</div>
			</div>
		#end
	
	#end

Note the logic for if the accessing user is not registered has to be moved to the beginning of the if chain otherwise the $links.count >1 is satisfied instead of the desired behaviour.

Parents Reply Children
No Data