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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

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   1269 Views

Avatar
matthewjumps

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?

Avatar
Willr

Forum Moderator, 5523 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 http://doc.silverstripe.org/permission)

For example using groups..

$fields = ...

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

Avatar
matthewjumps

Community Member, 21 Posts

19 September 2010 at 1:28pm

Thanks! Both of those answers were perfect :D