`#__menu` テーブルを試した結果、多くの興味深い機能を発見しました。
#__menu
joomla インストール データベースで呼び出される DB テーブルがあります。各列の機能は次のとおりです。
id(INT) 主キー。
title(VARCHAR) メニューの表示名。非常に重要な分野です。
メニュータイプ(VARCHAR) *メニューが「メインメニュー」、「トップメニュー」、「レフトメニュー」…のいずれであるかを示します。管理メニューには「main」値があるはずです。しかし、それらがバックエンドに表示されるかどうかは、ここではなく「client_id」フィールド (以下を参照) によって決定されます。
alias(VARCHAR) 「タイトル」の別名。しかし、それが移入されていてもいなくても、何の効果もありません。入力しようとして、「タイトル」フィールドを空白のままにしました。その後、メニューが空白になりました。しかし、「エイリアス」を空白のままにして「タイトル」を埋めると、メニューにテキストが表示されました。
note(VARCHAR) 備考 (またはメモ)。
path(VARCHAR) ブラウザのアドレスバーに表示されるパス名。「リンク」情報と関連付ける必要はありません。(ただし、メニューが適切に機能するには、「パス」フィールドと「リンク」フィールドの両方を入力する必要があります)。
リンク (VARCHAR) URL。メニューがクリックされたときにシステムが移動する場所を示します。重要。
type (VARCHAR) メニューが component または url(external link) … かどうかを示します。(これは単なる「追加」情報であり、メニューに目に見える影響はないようです)。
公開済み (TINYINT)
1 – 公開済み。0 – 公開されていません。フロントエンドのメニューを非表示/表示します。
parent_id (INT)
0-「メイン アイテム ルート」の値。一度だけ存在する必要があります。
1- レベル 1 のメニュー項目を一覧表示します。
x- この値に別のメニューの ID を指定すると、自動的に子 (第 2 レベル) メニューになり、親メニューから「ポップアウト」します。
level (INT) レベルは、メニュー階層での位置を反映すると予想されます。例えば。メニューにレベル 1 の親がある場合、そのレベルは 2 でなければなりません。レベル 5 の親がある場合、それはレベル 6 メニューでなければなりません。しかし、Joomla は親を参照して実際のレベルを計算し、この値を無視しているようです。
component_id (INT) コンポーネント ID。値は#__extensions
テーブルから取得されます。(しかし、このフィールドを空にしても何の効果もないようです)。
順序付け (INT) 順序付け (標準の joomla 列)。
checked_out (INT) チェックアウト (標準の joomla 列)。
checked_out_time (TIMESTAMP) チェックアウト時刻 (標準の joomla 列)。
browserNav (TINYINT) ?
access (INT) 非常に重要なフィールドです。
1 – パブリック
2 – 登録ユーザーのみ。
3 – 特別なユーザー (例: マネージャーと管理者)
img (VARCHAR) メニューに背景画像が必要な場合の画像パス。
template_style_id (INT) このメニューに関連付けられたページを表示中に添付されたテンプレート ID。
params (TEXT) コンポーネント構成データ。
レフト (INT) ?
rgt (整数) ?
ホーム (TINYINT) Joomla には、デフォルト ページが 1 つだけ必要です。この値がこれを決定します。
1 – このページはデフォルトです。
0 – デフォルトではありません。1 つのメニューだけが値 1 を持つ必要があります (ほとんどの場合「ホーム」)。
language (CHAR) メニューが表示する言語。
client_id (TINYINT) 0 – 一般公開。
1 – バックエンド メニュー。メニューにparent_idとしてバックエンドメニュー項目が与えられていても、「client_id」の値が0の場合、メニューは管理側に表示されません。しかし、'Menu type' フィールドにどんな値を指定しても、'client_id' の値が 1 である限り、バックエンドに表示されます。
シナリオ:
メニュー タイプ => 'main' client_id =>'1', published=> 1/0: この場合、メニューはバックエンドにのみ表示されます。公開された値は影響しません。
Menutype=> 'mainmenu', 'client_id'=>1, published=>1: メニューはバックエンドとフロントエンドの両方に表示されます。公開された値は、その可視性を決定します。「menutype」の値が「main」、「mainmenu」、「top-menu」のいずれであるかは、バックエンドでの可視性には影響しません。「client_id」のみが重要です。
Menutype=> 'mainmenu', 'client_id'=>1, published=>0: 上記のシナリオと同じ効果を管理者側にもたらします。ただし、前面では、メニューは表示されません (公開状態 0)。