Я так растерялся. Что я должен написать в default.ctp - PullRequest
0 голосов
/ 14 мая 2010

Я учу тортPHP, все выглядит хорошо, за исключением того, что меня очень смущает вопрос о том, как использовать default.ctp и что следует поместить в папку Elements.

Вот файл default.ctp, который я использовал с самого моего первого урока по обучению cakePHP:
(я скопировал с этого 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.
Я решил добавить <Style> и <Script> в файл default.ctp,
но потом эти коды будут появляться на каждой веб-странице, а не только на конкретной веб-странице.

Пожалуйста, помогите.

Ответы [ 3 ]

3 голосов
/ 14 мая 2010

Если бы вы могли создать внешнюю таблицу стилей для стилей, специфичных для страницы, а также сохранить свой JavaScript в отдельном файле, то вы могли бы использовать помощник HTML в представлении, чтобы вставить тег ссылки в таблицу стилей, где * В макете появится переменная 1001 *, а вместо переменной $scripts_for_layout появится тег скрипта для файла JavaScript. Для этого передайте массив с ключом inline, установленным на false, в качестве второго аргумента метода script() или в качестве третьего аргумента метода css().

echo $this->Html->script('extra-js', array('inline' => false));
echo $this->Html->css('extra-css', 'stylesheet', array('inline' => false));
0 голосов
/ 15 мая 2010

Вы также можете создать другой макет и использовать его для конкретных методов, как описано в руководстве .

0 голосов
/ 14 мая 2010

Поместите переключатель страницы в верхней части макета и включите два файла условно. Или сделайте файлы условными на то, что на странице.

В вашем jQuery посмотрите, существует ли элемент, с которым вы хотите работать, прежде чем что-то с ним делать. Возможно, ваш CSS, вы должны заключить элементы в div с уникальным идентификатором, поэтому CSS воздействует только на эти элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...