6

1.6より前のJoomlaでは、menu-itemをpublicに設定し、その内容を設定できました。たとえば、登録済みの記事です。

これにより、ログインしていないときはメニューに記事へのリンクが表示されますが、クリックするたびにログインコンポーネントが表示されるという状況が発生します。そしてその後、彼らはその記事を見ました。

1.7では、これらの同じアクションにより、リンクをクリックするとコンポーネント画面が空のままになる状況が発生します。

フロントエンドユーザーが十分な権限でログインしていない場合に、登録済みの記事を取得してログイン画面を表示するにはどうすればよいですか?以前はとても簡単で、今はうまくいかないようです。

4

5 に答える 5

9

私自身の質問に答えるつもりです。将来、人々がこれを必要とするだろうと確信しています。私のソリューションには、追加のコードのいくつかのルールが含まれているだけで、すべての記事などを登録済みに設定でき、ログインフィールドが表示されます。ユーザーがログインしていないとき。

テンプレートのindex.phpで、これを上部に配置すると、記事のアクセスレベルが取得されます。

$article =& JTable::getInstance("content");
$article->load(JRequest::getVar('id'));
$cAccLevel = $article->get("access");

次に、コンポーネントの上にモジュールの位置を追加し、必要なアクセスレベルが1より大きい場合にのみ表示します

<?php if($cAccLevel > 1): ?>
    <jdoc:include type="modules" name="LOGIN_MODULE_POSITION" />
<?php endif; ?>

次に、モジュールマネージャのログインモジュールをLOGIN_MODULE_POSITIONに追加します。

出来上がり...ルーティングは必要ありません...すべてが箱から出して動作します。ログアウトボックスとアクションフィールドを次のようにスタイル設定することにしました。

.logout-button,
.actions{
    display:none;
}

幸運を!

于 2012-05-25T11:39:55.157 に答える
6
  1. メニューマネージャから新しいメニューを作成します。たとえば、「非表示メニュー」という名前を付けます。
  2. 登録ユーザーのみがアクセスできるメニュー項目を追加します。
  3. これらのメニュー項目に必要なアクセスレベルを設定します(この例では「特別」ですが、「登録済み」の場合もあります)。「非表示メニュー」用のモジュールを作成しないでください。どのページにも表示されないため、モジュールは必要ありません。
  4. 「実際の」メニュー(「メインメニュー」など)と、すべてのユーザーに表示されるメニュー項目(「記事の送信」など)を作成します。メニュー項目のメニュー項目タイプは「エイリアス」になります。「メニュー項目」パラメータは、「非表示メニュー」の「記事の送信」メニュー項目になります。このメニュー項目のアクセスレベルは「公開」になります。これは、誰もがそれを表示して使用できるようにするためです。

  5. 他のメニューの場合と同じように、このメニューのタイプ「mod_mainmenu」のモジュールを作成します。

  6. ログインモジュールを作成し、アクセスレベルを「パブリック」に設定します。モジュールが「パブリック」メニュー項目にのみ表示され、登録済み項目には表示されないことを確認し、表示位置を選択します。

これで、ゲスト(ログインしていないユーザー)が[記事の送信]メニューの選択肢にアクセスすると、[登録済みの訪問者のみ]メッセージが表示された空白のページにリダイレクトされます。。ログインに成功すると、目的のページ(この場合は「記事の送信」)に移動します。すでにログインしている場合は、直接そこに行きます。

于 2012-05-15T18:10:11.940 に答える
2

訪問者が登録ユーザーの場合にコンテンツを表示するだけの場合は、次のコードを使用できます。

$user =& JFactory::getUser();

    <?php
   if( !$user->guest ){ ?>

       [[what ever you want to do ]]
   <?php endif; ?> 

お役に立てば幸いです!!

于 2012-10-03T16:23:17.617 に答える
1

メニューの[コンテンツ]に移動し、保護するアイテムのセクションを作成または編集します。

オプションが表示されます:アクセスレベル

3つのオプションがあります:

公開、登録、特別

次のように設定します:登録済み

次に、このセクションの記事を変更する必要があります。これですべてです。

于 2012-05-17T05:34:49.700 に答える
-2

まず、joomlaのインストールを2.5(joomlaの最新バージョン)に更新する必要があります。1.7はJoomlaコミュニティでサポートされなくなりました。

表示権を設定する方法はいくつかあります。K2は仕事をするのに便利なCCKコンポーネントです。また、私が従うのに使用する便利なテクニックは、メニュー内の記事のカテゴリを「リンク」し、メニュー項目に特定の権限を設定することです。

于 2012-05-08T17:45:00.443 に答える