use iframe or template - layout

Hi:
In our application,there are so many sub pages and menus,for example:
the main menu for the whole site:
Index/Document/News/SysConfig and etc.
And inside the Sysconfig page,there are also other menus like :
user managment,roles,logs... and etc.
Now we use the iframe to make the layout of the site,we change the related iframe's src attribute according to user's choice. but I wonder if this is a good idea?
I thought use the tempalte,for example the apache tiles in jsp and the masterpage in asp.net.
I wonder which is the best pratice?

Best Practice would be to go the templated route ...
I haven't really looked into web accessibility for a long time ... but in the past when I used to work on externally facing sites, using frames of any sort was a big no-no. Screen readers would have problems with frames including iframes. I'm not sure if the current generation of screen-readers handle them better.
There's also the search result/deep linking issues to consider. For example, will your google result link point directly to the page in the iframe? do you have to do a hack to redirect the user to the main page?
Also going the templated route may not be that difficult as long as you don't have a lot of content to migrate. There are fantastic content management solutions out there like Wordpress, or Drupal and Joomla if you have more complex needs.

Related

Adding onBlur and onFocus events

My company is currently looking into making our website "Web Accessible". I'm very rough when it comes to using Kentico (v8.2.50), but that's the CMS that is driving our site.
Running the front page through a Web Accessibility Checker, we encountered this warning on our main menu strip:
script not keyboard accessible - onmouseout missing onblur
onmouseover event handler missing onfocus event handler.
The fix sounds simple, but I'm not sure where to add these events. Has anyone had any experience with this?
It really depends on how your site has been put together. If the site has been built using the portal engine, you're probably able to find the markup that you're looking for in one of the transformations. There is a possibility that you're using the CMSListMenu control which for restricted flexibility in terms of markup. Without a little more information or a page to look at it is hard to tell.
As for looking through transformations, I can highly recommend Search for Kentico to help find things within the CMS, it's been invaluable on a number of occasions when looking for specific markup. What it can do is help you locate things within Kentico by very quickly looking through the templates and transformations etc.

Blogger mobile dynamic views .mobile custom class breaks web template

I work on a few blogger dynamic views sites. In order to use the mobile class you used to replace with : in the html. This allows for css customization. However now when you make this change, it allows my mobile site to use the styling I've set (like it always did) but it breaks my magazine web template changing it to the 'sidebar' template, which is completely trash for my purposes.
Anyone else notice this or find a work around. I know they're making changes periodically but this seems like a crazy glitch. I've let blogger know, but that doesn't help me in the mean time. Any help would be greatly appreciated, Thanks.

Extend IBM Connections on an application level like blogs and forums

