ちょっと困った…
layoutを継承したHTMLから継承元layoutの一部を表示/非表示切り替えをやりたいのだけど上手く行かない。もしかしたらm:echoでやれるかな、と思ったら駄目で、m:beforeRenderの子要素にm:echoを入れるとエラーになった。
もうひとつ非表示用layoutを作成してそれを継承すればよいのだけど、それではスマートではないしな…。どうしたものか…。
MLで質問してみるかな。
一応ソースを晒しておく。
layout.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link rel="stylesheet" type="text/css" href="../css/base.css" id="basestyle"> <title id="title">baselayout</title> </head> <body> <div id="container"> <div id="contents"> <div id="header"> <h1>Site Title</h1> </div> <div id="body"> <div id="menu"> <div class="module"> <div class="moduletitle"> <p>メニュー</p> </div> <div class="modulebody"> <ul> <li><a href="#">menu1</a></li> <li><a href="#">menu2</a></li> <li><a href="#">menu3</a></li> </ul> </div> </div> </div> <div> <div id="content"> <div class="section"> <h2>Content Title</h2> </div> </div> </div> </div> </div> <div id="footer"> <address>Copyright (C) 2006 xxx All rights reserved.</address> </div> </div> </body> </html>
layout.mayaa
<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org"> <!-- stylesheet --> <m:echo id="basestyle"> <m:attribute name="href" value="./../css/base.css" /> </m:echo> <!-- title --> <m:insert id="title" name="title" replace="false" /> <!-- header --> <m:insert id="header" name="header" replace="false" path="/pages/layout/header.html"/> <!-- menu --> <m:insert id="menu" name="menu" replace="false" path="/pages/layout/menu.html"/> <!-- content --> <m:insert id="content" name="content" replace="false"/> <!-- footer --> <m:insert id="footer" name="footer" replace="false" path="/pages/layout/footer.html"/> </m:mayaa>
test.mayaa
<?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org" m:noCache="true" m:extends="/pages/layout/layout.html"> <!-- メニューを非表示にしてみる とりあえず中断 <m:beforeRender> <m:echo id="menu"> <m:attribute name="style" value="display:none" /> </m:echo> </m:beforeRender> --> <m:doRender id="title" name="title"> TestTtitle </m:doRender> <m:doRender id="content" name="content" /> <m:write id="contenttitle" value="①Ⅰ㍉㌔㌢№℡㈱郄" replace="false" /> </m:mayaa>