Вставить изображения в список меню

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

введите описание изображения здесь

Я использовал 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-->

Thanks heaps. S:)

ОБНОВЛЕНИЕ ниже - это мой 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

Строка 525 в C: \ wamp \ www \ Show \ sapphire \ core \ model \ MySQLDatabase.php


person grumpypanda    schedule 12.07.2011    source источник
comment
как вы можете получить изображение в меню, пожалуйста, помогите мне вернуться к той же структуре меню ....   -  person Anudeep GI    schedule 04.01.2014
comment
Привет, Anudeep, я задал этот вопрос 2,5 года назад, извините, я не могу точно вспомнить, как я это делал в то время. Однако, пожалуйста, прочтите мое обновление выше, если вы используете Silverstripe (и я думаю, что я это сделал), это может дать вам некоторые направления. Я предлагаю вам задать новый вопрос, чтобы указать на вашу проблему, возможно, кто-то сможет вам помочь.   -  person grumpypanda    schedule 06.01.2014


Ответы (3)


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

$ MyImage.SetWidth (50) $ MenuTitle

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

person Shane Garelja    schedule 12.07.2011
comment
Привет, Шейн, большое спасибо за подсказку. Мне удалось вставить вкладку изображения в Silverstripe, но каждый раз, когда я пытался загрузить изображение, ошибка, указанная выше, появляется в CMS. Я прикрепил свой Page.php при обновлении выше. Я новичок в этом, поэтому буду благодарен за любую вашу помощь. - person grumpypanda; 13.07.2011

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

person xeraa    schedule 12.07.2011
comment
Привет, Xeraa, спасибо за ссылку. Сегодня утром я следил за учебником, и каждый раз, когда я обновляю изображение в CMS, появляется ошибка. Пожалуйста, посмотрите обновление, не могли бы вы мне помочь? Спасибо. - person grumpypanda; 13.07.2011

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

person grumpypanda    schedule 14.07.2011
comment
Поздравляю с исправлением! Обязательно примите свой ответ, чтобы другие могли извлечь уроки из вашего решения. Ура ~ - person Andrew Kozak; 28.11.2011