Change default "Create Document" label in DocumentGroup - swiftui

The SwiftUI DocumentGroup allows us to easily create a document-based application. I'm looking at customizing the DocumentGroup.
How can we change the label "Create Document"? Am I overlooking a modifier?
In my use-case the term "Document" is a bad name for what it actually is, and I want to make the UI clearer by setting it to something else.

Related

Joomla 3.8 switching templates/styles?

Okay, so I understand that you can set a template/style in a menu item which I understand. However.. What would you do in this situation..
The website uses two different templates/styles depending on what section of the website they are in.
What if you are in section 1 of the website and need to go to section 2 that uses a different style? And this action is controlled by a controller on if a condition is met.
I've managed to do this so far using $app->redirect and including the Menu Id so that joomla picks up the correct template/style to use. However this just seems wrong, as I can't determine the Menu Id once the component is installed elsewhere...
Doing the getView() approach to show a certain view seems like the correct procedure, however it doesn't allow me to change the template/style and will use the template/style from the original menu item.
Is there another method I don't know about? Does Joomla simply not have something in place for this? It's almost as if I need to change getView to accept a template/style parameter
They changed the name Template/Style to theme.
JFactory::getApplication()->set('theme', 'my_system');

Sitecore Glass Mapper - Using Item Renderings

I'm setting up a carousel in Sitecore using Glass Mapper. In the foreach loop to generate each carousel item, I can get the items out easily enough and make them editable with the #Editable command. What this doesn't give, however, is finer control over the edit process. For example, I want to edit the background image using a custom button in the Experience Editor, but I need to set that up in a rendering.
If I was using straight Sitecore, it looks like I'd use Html.Sitecore().ItemRendering and pass in the carousel item as a regular Sitecore item. In this case, I have my strongly-type class from Glass Mapper, which can't be passed in that way.
Is there a comparable method in Glass Mapper for setting up an item rendering? Or is there another way to affect the Experience Editor buttons for the carousel items? I've also experimented with setting up a separate edit mode, which would work fine, but I wanted to put together a cleaner editing experience with a more WYSIWYG approach to the item.
You'll have to use Custom User Experience Buttons which will allow you to edit in Page Editor Mode.
I just googled and found couple of good article which might help you.
http://www.nishtechinc.com/Blog/2015/March/A%20Better%20Approach%20at%20Carousel%20Management
http://www.awareweb.com/awareblog/11-25-14-custombuttonspageeditor
Try Html.Glass().BeginEditFrame() functionality built into Glass Mapper, wrapped in a #using block.
It allows you to specify the fields you wish to edit directly as params. Or if you're feeling adventurous, it can point to a full edit frame configuration in the core DB.

Sitecore Conditional Showing of Fields

