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   953 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, 5513 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