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, biapar, Willr, Ingo, swaiba, simon_w

Newbie Questions


Reply

3 Posts   882 Views

Avatar
matthewjumps

12 September 2010 at 6:42pm Community Member, 21 Posts

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?

Avatar
Willr

12 September 2010 at 7:27pm Forum Moderator, 5511 Posts

* 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 http://doc.silverstripe.org/permission)

For example using groups..

$fields = ...

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

Avatar
matthewjumps

19 September 2010 at 1:28pm Community Member, 21 Posts

Thanks! Both of those answers were perfect :D