DotNetNuke 対応ホスティングサービスに、「at link 専用サーバサービス」を追加
DotNetNuke.jp 掲示板は、すべての DotNetNuke ユーザーのための情報共有の場です。単に質問・回答の場ではありませんし、回答義務もございません。運営メンバーも含め、DotNetNuke を日々学んでいる状況です。質問をする場合は、まずインターネットなどで自分自身でお調べいただき、その情報を共有する事をこころがけてください。
お世話になります。
以前のオフサイトミーティングにて
http://dotnetnuke.jp/tabid/823/EntryID/53/Default.aspx
を教えて頂き、現在SOLPARTMENUからNAVへの移行を進めているところですが、二つばかり問題点があり、アドバイスをいただければと思います。
1.NAVのルートメニュー項目を固定幅にしたい
NAVのルートメニューの各項目を固定幅(例えば200px)にしたいのですが、CSSファイルで参考例におけるRootMenuにwidthを指定しても変化がありません。ちなみに、DOCTYPE宣言が既定値(HTML4.01 Transitional)の場合にはwidthが効きますが、xhtml1.0 Transitionalだとダメなようです。同時にxhtmlへの移行も進めているのでxhtmlの場合の幅の指定方法はどうしたらよいのでしょうか?
2.NAVのサブメニューがIE以外のブラウザで、absoluteでレイアウトした場合に背後にまわってしまう
SOLPARTMENUを使用していた時はコンテナのヘッダ部分についてabsoluteでレイアウトしていましたが、NAVに変更した際に、上記現象が発生し、FirefoxやOpera等でメニューがヘッダの後ろに隠れてしまうようになってしまいました。z-indexなどをいじっても変化がなく困っておりましたが、それもあってレイアウトをabsoluteからfloatに変更している最中です。ただ、今後もabsoluteを全く使わないというわけにもいかず、どうしたらよいものかと考えております。よい方法があるという方がいらっしゃいましたらアドバイスお願いします。
以上、よろしくお願いします。
1についてのみですが、自己解決しました。DotNetNukeというよりXHTMLの話でした。失礼しました。NAVメニュー(DNNMenuNavigationProvider)はspanで出力されるようですが、xhtmlではspanに対してはwidthが効かないので、display:inline-block;を追加することで幅指定が可能になりました。
2は継続しますが、スレ起てついでにもう一点追加します。
3.サブメニューのポップアップ表示を抑制したい
同じくNAVメニュー(DNNMenuNavigationProvider)ですが、ルートメニューのみを載せ、サブメニューは別に表示したいので、ポップアップメニューの表示をしないようにしたいと思っていろいろいじくっていますが設定項目がいまいち分かりません。IndicateChildrenのあたりかと思いましたが変化なし。それ以外の該当しそうな項目を変えてみてもダメ。できないはずはないと思うのですが、どうやればよいのでしょうか?
よろしくお願いします。
Built-in のNavだと、SOLPARTにあったような InDepth=0 (ルートメニューだけ表示)みたいなのはできない様子です。実際、メニューに関しては沢山ほかにも3rdパーティーでその機能をもったモジュールがでてるので、アマリ自分ではNAVを直接使うことないんですよね。フリーでもいいのありますよ。
もし清水さんがコードいじれるようなら、
Root>Admin>Skin>Nav.ascx.vb の、DNNNodeをバインドするあたりを少しいじって,
If objNodes.HasChildren then ChildNodesをココで消す Endif
みたいな処理をすればいいと思います。
Takuya Shimamura さま。
どうもありがとうございます。うーんやはりそのような設定はなさそうですか。ルートメニューのみ表示しておき、下位メニューは別にリストアップというのは結構ありそうなパターンなのですけどね。
とりあえず、現状はルートメニューに[LINKS]を使ってサブメニューがポップアップされないようにしています。
特定のスキン限定という場合は、サードバーティなどのメニューを導入してもよいのですが、とりあえず汎用スキンとして、インストールしたらすぐ使えるというのを考えていましたので。そういう意味ではコアに手を入れるのもちょっと避けたいところです。でも、Navigation Suiteなど便利そうなので、使う機会がありましたら是非試してみたいと思っています。
NAVといえば、DNNMenuNavigationProviderですが、調べていたらASP2MenuNavigationProviderというのも使えるようですね。名前から(また生成されるソースから)見て、ASP.NETのMenu Controlそのものでしょうか?DotNetNukeのスキンとASP.NETのデザインをどううまく相互運用(スキンファイルをそのままApp_Themeフォルダにコピーしたら手直しなしにデザインが再現できるとか)しようかと考えていたので、ASP2MenuNavigationProviderも試してみたいと思います。
どうもありがとうございました。