我感到很困惑。我应该在default.ctp中写什么

时间:2010-05-14 13:48:14

标签: cakephp

我正在学习cakePHP, 一切似乎都没问题,除了我对如何使用default.ctp以及应该放在Elements文件夹中的内容感到非常困惑。

这是我在学习cakePHP的第一课后一直使用的default.ctp文件:
(我从这个URL复制http://book.cakephp.org/view/96/Layouts

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title_for_layout?></title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<!-- Include external files and scripts here (See HTML helper for more info.) -->
<?php echo $scripts_for_layout ?>
</head>
<body>

<!-- If you'd like some sort of menu to 
show up on all of your views, include it here -->
<div id="header">
    <div id="menu">...</div>
</div>

<!-- Here's where I want my views to be displayed -->
<?php echo $content_for_layout ?>

<!-- Add a footer to each displayed page -->
<div id="footer">...</div>

</body>
</html>

但问题是布局会对我创建的所有网页生效 让我们看看我最近遇到的情况 在其中一个.ctp文件中,我需要使用JQuery函数
,我需要在.ctp文件中添加一些和标签。 以下是我使用的标签:

<Script language="javascript">
$(document).ready(function()
{
// some functions here
});
</Script>

<style type="text/css">
{
#toppage{
 width:800px;
}

但是当我关注default.ctp文件时,我注意到这些标签(即<Style><Script>)恰好出现在标签下方。
据我所知,自定义的Javascript函数应该放在HTML的标记内 我已考虑在default.ctp文件中添加<Style><Script>,但随后 这些代码将出现在每个网页中,而不仅仅是特定的网页。

请帮忙。

3 个答案:

答案 0 :(得分:3)

如果您可以为特定于页面的样式创建外部样式表并将JavaScript保存在单独的文件中,那么您将能够在视图中使用HTML帮助程序将链接标记插入到样式表中{ {1}}变量出现在布局中,而脚本标记出现在JavaScript文件中,代替$stylesheets_for_layout变量。为此,将$scripts_for_layout键设置为inline的数组作为false方法的第二个参数或作为script()方法的第三个参数传递。

css()

答案 1 :(得分:0)

在页面顶部放置一个页面开关,并有条件地包含这两个文件。或者使文件以页面上的内容为条件。

在jQuery中,在执行操作之前,先查看您要使用的元素是否存在。也许你的CSS,你应该将元素包装在一个具有唯一ID的div中,所以css只会影响这些元素。

答案 2 :(得分:0)

您还可以创建另一个布局,并将其用于manual中所述的特定方法。