1
This is a very raw idea, but it might be worth developing better.
One of the
major problems of frames is that they rarely
degrade gracefully (i.e., things break if not accessed from the frameset), mostly due to the fact that they rely on html documents that are meaningless (or flawed) out of the frameset context. However, PHP allows all of the frames' sources to be actually pieces of the same document.
Using conditionals and some frameset variable available to PHP*, one can build a page that renders as a menu bar when called from the left frame and as contents when called from the right frame, and yet renders the whole thing when not in a frameset. It's also a good idea to add the corresponding frame targets to link tags when under a frameset
.
Since XOOPS has two design layers well separated from contents, things get much easier
A complete** framing solution in XOOPS would only require a new template (that has no difference from default when not framed) and a wrapper frameset page (that has to set variables/constants that Smarty can understand*). Optionally, a new theme (that has no difference from default or other normal themes when not framed) can be used.
Example of a wrapper menu/contents "frames.php" page:
include "mainfile.php";
echo '
';
//headerstuff, perhaps Smarty parsed?
echo "
$XOOPS_URL' target='_top'>Follow this link, oh frameless creature