Placement of portlets on a liferay page - liferay

I am using 1-2 Columns (70-30) layout for the page in liferay. The problem that I am facing is that I am not able to place them properly in 1-2 columns form even after dragging them properly on the page. I am making use of web content portlets. The portlet that should be placed on '30' side;its data appears the way I want on the RHS but the portlet window covers the entire screen. How should I place the portlets to get the exact 1-2 columns layout?
EDIT:
Is it possible to place a portlet over another portlet?

If the portlets that you are trying to place are custom portlets, It may be worth checking if custom css width property forcing portlet to occupy more width than supposed.
You can't place one portlet over another portlet. But "Nested Portlet" can be used to include more than one portlet in their own layout.
As you don't have public URL, I can only suggest steps to debug your issue.
Login to portal as Administrator.
Create a new page.
Apply liferay default classic theme to the page and apply 70-30 layout.
Add one Web content display portlet instance in column 1 and another in column 2.
Checkpoint: Enable Edit checkbox and see if the default portlet boundaries are occupying width they are supposed to take. If yes, then your liferay default working fine.
Checkpoint: Select your web content article and see if width of display changes. If Yes, then the problem is with with your web content article.
Checkpoint: Apply your theme and then see the issue. Then issue may be with your custom css files in _diff folder.
Use Firebug in Firefox or chrome dom viewer (F12 in chrome window) and observe which CSS style is causing the issue.

Related

Liferay 7.3: How to make menu items in a theme controlled by admin

I have a liferay theme for version 7.3. I am facing one problem in the theme's menu.
Now menu has some static items. How can I change (add / remove) items dynamically by admin account?
The menu is added in /src/templates/portal_normal.ftl as
<#include "${full_templates_path}/menu-bar.ftl" />
this file has static html data.
Now how can I make it dynamic so that admin can change the menu items?
Make the menu as a web content, and drag it to the theme? Not makes sense because menu is the part of the theme.
Or any other way of picking the menu items, looping the items in .ftl and display it?
The times of scripting navigation and menus in the theme are over, and I'd rather recommend to embed a portlet in your theme that does the job. That might be a stock NavigationMenu portlet (see how Liferay's default "classic theme" does this with NavigationMenu or the SearchBar), or a custom one, which generates exactly what you'd like.
Reason: It's a lot simpler to redeploy a new portlet and generate/test appropriate HTML markup generation in a portlet than it is to implement proper error handling in a theme's freemarker script.
The solution can be if you want to add your data in navigation menu in themes, go into the navigation menus inside site builder in menu and create a new menu by clicking + button on top right and name the menu. Then go into the pages inside site builder inside menu. There will be a + sign on public pages. Click that and add a page that you want to list. If you want to create a submenu then on the page that is created, create a subpage by clicking there + sign. The page will be child and will be shown as a sub menu in theme.

Kentico 12: detect if an editable area contains any widgets

I'm building a site in Kentico 12 MVC and working on setting up content personalization. The normal way to do this is to add an editable area in the view:
<div>
#Html.Kentico().EditableArea("area1")
</div>
Then, in the CMS, the Page tab will show an empty area where the user can add a widget with personalized content.
The problem is that the content I want to personalize is located in my site's login box, which is a common element on every page, so I'd need to manually add a widget into the editable area on every page individually. But my site has over 300 pages, so that's totally impractical.
Is there a way from within my view model that I could check if the editable area has any widgets, and if it doesn't, output default content instead? I'm trying to see if there's an API method or something that would let me count the number of widgets inside an editable area, but I can't find anything in the documentation.
I guess you need to check with regex if Editable area html contains widget tag "<object type="widget" >"

Kentico global webpart usage

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.

"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!

Using a MulitpleLookupField in MOSS '07 Layout Page

I have a page layout for my MOSS '07 site that I want put a MultipleLookupField in. The field will point to a multiple lookup column in my custom content type that points back to the pages library so I can have a "Related Articles" field.
I've gotten the field to show up correctly--it's even editable when the page is in edit mode! But when you click on the link that shows up there, it display the page's properties view instead of the page itself.
There's lots of properties on the control, but there's little documentation at MSFT as to what they do.
Does anyone know how to change the link's URL to the actual page instead of the properties view?
Here's the tag I'm using:
<SharePointWebControls:MultipleLookupField
ID="MultipleLookupField1"
FieldName="RelatedIssues"
runat="server"></SharePointWebControls:MultipleLookupField>
The link takes me to here: /Pages/Forms/DispForm.aspx?ID=6&RootFolder=*
I want it to take me here: /Pages/faq1.aspx
Unfortunately the lookup control is designed to be compatible with generic lists and does not understand that the document libraries have a file with a specific url associated.
You will probably have to find a custom lookup control on the web or roll your own.

Resources