将图像插入菜单列表

时间:2011-07-12 05:16:12

标签: content-management-system silverstripe

我正在尝试在每个第三个菜单列表中填充带有图像/徽标的菜单项,请参阅下面的示例。

enter image description here

我一直在使用Silverstripe填充菜单项,下面是我的代码到目前为止没有图像。有人可以指出我在第三级菜单上插入图像/徽标的正确方向吗?

  // initialise plugins
  jQuery(function(){
     jQuery('ul.sf-menu').superfish();
  });

  </script>

  <ul class="sf-menu">
  <% control Menu(1) %>
     <li>
        <a href="#a">$MenuTitle</a>
         <% if Children %>
           <ul><% control Children %>
              <li>
                 <a href="#aa">$MenuTitle</a>

                  <% if Children %>
           <ul><% control Children %>
              <li>
                 <a href="#aa">$MenuTitle</a>
              </li>
              <% end_control %>

              </ul><% end_if %>
              </li>
              <% end_control %>

              </ul><% end_if %>

     <!--<li>
        <a href="#">menu item</a>
     </li>-->

        </li> <!--current-->
  <% end_control %><!--   <li>
        <a href="#">menu item</a>
     </li>   -->
  </ul> <!--sf-menu-->

谢谢堆。 S:)

下面的

UPDATE 是我的Page.php,我已将$ Image.SetSize(20,20)$ MenuTitle插入到我的第三级菜单中。但是,每当我尝试通过CMS插入图像时,CMS中都会出现错误。对不起,我是新手,任何帮助都将不胜感激。

<?php
class Page extends SiteTree {

public static $db = array(
);

public static $has_one = array(
        'MenuImage' => 'Image'
);

function getCMSFields() {
    $fields = parent::getCMSFields();

    $fields->addFieldToTab("Root.Content.Images", new ImageField('MenuImage','Menu image'));

    return $fields;
}
}
     class Page_Controller extends ContentController {


public static $allowed_actions = array (
);

public function init() {
    parent::init();

    // Note: you should use SS template require tags inside your templates 
    // instead of putting Requirements calls here.  However these are 
    // included so that our older themes still work
    Requirements::themedCSS('layout'); 
    Requirements::themedCSS('typography'); 
    Requirements::themedCSS('form'); 
}
}

这是错误信息。

[用户错误]无法运行查询:SELECT * FROM“Page”WHERE“ID”= 15表'ss_show.page'不存在 POST / Show / admin / EditForm / field / MenuImage / EditFileForm

C5中的第525行:\ wamp \ www \ Show \ sapphire \ core \ model \ MySQLDatabase.php

3 个答案:

答案 0 :(得分:1)

假设您的页面对象上有图像,您可以通过执行以下操作在模板中呈现它:

$ MyImage.SetWidth(50)$ MenuTitle

“$ MyImage.SetWidth(50)”将输出图像标签,图像大小调整为50px宽。有关详细信息,请参阅SilverStripe image reference

答案 1 :(得分:0)

如果您还没有菜单图片,请按照官方文档进行操作:http://doc.silverstripe.org/sapphire/en/tutorials/2-extending-a-basic-site

答案 2 :(得分:0)

我在soneone的帮助下想出来了。以防其他人处于相同的情况,这是因为我没有重建我的数据库。访问mysite.com/dev/build以重建数据库。更新后面的代码在此之后工作。感谢大家! :)