2011-01-24 35 views
2

基本上我会喜欢用dojo布局一个网站,我将有一个标题,内容区域(这是分成两部分在左窗格中的一些手风琴和右主要内容),然后是页脚。需要帮助铺设一个网站与dojo

因为我需要网站总是有这个布局我决定把它放在主布局。然而,当我查看网站时,我看到默认索引页面正常,但它不在窗格中,因为我希望没有任何dijit小部件被渲染。

不确定是否允许在帖子中粘贴大型代码,如果不是,我很抱歉,但下面是主布局的代码。我对默认的zend工具结构没有太多的了解。我只创建了几个模块:

<?php 
    Zend_Dojo::enableView($this); 

    $this->dojo()->setCdnBase(Zend_Dojo::CDN_BASE_GOOGLE) 
      ->addStyleSheetModule('dijit.themes.tundra') 
      ->setDjConfigOption('parseOnload', TRUE) 
      ->setDjConfigOption('locale', 'en-GB') 
      ->setDjConfigOption('isDebug', TRUE); 
    echo $this->dojo(); 
    ?> 

    <script type="text/javascript"> 
     dojo.require("dijit.layout.ContentPane"); 
     dojo.require("dijit.layout.BorderContainer"); 
     dojo.require("dijit.layout.TabContainer"); 
     dojo.require("dijit.layout.AccordionContainer"); 
    </script> 
</head> 
<body> 
    <div dojoType="dijit.layout.BorderContainer" gutters="true" id="borderContainer"> 
     <div id="header" dojoType="dijit.layout.ContentPane" region="top" splitter="false"> 
      <div id="logo"> 
       <img src="/images/logo.gif" /> 
      </div> 

      <div id="menu"> 
       <a href="<?php echo $this->url(array(), 'home'); ?>">HOME</a> 
       <a href="<?php echo $this->url(array('page' => 'services'), 'static-content'); ?>">SERVICES</a> 
       <a href="#">CONTACT</a> 
      </div> 
     </div><!-- end header --> 

     <div dojoType="dijit.layout.BorderContainer" liveSplitters="false" design="sidebar" 
      region="center" id="content"> 
      <div dojoType="dijit.layout.AccordionContainer" minSize="20" style="width: 300px;" 
       id="leftAccordion" region="leading" splitter="true"> 
       <div dojoType="dijit.layout.AccordionPane" title="One fancy Pane"> 
       </div> 
       <div dojoType="dijit.layout.AccordionPane" title="Another one"> 
       </div> 
       <div dojoType="dijit.layout.AccordionPane" title="Even more fancy" selected="true"> 
       </div> 
       <div dojoType="dijit.layout.AccordionPane" title="Last, but not least"> 
       </div> <!-- end AccordionContainer --> 
      </div> 
      <div dojoType="dijit.layout.TabContainer" region="center" tabStrip="true"> 
       <div dojoType="dijit.layout.ContentPane" title="My first tab" selected="true"> 
        <?php echo $this->layout()->content ?> 
       </div> 
       <div dojoType="dijit.layout.ContentPane" title="My second tab"> 
        Lorem ipsum and all around - second... 
       </div> 
       <div dojoType="dijit.layout.ContentPane" title="My last tab" closable="true"> 
        Lorem ipsum and all around - last... 
       </div> 
      </div> 

     </div> 
     <div id="footer"> 
      <p>Created with <a href="http://framework.zend.com/">Zend Framework</a>. Licensed under <a href="http://www.creativecommons.org/">Creative Commons</a>.</p> 
     </div><!-- end footer --> 
    </div> 
+0

请注意,您可能不需要为了您的目的而嵌套两个BorderContainer;一个顶部/左/底部/中心区域应该是足够的。看看这个“更高级的例子”:http://dojotoolkit.org/reference-guide/dijit/layout/BorderContainer.html#more-advanced-example另外,你缺少`class =“tundra”`在你的身体标签上实际应用主题。 – 2011-01-25 00:00:15

回答

0

您在设置dojo配置选项时出现拼写错误。取而代之的

->setDjConfigOption('parseOnload', TRUE) 

它需要

->setDjConfigOption('parseOnLoad', TRUE) 

关注的大写字母 'L'。如果你解决了这个问题,那么至少dojo解析器会做它的工作。

没有检查您的布局是否正常,请参阅Ken的评论。