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.