This "tutorial" is based on a forum thread started by Ormente with responses from Martijn. Consult that thread for further discussion.
It's often useful to be able to go directly to the backend to edit a page while browsing your site. You can make such a link in Wolf by copying this code into a snippet (filter set to -none-
):
<?php<span class="c1">// Check there's a user session</span> <span class="nx">AuthUser</span><span class="o">::</span><span class="na">load</span><span class="p">();</span> <span class="c1">// Check the user is logged in and has page_edit permission.</span> <span class="k">if</span> <span class="p">(</span><span class="nx">AuthUser</span><span class="o">::</span><span class="na">isLoggedIn</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">AuthUser</span><span class="o">::</span><span class="na">hasPermission</span><span class="p">(</span><span class="s1">'page_edit'</span><span class="p">))</span> <span class="p">{</span> <span class="nv">$url</span> <span class="o">=</span> <span class="nx">BASE_URL</span><span class="o">.</span><span class="s1">'admin/page/edit/'</span><span class="o">.</span><span class="nv">$this</span><span class="o">-></span><span class="na">id</span><span class="p">();</span> <span class="k">echo</span> <span class="s1">'<span class="quickedit"><a href="'</span><span class="o">.</span><span class="nv">$url</span><span class="o">.</span><span class="s1">'">Edit this page</a></span>'</span><span class="p">;</span> <span class="p">}</span>
?>
Save the snippet as 'quickedit', and call the snippet in your layout with:
<?php $this->includeSnippet('quickedit'); ?>
where you want your edit link to appear.
You could also:
- add some CSS rules for the ''.quickedit'' class;
- use usernames instead of roles (see the original forum thread);
- add another condition to limit the appearance of the "Edit this page" link to certain branches of your site;
- etc.!
Thanks to Ormente for this suggestion!