Hi Martimiz, many thanks for your continued help! I feel really dumb, but I am using your code and can't quite get it to work still! Where I use $Link just in the main part of the templates it works fine, but I can't seem to get it to work inside the child control that I am using. I have my ArticleHolder page with the following:
<div id="Content" class="typography">
$Content
<a href="$Link">$Link</a> <!--test to check Link() override function works outside control loop, which it does-->
<ul id="NotesList">
<% control Children %>
<% if Photo %>
<div class="thumbnail">
<a href="$Link" title="Read more on "{$Title}"">$Photo.SetHeight(90)</a></div>
<% end_if %>
<li class="subject"><a href="$Link" title="Read more on " $Title "">$Title</a></li>
<li class="noteText">$Content.FirstSentence... <br /><a href="$Link" title="Read more on " $Title "">Read more >></a></li>
<% if Children %>
<% else %>
<li class="noteDateContext">Contributed by $Author</li>
<% end_if %>
<% end_control %>
</ul>
</div>
$Parent.Link and $Top.Link used within the control loop both give me the link to the ArticleHolder page, not the article itself, so $Link is what I want to use as it returns the right URL, then I just need to add frame to it if coming from a /frame page.
I am concerned that even if I get this to work for these children, it may not work throughout the site on all the different page types, and things like logging in won't keep the same frame template before and after login. I did it this way to try to avoid duplication of templates etc, but I wonder whether I should just make a whole new theme and keep it for the session or something like that.
Again, suggestions much appreciated!