I'm currently trying to remove fields from the Account Settings page and I am not sure how to properly approach this.
There's not really a proper way I can do this with CSS as it's a bit of a hacky way and it won't do the job properly as I can't access that page through CSS properly.
Also on this topic, when accessing the Account Settings page, my custom theme changes to the admin theme. Is there a reason this happens when accessing this page, even while signed in as a user?
You can disable few fields based on properties/setting ,
Ex if you want to hide birthday fields then you can set this
field.enable.com.liferay.portal.kernel.model.Contact.birthday=false same way for gender also u can user
field.enable.com.liferay.portal.kernel.model.Contact.male=false, but if you want to hide any other field for which property/setting is not available you can actually do it either by theme or fragment module(hook).
To do from theme you may need to create a theme for control panel as, account setting resides in uses control panel theme and then hide respected fields based on id
To do from fragment module you can refer below link
https://portal.liferay.dev/docs/7-1/tutorials/-/knowledge_base/t/jsp-overrides-using-osgi-fragments
Thanks
Related
I am creating a custom webpart using the Url Selector from kentico. I want the user to select content just from the Media Library. I went to form controls -> Url Selector -> Properties -> Dialogs_Content_Hide -> Default Value -> Yes and it still showing it in the Web Part. If I select the Dialogs_Web_Hide, Dialogs_Libraries_Hide and select the yes option in the default values, they hide, all except the Content_Dialogs.
Is this a bug? Or its something wrong?
Here is an example of the tabs
First set the form controls properties back to the way they were. If you don't, it will cause all kinds of problems later on.
Secondly, when you create the property in the webpart in the UI, select the URL selector form control for your text fields control. The scroll down just a bit and under the Editing Control Settings you'll see an "Configure" link. Click it. In there you will be able to tell the form control what tabs you want to enable and disable.
To add to Brenden's answer; if this is something you need to do a lot for your current build, then I'd also suggest making a copy of the Url selector form control and customize the properties as you originally mentioned. This way, you leave the default control in place for the system and have a control tailored to your needs. I've done this just now to check with a new form control that I called Media URL selector. Do make sure that you select the same source file as the original control in the Cloned form control file name property - Kentico by default will try to locate a new file called <original filename>_1.ascx. The reason for this is that admin section of your site also makes use of this control, so you may cause a nasty side effect somewhere else in the system.
As for why the settings had no effect; these are the default values you are setting. If you already have the form control in use, then the default setting would have been applied as they originally were. If you find one of the fields in question, you can change the control type to Text box, click Save, and then reassign it to Media URL selector.
We're moving from a pure portal to a portal/aspx development model. So I've been working on getting my .Master pages working and so far so good, except i need a way to have a Editable Text webpart applied globally.
Imaging a block of copy that sits in the header and appears on each page.
So, in portal, the copy is entered, and this is used through out the site, regardless of the template. I know i can add static copy to the parent .Master page, but this needs to be editable by an admin.
I've tried registering the Editable Text webpart on the ASPX page, but this doesn't seem to work correctly in the portal.
I believe the way to accomplish this is to create a single page template that has only the editable text webpart on it and does not inherit any other content. Then on your master page, add a page placeholder which uses that editable text webpart page template. This should then display that on every page. I've not done this approach before but hypothetically speaking it should work.
You could set up a Custom Setting.
The Kentico documentation has a great How-To guide for that.
After that, you can then just reference it using a macro like {% Settings.MyCustomSetting %} on each page - this also allows you to then control how the text is rendered on each section, in case some sections have specific markup you need to apply to the text block.
What is the reason of converting to Mixed mode? Is it better control over the basic page markup or something else?
Are you aware that you can customize CMSPages/PortalTemplate.aspx or replace it by your custom base page completely?
You may consider to use this approach, and if you need that because some pages are more complex, so it makes more sense to hardcode them, you can also implement them as some larger custom web parts.
The Situation: I've got a mid-sized chunk of html/javascript that contains an authentication script/input (it's a text input, radio control, and a combo box and a few buttons). What it is is less important than the concept that it's a mass of static client side code that the marketing department can pretty easily accidentally the whole thing.
The Desire: I want the users to be able to add it as a whole to a page, but not be able to modify it. When something needs to change, I want to change it in one place and have it be changed on all the pages.
What I've Tried: Widget with a default text. It works, but feels wrong. Users can edit it, and if they do when I fix it one place it doesn't propagate to all the instances. I'm a bit of a Kentico noob, but it seems like there should be a better way to do this.
Also note: I'm using portal engine if that makes a difference.
A widget is the proper usage. What you make your widget inherit from is the key in this case. I'd suggest creating a new widget based on a static HTML webpart. This way you can set the static HTML markup and hide the property from the content editor on the front end. You can do this by going to the Properties tab of the widget and setting the visibility of the field on the form. Don't delete the field, just hide it. It should be a checkbox that says hide on public form or editing form.
** Edit **
As I read through my answer and comments, I realized I meant to say clone the static HTML webpart and set its default text to your javascript. Then create a widget based on that cloned webpart. The text will reside in the web part and will allow you to update it in one place later, if needed.
I will not do it this way because you will be not able to make changes in the future. You can better create a new webpart this can be an empty webpart and then create a custom layout. In this layout you can put you're code. In this way you can always change you're code in the future and then it will be changed on all the places where the widget is placed.
I'd use a new widget based on the Static HTML webpart (make the field read only or hide it as Brenden mentioned), but store the data in a new custom setting.
no coding needed (only a macro to read the custom setting)
able to edit the script on the fly on any instance in the settings module. If you have multiple of these settings you won't need to go through all kinds of widgets to adjust their default setting but find them on a central place.
Cheers!
David
In this case I think it makes sense to create a custom web part to store all your code in it and use it that way. If you want to achieve it without creating a custom web part, you have to store the code in some non-web part and not widget specific object. I like the suggestion of creating a custom setting. You can then access this custom setting via a macro. This macro can be used as a default property of a newly created web part (inherited e.g. from the static text web part, you'd use the text property). You may as well create a widget out of it. Another approach is to use Kentico localization keys as a workaround. you can create a key in the Localization application and access it again, via a macro, e.g. {?customkey.myhtml?}. The approach with a custom setting however sounds cleaner to me.
This syntax should be working to access a custom setting value via macro:
{%Settings.CustomSettings.xxx%}
{%Settings.CustomSettings["xxx"]%}
{%Settings.CustomSettings.GetValue("xxx")%}
I would like to use a different layout view for anonymous users. I have tried using url alternates and I am not sure how I can create a layout for anonymous users since there is no particular url for them.
The idea is that, if a new user visits the site I want to show a splash screen with very limited information with an option to register/ login to view the full site. This splash screen will have a completely different layout / look and feel from the rest of the site.
I tried using the Anonymous user layer but all I could do was move widgets (maybe I am missing something).
Any help would be greatly appreciated.
Thanks!
There is no out of the box solution but you can do something like this to get what you want:
Add new layout in a file with the name of your choosing - for example, you could name it Splash.cshtml.
Add the code below to the top of your Layout.cshtml template:
#if (WorkContext.CurrentUser == null) {
#Display.Splash()
return;
}
The code will check if the user is logged in. If it's not, it will render the content of your Splash.cshtml template, and stop the rendering of the rest of the Layout.cshtml template.
If you need to display any of the widgets in your Splash.cshtml template, you could add it by simply adding #Display(Layout.NameOfTheZone) where you should replace NameOfTheZone with the actual name of the zone you're using inside the Layout.cshtml template. Generally, anything that you use inside Layout.cshtml template with the Model object, you can use through Layout object inside any of your views.
How do you add a content query webpart to a apublishing page layout and configure it to aggregate content from the pages in the page library??Can some one give me some insight on this?? Do I drop a content query webpart in SP designer?? If I do that, how do I configure the query??
Or do I add a content query webpart using ribbon and then export it and make customizations and import and drop that one on the page layout??? Please someone???
SCENARIO: I have to insert a content query webpart to a publishing page layout for Physicians profile site. Based on the page layout, there will be profile pages for each physicians. Now, each physician's' profile page will have his/her primary practice location name, address, phone etc as well as other multiple practice locations. Say Mr Tom's primary location is listed as hospital 'x' on his profile page, now I want to be able to also aggregate the names of all the other lawyers that also work in hospital 'X' as Tom's office members on his bio page using content query webpart on the page layout. How do I add and configure the webpart? I mean it's easy to add a content query webpart in just one page and configure it but I want to add it on a page layout so all the content pages will have its implementation as the pages are created by the authors.
say there are 10 profile pages in the pages library and 5 of them have at least one of their pracice locations as hopital X(they may be working at hospital Y, Z..etc at the same time too), now I want all 5 doctors name aggregated on the Tom's profile pages as his office members!?
Lots of question marks... yes you can add the content query webpart to a layout by using SP designer. This will COPY that webpart to every page that is created using that layout (or has its layout switched to that one). That makes the query to set up tricky because it needs to get the input on WHICH physician from somewhere - check out this article here. Using the PageFieldValue option should do the trick.
To change a CQWP, don't modify the default version. Instead, navigate to your XSL file in the Style Library in SPD and copy the ItemStyle.XSL and rename the copy to something else (such as CUSTOMItemStyle.xsl). Then go to a test page, place a blank CQWP, and click "Export". Open the .webpart file that you exported and modify the properties to link to your CUSTOMItemStyle.xsl.
Save the .webpart file and import it back to the gallery through the browser. Rename the new CQWP (to something like CUSTOM_CQWP.webpart or whatever).
Now you can modify the CUSTOMItemStyle.xsl to use custom XSL. Shape the XSL file how your requirements dictate, then in your test page, change the Web Part properties to use your new custom ItemSTyle. Once your web part look like you want it to, you can export it again and then reimport it back into the gallery and all your settings will be saved.
Now you can go to Designer and add this web part to your page layouts. When the user uses that layout, the web part is already placed on the page and wired up accordingly. Additionally, by usign this method, they can change teh web part properties of the web part or even delete the web part altogether if they don't want it, without affecting your page layout.
http://msdn.microsoft.com/en-us/library/bb447557(v=office.12).aspx