2011-07-12 23 views
1

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

enter image description here

は、私は以下の私のコードは、これまで画像なしで、メニュー項目を移入する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 :)以下

UPDATEは私Page.phpある、と私は私の第3レベルメニューに$ 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 \表示\サファイア\コア\モデル\ MySQLDatabase.php

+0

どうすればメニューの画像を得ることができますか?同じメニュー構造になっています。 – Anudeep

+0

こんにちはAnudeep、私はこの質問を2.5年前に尋ねました。時間。しかし、Silverstripeを使用している場合は上記の私の更新をお読みください(そして私はそれをやったと思います)、それはあなたにいくつかの指示を与えるかもしれません。あなたの問題点を指摘する新しい質問を開くことをお勧めします。誰かがあなたをさらに助けることができるかもしれません。 – grumpypanda

答えて

0

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

+0

修正のおめでとう!他の人があなたの解決策から学ぶことができるように、あなたの答えを受け入れるようにしてください。乾杯〜 –

1

あなたのページオブジェクトのイメージを持っていると仮定すると、あなたのような何かを行うことによって、あなたのテンプレートでそれをレンダリングすることができますこの:

$ MyImage.SetWidth(50)$ MenuTitle

"$ MyImage.SetWidth(50)"は、イメージが50ピクセル幅にサイズ変更された画像タグを出力します。詳細はSilverStripe image referenceをご覧ください。あなたはまだメニュー画像を持っていない場合は

+0

こんにちはシェーン、ヒントのために非常に感謝します。 Silverstripeに画像タブを挿入することができましたが、画像をアップロードしようとするたびに上記のエラーがCMSに表示されます。上記の更新の下でPage.phpを添付しました。私はこれに新しいので、あなたの助けのいずれかが評価されるだろう。 – grumpypanda

0

、そうする公式ドキュメントに従ってください:http://doc.silverstripe.org/sapphire/en/tutorials/2-extending-a-basic-site

+0

こんにちはXeraa、リンクありがとう。私は今朝のチュートリアルに従っていましたが、CMSで画像を更新するたびにエラーが発生しました。あなたが私を助けることができるだろう、更新を見てください?ありがとう。 – grumpypanda