Orchard CMS - limiting pages to only a specific layer - how? - orchardcms

Silly really - but I just can't seem to find my way around this just yet....
I installed the Orchard CMS in Azure - worked like a charm, added a few pages, played around, watched the Pluralsight "Orchard Fundamentals" course - seemed to make a lot of sense.
But now I'm stuck - I'm trying to create a public facing site, where some of the pages should be visible to any visitor including anonymous users, and some of course should be visible to only authenticated users.
OK, so I understand those are layers in play - default for everyone, authenticated for authenticated users - great. But how do I limit a given page which is present as Content in my dashboard so that it'll be displayed only on a given layer (e.g. only on the authenticated layer - not the default layer for everyone)
Seems like a simple task - but I just cannot seem to find the way to do it (nor does any of the docs or tutorial videos really help :-( )
Any takers?

Layers are only for widgets. In order to restrict access to a content item such as a page, what you need is content item permissions. That's a separate feature that is not enabled by default.
To enabled the Content Item Permissions module
In the admin panel go to Modules
Start typing permissions into the filter box at the top left hand corner of the tabs.
The Content Item Permissions should be shown in the list, click Enable in the top right hand corner of its box
This will reload the page and you should see a message at the top saying Content Item Permissions was enabled
Enabling this feature with your pages
Orchard CMS uses a concept where you can glue components together however you want them to be composed in order for them to support the features you want. The concept of a page is just a collection of parts like a page title, a url, text, setting a publish date and things like that.
By default simply enabling the module doesn't make any difference. You will need to add the feature to the Page content. To do this you just need to:
In the admin panel go to Content Definition
Find / filter the Page content type and click Edit on the right hand side
Scroll down to Parts and click Add Parts
Search for Content Permissions in the list, tick the checkbox and press Save at the bottom of the page
You will be taken back to the Page content definition screen. At the bottom of the Parts list you will now see a Content Permissions entry. If you want to set up defaults for new pages click the little > arrow to the left of the header and a panel will expand.
If you want to add it to other content types such as blog posts then you can repeat this process and add it to any content type you want to.
Making an individual page password protected
Now that the feature is enabled and attached to your Page content type you can create a new private page by following these steps:
In the admin panel click New > Page in the sidebar
Give the page some basic content
Scroll down close to the end of the page and tick the checkbox labelled Enable Content Item access control
Let's say you want to make it so anon uses cannot see the page. Under the View this item section just tick all of the roles except for Anonymous (the second one in the list)
Publish the page
Open up a new incognito / in-private browser tab (so the site thinks you aren't logged in) and visit the new page you just published.
You will be redirected to an error screen similar to this page:

You will want to enable the Content Item Permissions feature in order to restrict individual content items to certain permissions. With layers you can only make widgets appear in different zones defined in your theme when the layer's rules are met.
To enable the Content Item Permissions feature, go to your admin dashboard and click on "Modules" on the left hand side. On the modules page enter "Content Item Permissions" in the filter text box to help find the feature. Click on the enable button of the feature in the top right corner. The feature will now be enabled.
Now that you have the feature enabled, you need to add the Content Permissions part to one of your content definitions. To do this click on "Content Definition" on the left hand side of the admin dashboard. Find the content type you want to add permissions to (for instance, Page) and click the edit button. Click the Add Parts button. You will see a list of parts you can add to the content type. Check the checkbox next to Content Permissions and click save.
Next, in the admin dashboard go to one of your content items that is of the content type that you just added the content permissions part to. You will see a new checkbox towards the bottom to enable content item access control. Click the checkbox and you will be able to set the different roles for that content item.
Edit: It looks like it took me too long to write my response. rtpHarry's editted answer is very similar but better formatted.

Related

How to hide superfish menu from login page in drupal 7

I have configured the superfish block to display on all pages EXCEPT the user-login page but this is not being honored. I've also created a superfish menu block with no menu items and have configured to ONLY show on the user-login page but this is not being honored.
Why am I trying to do this? There are 3 dummy menu items (not associated with pages) which I cannot make 'disappear' via context rule e.g. only show when user == authorized user (see screen capture).
So if someone knows how to hide the dummy menu items or the whole superfish block from the login screen - please share - it would be appreciated.
Login Screen Image
I just checked it on one of my sites ... it should work when you add "user" in the display section of the block config page. (you may have to clear the cache)... But than, the block is also hidden on all user pages for autorized users..
Other options: "hook preprocess_page" or just a seperate page template ("page--user.tpl.php")...

Content administer page

Is it possible on the content page to publish pages with checkbox, instead of the update options on the top, is there a module, or something to be configurated?
My main goal would be to change in the edit of a page the cck fields settings by taxomony but it doesn't look possible. So instead I'm making different pages to point on a same url.
So every week I can't change a specific url content by publishing and unpublishing pages. But with the update options you have to select one then choose publish and then update, after that choose another page by clicking his checkbox, choose unpublish and then update, is there an easier way.
Thank you.
I believe you are looking for the manager module
http://drupal.org/project/manager
Here is a screenshot of what it does:

"Navigate Up" issues in sharepoint 2010

If I am on page
http://mysite.com/first/second/third/Wiki/pages/home.aspx
and click the Navigate Up button I can see the following hierarchy (whis is correct):
Home - first - second - third - Wiki
But if I navigate up one step to
http://mysite.com/first/second/third/SitePages/Home.aspx
and click the Navigate Up button again the first subsite is not showing up.
Home - second - third - Home
I set the navigation settings to be identical on both sites but still the same issue/error.
How can I fix this?
Cheers
A few things you can try....
In your masterpage / page layout, find your SiteMapPath control. This has a property called ParentLevelsDisplayed. If you set it to -1 (the default) it should show all parent sites in the breadcrumb. Also, make sure that the SiteMapProvider is the same for both controls on both pages.
In your /second subsite, check whether or not the global navigation is set to inherit from its parent. This setting will affect how the breadcrumb is displayed, more on this [here].
Third (and this only applies to publishing sites), open the page layout that your Home.aspx page is referencing. Search for PlaceHolderTitleBreadcrumb. Lots of the OOTB layouts override this placeholder and construct their own breadcrumb. There is a great list [here] of all the layouts and their individual breadcrumb settings.
Hopefully this helps!

View Page (DispForm.aspx) not associated properly for SharePoint list views

I've customized NewForm, EditForm and DispForm to allow users to create new, edit (with certain permission) and display service requests.
The forms work fine except in my views (e.g. Createbyme.aspx which shows all requests owned by me). Instead of pointing to my custom DispForm /[site]/Lists/[list_name]/DispForm_custom.aspx?ID=[request#], it links to /[site]/?ID=[request#].
Is there any suggestion for a fix?
I just answered this question in another post...
Restore NewForm.aspx file
To summarize,
Open the page and select the form control. Oen the propertis for that control and select the radio button "NEW ITEM FORM". After you save the page you can then select the page as a supporting file for the list and the setting will stick. Do not select the page as a supporting file first as the setting will not stick... ergo the order of your steps is important.

SharePoint: Site Layouts

Hi I was wondering which Layout I could use to get the search box in the top right hand corner. I used (Welcome Page) Blank Web Part Page) as the page layout but its missing the search box in the top right corner.
Also another question: How can I add my own layouts to the list in the Create Page, page. Thank you.
The search box is defined in your master page. Ususally default.master, it would not matter which layout you choose the elements defined in the master page will still be in the same place. In your case it would appear that the search box does not exist on your master and would need to be added in again.
You would need to amend the master page for your site and add the appropriate SP control for search into the appropriate place on your page. This will ensure that a SP search box is rendered in that location for every page.
To define your own page layout have a look at Link 1 and Link 2.
As for the search box, it is defined as part of the Site Template. Try creating a Site using the Collaboration Site template.

Resources