-1

同じサーバー上に異なる環境を持つ複数の Trac プロジェクトがあります。各プロジェクト ページの上部にすべてのプロジェクトへのリンクのリストを表示して、/projects/ のトップ レベルのリストに移動しなくてもすばやくプロジェクトを切り替えることができるようにしたいと考えています。

理想的なソリューションは次のとおりです。

  1. ページをロードするたびにすべての Trac 環境をロードする必要はありません。
  2. 新しいプロジェクトが追加されると、自動的に更新されます。
  3. 構成やテンプレートを編集するか、プラグインを追加するだけで済みます。
  4. Trac 0.11 で動作します。
4

3 に答える 3

2

NavAddPlugginを使用すると、メイン トラックのナビゲーション バーをカスタマイズできます。プロジェクトの各トラックにメニュー オプションを追加できます。新しいメニュー項目を追加するには、以下を に追加しますtrac.ini file

[navadd]
add_items = project1
project1.target = mainnav
project1.title = Project One
project1.url = http://webserver/trac_project_1

順序を並べ替えるにmainnavは、trac.ini

mainnav = project1,wiki,timeline,roadmap,browser,tickets,newticket,search

于 2012-10-11T14:10:32.777 に答える
1

を使用してメニーを追加する方法の質問に答えるために、ここに開始するための非常に基本的なトップヘッダーがあります-プレースホルダーsite.htmlに貼り付けます:site.html

<!--! A top header -->
<py:match path="body" once="True">
<body py:attrs="select('@*')">
    <div id="top">
        <a py:if="req.href() != '/one'" href="/one">one</a>
        <a py:if="req.href() != '/two'" href="/two">two</a>
        <a py:if="req.href() != '/three'" href="/three">three</a>
    </div>
    ${select('*|comment()|text()')}
</body>
</py:match>

この例では、非常に単純なロジックを使用しており、現在のプロジェクトを非表示にしています。通常は強調表示などを使用して、別の方法で実行することをお勧めします。

高度な例については、TracLayoutRecipeを参照してください。これは、さまざまなプロジェクト(Trac、Genshi、Babel、Bitten)を切り替えるためにedgewall.orgで使用されているレイアウトです。

于 2012-12-16T22:21:21.937 に答える
0

sudo_o で説明されている方法は、おそらく最善の策です。これにより、Trac インターフェイスに非常によく統合されたものが得られます。

ただし、役立つと思われる簡単な代替手段について言及したいと思います。各 Trac ページの左上隅にあるロゴをクリックすると、特定のページにリンクするように設定できます。多くの Trac インストールでは、これを使用して開始ページにリンクします。ただし、リンクは構成可能であり、プロジェクトの一覧ページを指すようにすることができます。あなたのtrac.iniファイルで:

[header_logo]
src = site/your_logo.png
link = /url/to/projects/page
alt = Click to load projects listing

この方法では、プロジェクト リストに簡単にアクセスでき、Trac メニューにエントリを追加する必要はありません。trac.iniプロジェクトを追加または削除する場合、リンクを更新するためにすべてのファイルを変更する必要はありません。欠点は、別のプロジェクトに移動するために余分なクリックが必要なことと、一部のユーザーがこの方法を直感的であると感じない可能性があることです (altプロパティを設定すると、これが少し役立ちます)。

于 2012-10-12T19:25:11.123 に答える