Вставьте изображения в список меню - PullRequest
1 голос
/ 12 июля 2011

Я пытаюсь заполнить пункты моего меню изображением / логотипом в каждом третьем списке меню, см. Пример ниже.

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 ""WHERE" ID "= 15 Таблица 'ss_show.page' не существует POST / Show / admin / EditForm / field / MenuImage / EditFileForm

Строка 525 в C: \ wamp \ www \ Show \ sapphire \ядро \ модель \ MySQLDatabase.php

Ответы [ 3 ]

1 голос
/ 12 июля 2011

Предполагая, что у вас есть изображение на вашем объекте страницы, вы можете отобразить его в своем шаблоне, выполнив что-то вроде этого:

$ MyImage.SetWidth (50) $ MenuTitle

"$ MyImage.SetWidth (50) "выведет тег изображения с размером изображения до 50 пикселей в ширину.См. Ссылка на изображение SilverStripe для получения дополнительной информации.

0 голосов
/ 14 июля 2011

Я понял это с помощью Сонеоне.На тот случай, если другие оказались в такой же ситуации, потому что я не перестраивал свою базу данных.Посетите mysite.com/dev/build, чтобы восстановить базу данных.Код выше в обновлении работает после этого.Спасибо всем!:)

0 голосов
/ 13 июля 2011

Если у вас еще нет изображения меню, следуйте официальной документации, чтобы сделать это: http://doc.silverstripe.org/sapphire/en/tutorials/2-extending-a-basic-site

...