When using a border container, I believe issues arise based on DocType and
also the height properties on some html elements.
If i recall correctly, you need to make sure that you have something akin to
html,body {
height: 100%;
}
defined in CSS. I also want to say that setting the DocType plays a part as
well, but I cannot recall if it works better in Strict or Transitional.
I've also heard of some omitting the doctype when using a border container,
so you could try removing it for testing.
Hope this helps,
Mike
On Sat, Jan 31, 2009 at 11:26 AM, Aspra Flavius Adrian <
[email protected]> wrote:
> Hi. It seems that dojo does not hook itself via the addOnLoad function
> when used in a view script such as:
>
> $this->borderContainer()->captureStart('masterLayout',
> array('design' => 'headline'),
> array('style' => 'border: 1px
> solid black'));
>
> echo $this->contentPane(
> 'menuPane',
> 'This is the menu pane',
> array('region' => 'top'),
> array('style' => 'background-color: darkblue;')
> );
>
> echo $this->contentPane(
> 'navPane',
> 'This is the navigation pane',
> array('region' => 'left'),
> array('style' => 'width: 200px; background-color: lightblue;')
> );
> echo $this->contentPane(
> 'mainPane',
> 'This is the main content pane area',
> array('region' => 'center'),
> array('style' => 'background-color: white;')
> );
> echo $this->contentPane(
> 'statusPane',
> 'Status area',
> array('region' => 'bottom'),
> array('style' => 'background-color: lightgray;')
> );
>
> echo $this->borderContainer()->captureEnd('masterLayout');
> - code from the official manual
>
> However, it does if I add an editor widget for example, or if I don't
> use captureStart/captureEnd at all, and only create an editor widget.
> What may I be missing?
> Dojo is set up in a FC plugin's routeStartup() like this:
> public function initView($doLayout = TRUE) {
> $view = new Zend_View;
> //TODO: add helper path
> Zend_Dojo::enableView($view);
> Zend_Dojo_View_Helper_Dojo::setUseDeclarative();
> //Zend_Dojo_View_Helper_Dojo::setUseProgrammatic(TRUE);
>
> $view->baseUrl =
> rtrim($this->getRequest()->getBaseUrl(),'/');
> $view->doctype($this->config->docType);
>
> $view->headTitle()->setSeparator($this->config->titleSeparator)
> ->append($this->config->siteName);
>
> $view->headMeta()->appendHttpEquiv('Content-Type','text/html;
> charset=utf-8');
>
> $view->dojo()->setDjConfigOption('isDebug',TRUE) //TODO:
> load from config
> ->setLocalPath('/~flav/js/dojo/dojo.js')//TODO: load
> from config
> ->addStylesheetModule('dijit.themes.tundra')
> ->setDjConfigOption('parseOnLoad',TRUE)
> ->enable();
>
> Zend_Registry::set('view',$view);
>
> if($doLayout) {
> $viewRenderer =
> Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
> $viewRenderer->setView($view);
> $layout = Zend_Layout::startMvc(array(
> 'layoutPath' => $this->config->layoutPath
> ));
> }
> return $this;
> }
>
> and layout.phtml is:
> <?php
> if(Zend_Controller_Front::getInstance()->getRequest()->getParam('nojs',FALSE))
> {
> $this->dojo()->disable();
> //TODO convert links
> }
> ?>
> <?php echo $this->doctype(); ?>
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <?php
> $this->headLink()->appendStylesheet('/~flav/css/global.css');
>
> echo $this->headTitle();
> echo $this->headMeta();
> echo $this->dojo();
> echo $this->headStyle();
> echo $this->headLink();
> echo $this->headScript();
> ?>
> </head>
> <body class="tundra">
> <?php echo $this->layout()->content; ?>
> <?php echo $this->inlineScript(); ?>
> </body>
> </html>
>
> And the generated html something like this:
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
> xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <title>My First ZF site</title><meta http-equiv="Content-Type"
> content="text/html; charset=utf-8" /><link
> href="/~flav/css/global.css" media="screen" rel="stylesheet"
> type="text/css" /><style type="text/css">
> <!--
> @import "/~flav/js/dijit/themes/tundra/tundra.css";
> -->
> </style>
> <script type="text/javascript">
> //<![CDATA[
> var djConfig = {"isDebug":true,"parseOnLoad":true};
> //]]>
> </script>
> <script type="text/javascript" src="/~flav/js/dojo/dojo.js"></script>
>
> <script type="text/javascript">
> //<![CDATA[
> dojo.require("dijit.layout.ContentPane");
> dojo.require("dijit.layout.BorderContainer");
> //]]>
>
> </script></head>
> <body class="tundra">
> <div style="border: 1px solid black" id="masterLayout"
> design="headline" dojoType="dijit.layout.BorderContainer"><div
> style="background-color: darkblue;" id="menuPane" region="top"
> dojoType="dijit.layout.ContentPane">This is the menu pane</div>
> <div style="width: 200px; background-color: lightblue;" id="navPane"
> region="left" dojoType="dijit.layout.ContentPane">This is the
> navigation pane</div>
>
> <div style="background-color: white;" id="mainPane" region="center"
> dojoType="dijit.layout.ContentPane">This is the main content pane
> area</div>
> <div style="background-color: lightgray;" id="statusPane"
> region="bottom" dojoType="dijit.layout.ContentPane">Status area</div>
> </div>
> </body>
> </html>
>
> But the page is white, with no visible widgets.
>
> Does anyone have any idea how to solve this?
>
> --Flavius
>
--
Michael Crumm
[email protected]