The documentation says (emphasis added):
There are also special extensions for certain fields so that placement
can be targeted at specific field instances.
Does certain fields include the DateTime, Link, and Input fields?
I am trying to hide a DateTime field named Date when it is within a NewsItem content type. Here is my placement.info. Importantly, this placement.info works from a theme but not from a module.
<Match ContentType="NewsItem">
<!--These ones do not work.-->
<Place Fields_Input="-" />
<Place Fields_DateTime="-" />
<Place Fields_DateTime-Date="-" />
<Place Fields_Link="-" />
<!--These ones do work-->
<Place Parts_Title="-" />
<Place Parts_Common_Metadata="-" />
<Place Fields_Common_Text="-" />
<Place Parts_Common_Body="-" />
<Place Parts_Common_Body_Summary="-" />
<Place Fields_MediaLibraryPicker="-" />
</Match>
Here is Shape Tracing Model for one of the Fields:
I just ran into this issue so I want to elevate this comment to a proper answer, since it seems to be the key:
...the Placement.info in Orchard.Fields probably has higher precedence than the one in [a custom] module... add a Dependencies field to [the custom module's] Module.txt file, to make sure that [the custom] module's Placement.info takes precedence over the Orchard.Fields Placement.info file.
If you are trying to override shapes for display inside the admin (e.g. in SummaryAdmin mode) from within a module, make sure your Module.txt lists dependencies for the modules that generate the shapes you are trying to override.
For example, if you want to override the Fields_MediaLibraryPicker_SummaryAdmin placement, your Module.txt should have at least:
Depedencies: Orchard.MediaLibrary
Credit to #Shaun Luttin and #Piedone
Related
I want to add image to the summary of blogs in Orchard CMS. How do I add it to the summary?
Use Placement.info. In your theme's placement.info add something like this:
<Match ContentType="Blog">
<Match DisplayType="Summary">
<Place Fields_MediaLibraryPicker="Content:1" />
<!-- Or: <Place Fields_MediaLibraryPicker_Summary="Content:1" /> -->
</Match>
</Match>
See this source code to see which shapes are available for this.
Note: I am assuming here that you are using the media library picker field to attach an image to your blog. If you use something else, you should use that shape.
I created two content types, Foods with the containable part, and Colors with the container part. I created a list of colors that contain foods inside them following Bertrand's example here: http://weblogs.asp.net/bleroy/many-ways-to-relate-orchard-things-part-3-lists
Example:
green: avocado, kale, spinach
red: strawberry, raspberry, ketchup
On the page for "green" and "red" I am trying to remove the metadata. I tried this code:
<Match ContentType="Food">
<Match DisplayType="Summary">
<Place Parts_Common_Metadata="-"/>
</Match>
</Match>
And the metadata was still there, so I tried this code to make sure I didn't have any typos:
<Match ContentType="Food">
<Place Parts_Common_Metadata="-"/>
</Match>
Again, the metadata was still there for the list view pages, but as expected it did remove the metadata from the display view pages.
I am able to remove the metadata through a Content-Food.Summary.cshtml but I know the preferred method is to use the placement.info file.
Is this possible? If not, is it a feature or a bug?
There are two different views for the Metadata, one for the summary and one for the detail. This is good because it means you can customize how the metadata is displayed in the summary vs the detail, but slightly confusing when you are starting out.
So all you need to do is use this:
<Match ContentType="Food">
<Match DisplayType="Summary">
<Place Parts_Common_Metadata_Summary="-"/>
</Match>
</Match>
Note the Parts_Common_Metadata_Summary
I have a Placement.info at the root of my custom part folder.
<Placement>
<Place Parts_Common_Metadata="-" />
<Place Parts_MyCustomPart="Content:2" />
</Placement>
MyCustomPart displays fine. However, this doesn't hide the metadata. Using Shape Tracing, I managed to identify which Placement.info file was being loaded/processed that displays the metadata. It is ~/Core/Common/Placement.info containing the rule
<Placement>
<Match DisplayType="Detail">
<!-- Removed for brevity -->
<Place Parts_Common_Metadata="Meta:2" />
</Match>
</Placement>
I suspect that MyCustomPart/Placement.info was being loaded/processed first. And ~/Core/Common/Placement.info is loaded after that effectively overriding Parts_Common_Metadata in the previous Placement.info.
Is there a way to define the order of which Placement.info is loaded/process first?
Take a dependency on "Common" from your module.txt manifest file. This will let you take precedence.
I have created a Custom Theme. Every page is displaying the Title and a date stamp at the top.
I have found posts saying comment out 'Placement.info' in the Theme route - but this has no effect.
How can I remove both of these?
You don't need to remove the parts, just hide them from display using the placement.info file. Common and Title parts are useful parts to include with a page. Particularly common part should be included with most content types as it stores information about when an item is modified, published etc.
The parts are displayed by default. To hide them you need to add to your theme's placement information to override and hide the parts' display shapes e.g. for the Page type:
<Placement>
<Match ContentType="Page">
<Match DisplayType="Detail">
<Place Parts_Common_Metadata="-"/>
<Place Parts_Title="-"/>
</Match>
<Match DisplayType="Summary">
<Place Parts_Common_Metadata_Summary="-"/>
<Place Parts_Title_Summary="-"/>
</Match>
</Match>
</Placement>
This hides the metadata and title for both detail and list views by putting them in the '-' zone. Because the '-' zone does not exist, the shapes are not displayed.
See these docs for more info on placement:
http://docs.orchardproject.net/Documentation/Understanding-placement-info
I went to Content / Content Types / Edit Page
Remove 'Title' & 'Parts Common' - seems to fix it.
Looking to display the Image Field in the Blog Post Summary on my Orchard site. It current displays on the blog post itself but not in the summary. How do I add it to the summary?
The display of parts and fields is defined in the placement.info files found in each module. Assuming you're using the Image Field from the Contrib.ImageField module, You will need to override the default placement of the field for the summary display type (which is defined in Modules\Contrib.ImageField\Placement.info) which by default is:
<Match DisplayType="Summary">
<Place Fields_Contrib_Image="-"/>
</Match>
You can do this by adding the following to your theme's placement.info file (note I have restricted this to the BlogPost content type only) e.g.
<Match ContentType="BlogPost">
<Match DisplayType="Summary">
<Place Fields_Contrib_Image="Content"/>
</Match>
</Match>
This displays the image in the Content zone for the summary view of BlogPost content items. For more info on placement in Orchard see http://docs.orchardproject.net/Documentation/Understanding-placement-info
You can use the Media Library Picker Field.
I did the following steps to add image field to blog summary:
add Media Library picker field to Blog-Post content Type
then in the placement.info add the following
<Match ContentType="Blog">
<Match DisplayType="Summary">
<Place Part_Image_Summary="Content">
</Match>
</Match>