Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Newbie Questions

Go to End

3 Posts   1115 Views


Community Member, 21 Posts

12 September 2010 at 6:42pm

Hi all, Im pretty new to SS but Im digging it so far... a couple of things are confusing me and I cant seem to find any documentation on them.

Firstly, $URLSegment is fine for top level pages, but if a template in a subpage calls $URLSegment then I only get the last chunk of the URL. Eg on /articles/article-01 it returns /article-01. What if I want to get the entire thing? $ExternalURL and $LegacyURL dont seem to work, and I cant seem to find any other page controls to do what I need.

Second, can I make certain fields editable only by certain users? If I create a data object with, say, a "PreloadBeforeShow" and a "PreloadWithMain" fields defined in $db, and add those fields to a CMS tab, how can I control which users can see those fields in the admin interface?


Forum Moderator, 5521 Posts

12 September 2010 at 7:27pm

* You should use $Link to get the full link to a page.

* Editing is normally done on a object basis rather than per cms field. If you want to do it on a per field basis then you will have to it with custom code. Eg if you have a member in the group 'Admin' and a member in the group 'Content Editors' and you want to make something admin only you can check for the group using inGroup('Admin') (or you should step up permission codes

For example using groups..

$fields = ...

$member = Member::currentUser();
if($member->inGroup('Admin') {
// add an admin only field


Community Member, 21 Posts

19 September 2010 at 1:28pm

Thanks! Both of those answers were perfect :D