We are trying to extend IBM Connections 4.5 CR3 with own XPages apps not on the well described widget extension level for communities but on the application level.
Our goal is to extend the applications menu and load our apps inside the connections framework just like the original blogs or forums IBM apps.
Some others tried the same thing like this one:
http://blog.riand.com/2014/06/get-your-application-integrated-within.html?m=1
It seems that the trick for coming around the CORS trouble is not well documented in there.
Mikkel has put some code onto GitHub for the server side page generation:
https://github.com/lekkimworld/ic-wrapper
Can someone over here solve this or help us to come some steps further?
There are a number of approaches you can take, depending how daring you are.
The most pragmatic approach would be:Load a connections page, steal the HTML that makes up the Menu bar, copy that into a XPages custom control and you are done (of course you had added a link to your application beforehand in LotusConnectionsConfig.xml
Check the JSP that reads the LotusConnectionsConfig.xml how it is rendering the menu bar. Configure the Apache HTTP to expose the XML for read access, so you can dynamically create that menu - saves work when your menu changes often
Use the approaches described by Phil
Add a small JS that you call in your added menu. It would remove the content of the Connections page below the menu level and insert an iFrame which loads your XPage
Cheat by building a widget for a community homepage and have just that one widget (taking the whole page as real estate) in that Community
That's just off my head. Hope it helps

LIferay from a front end perspective?

My background is as a website designer, making sites with Drupal and also doing the frontend. With my new job im just doing the frontend, and ive been asked by my boss to look into liferay (most people here are java developers), from a 'frontend perspective'.
So, how themable is liferay? Do you have (easy) control over the exact html outputted?
Bit of an open ended question I know but im not really sure how to be more specific....
Thanks
You don't have much control, because LR html pages are huge. it is a composition of Portal page and html sections of particular portlets. It can be 3 - 10 of them on a page, and you style them all within the huge portal Page ... That's why there is quite complicated CSS hierarchy and you should be a little skilled in CSS to feel comfortable in such an environment, also even if you turn off caching on tomcat and property file, sometimes you have to manually empty browser cache to reload the page properly.
But I must say that LR UX developers are the best I know and it's all very professionally done. Pleasure to work with it.
There are 4 important points :
It's relatively easy to get into it with cooperation with a java developer. Because you must learn how to set it up on the web server (tomcat) - the easiest way is to install the bundle and run it. But you also need to checkout the source code of LR, look at themes (login guest, password empty) and do some reverse engineering. The theme is deployed (via Ant) into a running instance of LR. This is relatively doable even without any Java daveloper's help. After you run "$ant create" in the theme directory, it builds a template theme were you make your themes and deploy them. But there must be a little bit of Ant specific setting in regard to PATHs on the filesystem.
The theme development is straightforward, you just create a _diff of the classic LR theme - you modify an already done theme. The purpose is, that the LR javascript & CSS framework and the CSS hierarchy is quite complex and this is the best way possible.
create portal-ext.properties in tomcat/webapps/ROOT/WEB-INF/classes/, add this line include-and-override=portal-developer-ext.properties and create portal-developer-ext.properties in the same location with this content, which makes UI development JS & CSS much more friendly.
theme.css.fast.load=false
theme.images.fast.load=false
javascript.fast.load=false
javascript.log.enabled=false
com.liferay.portal.servlet.filters.strip.StripFilter=false
com.liferay.portal.servlet.filters.minifier.MinifierFilter=false
layout.template.cache.enabled=false
combo.check.timestamp=true
freemarker.engine.cache.storage=soft:1
freemarker.engine.modification.check.interval=0
openoffice.cache.enabled=false
velocity.engine.resource.manager.cache.enabled=false
com.liferay.portal.servlet.filters.cache.CacheFilter=false
com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter=true
Also there is alloy framework build on top of YUI CSS & JS framework that provides you with a lot of "widgets" and plugins to work with.
Simply put, it very interesting thing to work with and one can learn a lot, but must be willing to spend some time to get into it.

Is there a security threat if I enable a user to add CSS?

Is it not secure to enable user to add his own rules of CSS to his personal page, in (for example) a social website ?
It is not secure. There are multiple ways to embed JavaScript in CSS such that it gets executed by at least some browsers. Google "XSS CSS" and look through the top hits.
Don't do this unless you're willing to do hardcore sanitization of the CSS, and to clean up the mess when your sanitization is inevitably bypassed and your users' cookies are compromised.
Allowing them to enter the CSS as free-form text (or upload a file) could lead to security problems. It might be safer to give them a Control Panel that lets them customize the look and feel (with limiations of course, it might be impossible to build a form that lets them customize EVERYthing), and implement the customization via CSS, while storing their settings as values in a structured set of database tables.
I think somebody answered this question before.
History lesson: myspace allowed custom CSS and scripts. For those of you not hanging around on the web in 2003 or so, this was a major security threat. Later on, the mass of user generated CSS which had been a selling point became a major detriment to the platform as many changes and improvements could not be made as they effectively had created a public API for their CSS hooks.
So it is a really, really bad idea to let users do CSS.

Resources