2010-05-14 64 views
0

我正在學習cakePHP, 一切似乎都很好,除了我很困惑
如何使用default.ctp和什麼應該放在元素文件夾。
我很困惑。我應該寫什麼在default.ctp

這裏是我一直在使用,因爲我的學習CakePHP的第一課的default.thtml中的文件:

<!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> 

(我從這個URL http://book.cakephp.org/view/96/Layouts複製),但問題是,佈局對我創建的所有網頁生效。
我們來看看最近遇到的情況。
在其中一個.ctp文件中,我需要使用JQuery函數
,並且需要在.ctp文件中添加一些和標記。 這裏是和標籤我用:

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

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

但是,當我跟着default.thtml中的文件,
我注意到,這些標記(即<Style><Script>)碰巧出現在標籤的下方。
據我所知,自定義的Javascript函數
應該放在HTML標記中。
我已經考慮在default.ctp文件中添加<Style><Script>
但這些代碼會出現在每個網頁中,而不僅僅是一個特定的網頁。

請幫忙。

回答

3

如果您可以爲頁面特定的樣式創建外部樣式表並將JavaScript保存在單獨的文件中,那麼您可以在視圖中使用HTML助手將鏈接標記插入樣式表, $stylesheets_for_layout變量出現在佈局中,並且腳本標記代替了JavaScript文件中的$scripts_for_layout變量。爲此,請將inline鍵設置爲false作爲script()方法的第二個參數或作爲css()方法的第三個參數。

echo $this->Html->script('extra-js', array('inline' => false)); 
echo $this->Html->css('extra-css', 'stylesheet', array('inline' => false)); 
0

將頁面切換放置在佈局的頂部,並有條件地包含這兩個文件。或者使文件以頁面上的內容爲條件。

在你的jQuery中,在處理它之前查看你想使用的元素是否存在。也許你的CSS,你應該用一個唯一的ID包裝在一個div中的元素,所以CSS隻影響這些元素。

0

您還可以創建另一個佈局,並將其用於manual中所述的特定方法。