1

3番目のメニューリストのそれぞれに画像/ロゴをメニュー項目に入力しようとしています。以下の例を参照してください。

ここに画像の説明を入力してください

私はSilverstripeを使用してメニュー項目にデータを入力してきました。以下は、これまでのところ画像なしのコードです。誰かが私が第3レベルのメニューに画像/ロゴを挿入する方法について正しい方向を教えてもらえますか?

  // 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 :)

以下の更新は私のPage.phpであり、$ Image.SetSize(20,20)$MenuTitleを第3レベルのメニューに挿入しました。ただし、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

C:\ wamp \ www \ Show \ sapphire \ core \ model\MySQLDatabase.phpの525行目

4

3 に答える 3

1

ページオブジェクトに画像があるとすると、次のようにしてテンプレートに画像をレンダリングできます。

$ MyImage.SetWidth(50)$ MenuTitle

「$MyImage.SetWidth(50)」は、画像の幅が50pxに変更された画像タグを出力します。詳細については、SilverStripeイメージリファレンスを参照してください。

于 2011-07-12T10:04:43.763 に答える
0

メニュー画像をまだお持ちでない場合は、公式ドキュメントに従ってください:http ://doc.silverstripe.org/sapphire/en/tutorials/2-extending-a-basic-site

于 2011-07-12T20:57:43.183 に答える
0

私はsoneoneの助けを借りてそれを理解しました。他の人が同じ状況にある場合に備えて、それは私がデータベースを再構築しなかったためです。mysite.com/dev/buildにアクセスして、データベースを再構築します。上記のアップデートのコードはその後機能します。みんな、ありがとう!:)

于 2011-07-14T04:22:33.043 に答える