2011-08-03 10 views
1

愚かな質問と私はこれを見落としてしまいました。 Sitefinityにログインすると、ログインしたときにのみ特定のhtmlタグをターゲットにすることができるラッピングdivがあります。DNNにログインしたときにhtml要素をターゲットに設定する方法

私はDNNでこのようなことは何も見ていません。この解決策はどうですか?

[div class="dnn-logged-in"] 
    [div class="my-content-wrapper"] 
     [div class="elements-i-would-like-to-show-or-hide] 
     Hide or show this if I am logged in or not 
     [/div] 
    [/div] 
[/div] 

感謝:私が望む何

は、このようなものです!

答えて

-1

DotNetNukeでは、これはページまたは個々のモジュール(特定のコンテンツ)に割り当てることができるアクセス許可によって制御されます。デフォルトでは、新しいページには「すべてのユーザー」に対するVIEW権限が与えられ、ページに作成された新しいコンテンツにはその権限が継承されます。

これを変更するには、特定のコンテンツの設定を選択し、「View Permission from Page」のチェックを外します。これにより、すべてのさまざまなロールのチェックボックスが有効になります。 、代わりに「登録ユーザー」を選択します。これは、サイトにログインしているすべてのユーザーvisibletoコンテンツを行います。

これはむしろちょうど視界を不明瞭にするよりも、実際にレンダリングを制御し、超強力な権限モデルです。

+0

ありがとうScott!私が後にしているのは、ある人がログアウトしているときとは対照的に、ある人がログインしているときに特定のhtml要素を分離する機能です。 Dnnは、フッターのためにほとんどの人が使用するユニバーサルクラスであるコントロールパネルフッター ".footer"に名前を付けるなど、厄介な習慣を持っています。私が将来何をするかは、自分のラッピングdivを追加して、.my-site .footer {do:stuff;}や.my-site .header {do:stuff;}のようなすべての要素を対象とします。そうでなければ私はDNNのcpanelを台無しにするつもりです。うまくいけば、DNN6はこれをソートします:) – SixfootJames

+0

私はジェームスも同じことをやろうとしています。私のクライアントは、ログインしていればトップのナビゲーションを中心にし、そうでなければ右に揃えたいこれまで私はログインした状態を示す方法は見ていません。ブリー。 – Chad

0

スキンオブジェクトを使用すると、dnnでスキンオブジェクトを使用できます。ログインスキンオブジェクトは、ログイン/ログアウトまたはレジスターを表示するのに役立ちます。ユーザースキンオブジェクトは、現在ログインしているユーザーを表示するのに役立ちます。任意のスタイルとdivを使用できます。

+0

ありがとうございますlakhlaniprashant。私が作成している新しいスキン以外のスキンオブジェクトはどういう意味ですか?あなたが参照する設定ですか? – SixfootJames

+0

スキンオブジェクトは、dnnの特別なユーザーコントロールで、必要に応じてdnnスキンやモジュールで使用できます。ビルドされたスキンオブジェクトには多くのものがあります。詳しくはhttp://lakhlaniprashant.blogspotを参照してください。com/2009/06/dotnetnuke-skin-objects.html –

1

私はこのタイプのロジックは一般にクライアント側ではなくサーバ側で処理されるため、これはかなり珍しい作業だと言いたいと思いますが、これは一般的にはincr必要以上にクライアントの負荷を軽減し、ユーザーがログインしていない場合は、このコンテンツを必要としません。さらに、重要なデータを扱う場合は、明らかにセキュリティ上の意味があります。その情報は、基礎となるマークアップで容易に参照できるためです。

すべての免責事項を除いて、これを実行したい場合は、Sitefinityに慣れていたのと同じように、サイトの作業を行うことが最善のソリューションだと思います。 DNNでは、適切なロジックを含むコンテナを作成します。コンテナは各モジュールをラップし、コンテナ内にはコンテナを動的にするためのコード(サーバーまたはクライアント)を記述する機会があります。認証されていないとき

<%@ Control language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Containers.Container" %> 

<% 
    var isLoggedIn = HttpContext.Current.User.Identity.IsAuthenticated; 
    if (isLoggedIn) 
    { 
%> 
<div class="dnn-logged-in"> 
<% } %> 

<div class="Invisible"><div id="ContentPane" runat="server"></div></div> 

<% if (isLoggedIn) { %> 
</div> 
<% } %> 

これは、次のHTMLを生成します:

<div class="DnnModule DnnModule-DNN_HTML DnnModule-364"> 
    <a name="364"></a> 
    <div class="Invisible"> 
    <div id="dnn_ctr364_ContentPane"> 
     [Dynamic Content Here] 
    </div> 
    </div> 
</div> 

このブルートフォースたとえば、私はDNN 6でDarkKnight肌に付属の「Invisible.ascx」コンテナを修正しました

と、このあなたが認証されています

<div class="DnnModule DnnModule-DNN_HTML DnnModule-364"> 
    <a name="364"></a> 
    <div class="dnn-logged-in"> 
    <div class="Invisible"> 
     <div id="dnn_ctr364_ContentPane"> 
     [Dynamic Content Here] 
     </div> 
    </div> 
    </div> 
</div> 

あなたがTHIをしたい場合私は、このタイプのロジックで現在使用しているそれぞれのコンテナを拡張しています。

関連する問題