0

私は (MODx 経由で) Web サイトを構築中ですが、「ログインしていない」ユーザーがホームページを閲覧できるようにしたくありませんが、代わりに「構築中」のページにリダイレクトされます。

私のスニペットでは、これは私がこれまでに持っているものです:

<?php
if (! $modx->user->hasSessionContext($modx->context->get('key')) ) {
   $modx->sendRedirect('https://google.com');
} else {
    return '';
}

悲しいことに、ユーザーがログインしているかどうかに関係なく、これは何もしないようです (2 行目に問題があるようです。テストしたところ、実際のリダイレクトは正常に機能しました)間違っており、どんな助けも大歓迎です!

ページにあるスニペットは[[!notloggedin]] です

4

2 に答える 2

3

これらはBob's guidesからの抜粋ですが、基本的にやりたいことは、ユーザーが ID またはユーザー名を持っているかどうかを確認することです。持っていない場合は、ログインしていません。

おそらく少し掘り下げて、スニペットではなくプラグインでリダイレクトを実装できるかどうかを確認したいと思うでしょう onRequest イベント - そのため、ユーザーをリダイレクトする必要があることを発見する前に、ページ/リソースをレンダリングしていません.

There are various methods. One easy method is to use this code:
if ($modx->user->get('username') == '(anonymous)') {
    /* user is not logged in */
}    
Here is the official method for seeing if the user is logged in to the current context:

if ($modx->user->hasSessionContext($modx->context->get('key'))) {
    /* user is logged in */
}    
If you know the name of the current context (e.g., web), you can use this method. The name of the context is required:
if $modx->user->isAuthenticated('web') {
    /* user is logged in to web context */
} 
于 2013-08-27T14:32:20.933 に答える
1

サイトを公開する準備が整っていない場合でも、MODX では既に公開が許可されています。

次のシステム設定を参照してください。

site_status
site_unavailable_message
site_unavailable_page

または、カスタム エラー ページを除いて、すべてのリソースを「非公開」に設定します。ログインしたユーザーは引き続きすべてのリソースを表示できます。

于 2013-08-27T09:06:55.063 に答える