So I am rather new to sitecore, and it's a topic that wasn't covered during my training. My questions is just to help point me to the correct term, or documentation on a method to do the following.
I have a definition item, with a ton of field groups, what I want to do is something like:
if Value of Field X is "yes" then collapse/hide Field X or Field Group X.
Does that make sense? Is it a validation rule? or some other kind of rules, is it a workflow I need to attach? Do you place it on just the field I want to hide, or the field that triggers the action?
I appreciate any guidance.
There is nothing out-of-the-box in Sitecore to achieve what you want but there is no reason you cannot create a composite custom field type to do this. The following articles will help you achieve this:
Creating a custom Sitecore Field
Getting to Know Sitecore: Custom Fields, Part 1
Create a new control, inheriting either from Droplist (if the comparison of the value is to be text based) or Droplink (for comparison of ID). You could add a parameter in the Source field of the control to specify what the values that trigger the hide should be.
The underlying control in the Content Editor is just a standard HTML select element. Add onchange events to the control and add your Javascript handler to hide the other controls. Since I could not find a way of adding additional custom css classes to the Sitecore controls, it would be best/easiest to hide all other controls in the same collapsible group after you control. This would mean you would need to group your controls better (or logically at least).
The Javascript will be something like this (the Content Editor uses the Prototype JS framework):
if ($(this).getValue() == 'no') {
// find the parent container of this control and then hide all the next siblings in the same group
$(this).up('.scEditorFieldMarker').nextSiblings('.scEditorFieldMarker').invoke('hide');
}
You can test this by running the above in the console, change out the keyword this with the id of your field, e.g. $('FIELD2292054').
What I am not sure about is how to trigger the hide on initial load, i.e. when someone returns to an existing item, it may be possible by adding to one of the pipelines, but would be better using a JS solution if possible. I'll have a think about this and get a proper code sample up over the next few days.
EDIT: You can add an event handler to sc:contenteditorupdated to handle the content editor being rel-oaded.
document.observe("sc:contenteditorupdated", myFunction);
I wrote up a blog post and put the code on GitHub if you are interested.
Not sure if you have come across Andy Uzick's this blog post.
He wisely talks about hiding fields in the Content Editor and has also created a Sitecore Module called Hide Field Template Extension which is hosted on the Sitecore Marketplace with the full source code to extend.
After reading through and trying the extension, I do feel that it will not completely resolve your issue (how you have described it in the question).
But it will give you:
A mid-term solution to hide a few unnecessary field that some content editors would not like to view.
Fields that are only required by administrators for admin purpose - to de-clutter these fields could be hidden.
Just one thing to bear in mind that it mentions in the requirements Sitecore 6.5 & 6.6. I have not tested it in Sitecore 7. If you are using Sitecore 7, which I think you are, one could modify the source code and make it work for Sitecore 7.
Have a look and share your findings.
Happy Sitecoring!

Customize Sitecore Content Editor Language Selector

I have already customize the Page Editor Language Selector by overriding the webedit command, but I can't figure out how to customize the Content Editor Language Selector:
I am trying to replicate the functionality I added for the Page Editor Language Selector, which sorts the languages by region and then language name, and also adjusts the name to not display the ": language (region)" part.
I have already tried overriding the Sitecore.Shell.Applications.Globalization.SelectLanguage.SelectLanguagePage on the SelectLanguage.xaml.xml shell file, but that is for the More Langauges dialog and not for the initial view of the languages. I have also tried overriding the ribbon:languages command, but that is for the click event on each language for actually selecting it.
Any suggestions where else I should look for this functionality?
That menu is generated by \sitecore\shell\Applications\Content Manager\Galleries\Languages\Gallery Languages.xml and the associated CodeBeside in Sitecore.Shell.Applications.ContentManager.Galleries.Languages.GalleryLanguagesForm, Sitecore.Client
The rendering of each option is control by \sitecore\shell\Applications\Content Manager\Galleries\Languages\Gallery Languages.Option.xml although the values are set from the CodeBeside.
BTW, I just used the Chrome Dev Tools to figure out what was going on. From the Network Panel there is an XHTTP call to default.aspx?xmlcontrol=Gallery.Languages. Useful debugging steps.

Sitecore personalisation - DropLink

Not fully used personalisaiton yet, so have what I hope is an easy question.
My page is setup where users can use a droplink to pick content for 3 "slots" on the homepage, from a "bucket" of available content items that can appear.
I want to use a "rule" to show different items in each slot, depending on if the rule is met or not, but I can't seem to work out where I set this.
Right now, my page editor view is broken (currently have an open ticket with Sitecore for work out why this is), so I am hoping this can be done from the content editor.
I have already ticked the "Show the Personalization Section" under Application Options.
This sounds like a conditional rendering rule that you're wanting to create. If that is the case, unless you want to apply the rule to ALL renderings (which I wouldn't recommend), you would create the rule under
System -> Marketing Center -> Personalization -> Rules. Here you can set up a conditional rendering rule that will check conditions and then do something. Since this is going to apply to presentation, the actions are limited. Mostly to presentation.
Now to apply that, you go to the layout details on the item or the standard values for the item template. When you click on the rendering (like you would to set a data source), it brings you to the edit screen and you should be able to scroll down to the Personalization section. If your rule is not in the list, then it's most likely in the wrong place. Anyway, if it's there, you simply put a check next to that box and it will now apply that rule when figuring out the layout details when the item is rendered.