通过编辑default.ctp在cake框架中添加徽标

时间:2010-02-07 02:34:19

标签: templates cakephp layout

我在哪里放置图像的代码,然后我将实际的图像文件放在哪里

 <!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>
    <?php echo $html->charset(); ?>
    <title>
        <?php __('neigh*borrow'); ?>
        <?php echo $title_for_layout; ?>
    </title>
    <?php
        echo $html->meta('icon');

        echo $html->css('cake.generic');

        echo $scripts_for_layout;
    ?>
</head>
<body>
    <div id="container">
        <div id="header">
            <h1><?php echo $html->link(__('neigh*borrow, the communty for borrowing things you need when you need them. NYU students interested in participating in the BETA should enter an item they would like to borrow along with their .NYU.EDU email address. ', true), 'http://cakephp.org'); ?></h1>
        </div>
        <div id="content">

            <?php $session->flash(); ?>

            <?php echo $content_for_layout; ?>

        </div>
        <div id="footer">
            <?php echo $html->link(
                    $html->image('cake.power.gif', array('alt'=> __("CakePHP: the rapid development php framework", true), 'border'=>"0")),
                    'http://www.cakephp.org/',
                    array('target'=>'_blank'), null, false
                );
            ?>
        </div>
    </div>
    <?php echo $cakeDebug; ?>
</body>
</html>

3 个答案:

答案 0 :(得分:3)

将图片放在/app/webroot/img/文件夹中,并使用视图中任意位置的HtmlHelper(包括布局)为其输出图片代码:

// outputs tag for /webroot/img/myimage.jpg
echo $html->image('myimage.jpg');

// outputs tag for /webroot/img/subfolder/otherimage.jpg
echo $html->image('subfolder/otherimage.jpg');

// outputs tag for /webroot/img/myimage.jpg with an alt attribute
echo $html->image('myimage.jpg', array('alt' => 'My Text for My Image'));

为了确保您的应用程序具有可移植性和可维护性,您需要使用HtmlHelper输出带有图像正确URL的图像标记。这基本上适用于Cake中的所有URL:样式表,图像,链接,URL。

答案 1 :(得分:1)

正如Deceze所指出的,Adam通常会在webroot下面的文件夹img中找到它。这样访问很容易。您可以将它们放在webroot下面的其他文件夹中,但是路径规范之前应该有一个directory_separator:

//folder = webroot/myImages
echo $html->image('/myImages/image.png');

当你开始包含javascript和css时,这一切都非常有用:

echo $javascript->link('someJavascript',false);
echo $html->css('bigStyles',true);

false会导致脚本或样式包含在<head>...</head>true将导致它们被包含在php语句出现的位置。

请注意,javascript和css没有扩展名。

虽然我们正在讨论这个问题,但如果您想将图像用作链接,则需要在链接语句中禁用转义,即:

$eye = $html->image('eye.jpg');
// the final false disables escaping.
echo $html->link($eye,$url,array('target'=>'_blank'),false,false); 

修改 我打算包含这个链接:http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf这是一个方便但令人沮丧的不完整的快速参考。

答案 2 :(得分:-2)

使用html帮助程序既耗资又无助:您最终会编写更多代码。

为什么不用简单的HTML编写所需的内容?

(另外,格式化一些代码可能很有用)