web-dev-qa-db-ja.com

Joomlaコントロールパネルの管理メニューから要素を削除する

私は会社のWeb開発者としてインターンシップをしています。 joomla 3.3で作成されたブログサイトを所有する顧客を獲得しました。問題は、顧客が本当に好奇心が強く、コンピューターについて何も知らないため、管理パネル内を毎日掘り起こして物事を破壊していることです。上司は、joomlaコントロールパネルをそのように編集するように言ったので、管理者メニューからいくつかの要素にログインすると、表示されなくなります。

だから私はメニューを作成するコードを見つけました:/home/sitename/public_html/administrator/templates/isis/index.php

そしてブロックコード:

<div<?php echo ($this->params->get('admin_menus') != '0') ? ' class="nav-collapse"' : ''; ?>>
                <jdoc:include type="modules" name="menu" style="none;" />
                <ul class="nav nav-user<?php echo ($this->direction == 'rtl') ? ' pull-left' : ' pull-right'; ?>">
                    <li  class="dropdown" >

特定の要素を非表示にする方法を知っています。

style="<?php if($user->name=="user10") { echo "display:none;";}?>">

しかし問題は、これに管理メニューが含まれることです:<

jdoc:include type="modules" name="menu" style="none;" />

私はファイルpublic_html/administrator/modules /を検索しましたが、それに一致するものを見つけることができません。誰かがそれがどこにあるのか考えていますか?

Εdit:何時間もかかった後、私はそれを手に入れました。将来誰かがそれを必要としたら、私はそれを共有します:

** administrator/** modules/mod_menu/menu.php(前にフロントエンドで検索していました:S)

echo "<li" . $class  . ">";

に向けて:

$user  = JFactory::getUser();
$tmpvar= 'style="display:none;"';
$rekt=$this->_current->title;

if(($user->name=="user10") && ( $rekt== "Content")) {
$childcounteryo=0;
}
if (($user->name=="user10") && ( $rekt == "System") || $rekt== "Extensions" || $rekt=="Help" ) {
echo "<li" . $class  . $tmpvar . ">";

}else {
echo "<li" . $class  . ">";
}

foreach ($this->_current->getChildren() as $child)
            {   
                if ($childcounteryo !=1) {
                $this->_current = & $child;
                $this->renderLevel($depth++);
                }
                $childcounteryo+=1;
            }

(コンテンツタブで2番目のサブメニューを削除したかった)

3
IseNgaRt

クライアントから削除する要素を正確に特定できませんが、ユーザーのグループをSuper AdminからAdminに変更することができますこれにより、Language ManagerやGlobal Configurationなどの多くのデフォルトオプションが削除されます。

Joomlaの良い点は、特定のユーザーグループが使用できるアクションとビューを選択できるACL(アクセス制御リスト)を使用していることです。

以下のJoomlaドキュメンテーションは、これで多くのことをガイドします:

http://docs.joomla.org/J3.x:Access_Control_List_Tutorial

お役に立てれば

更新:

  1. Extensions>>Extension Manager>>Manageに移動します
  2. 右上のOptionsをクリックし、次にPermissionsタブをクリックします
  3. 左側のAdministratorタブを選択します
  4. DeleteオプションをDeniedに設定します

これにより、管理者権限を持つクライアントが拡張機能をアンインストールできなくなります。

4
Lodder

まず第一に、信頼できないユーザーにSuper Userアクセス権を与えることは避けてください。スーパーユーザーはより高い権限を持ち、サイトで何でも実行できます。ユーザーをシンプルにすることでAdministratorで十分かどうかを確認します。

それ以外の場合、Joomlaは深いACLシステムを組み込んでいるため、誰が何にアクセスできるかをカスタマイズできます。

詳細はこちら:http://docs.joomla.org/J3.x:Access_Control_List_Tutorial

ただし、カスタムバックエンドナビゲーションを作成して特定の制限を適用するために、さらに多くのことができます。

これを可能にする拡張機能があります...お勧め Admin Menu ManagerAccess Manager

2
FFrewin