1

Web サイトの編集を簡単にするプライベート プロジェクト用の CMS を設計しています。モジュール化をサポートします。ただし、これはまだベータ版であり、改善できる点があるかどうか、またはこのシナリオに対してまったく異なるアプローチがあるかどうかを尋ねています.

まず第一に、HTML、CSS、そしておそらく JS のセットである「テーマ」があります。各テーマには、それぞれ別のファイル (full-width.html、fluid.html など) にあるさまざまなスタイルを含めることができます。その後、管理者はページごとに異なるスタイルを選択できます。カラムが 1 つしかないページもあれば、サイドバーがあるページもあります。

現在の動作方法では、スタイル HTML は次のようになります。

<html>
<body>
<div id="header">{block id="header"}</div>
<ul>
{blocks id="list"}

{block}
<li>
{content}
</li>
{/block}

{/blocks}
</ul>
</body>
</html>

テーマ作成者は、管理者がモジュールを配置できる場所を定義する「ブロック」を配置できます。これらのモジュールは、単なるテキストの場合もあれば、シャウト ボックスやログイン フォームなどのより複雑な HTML を含む場合もあります。いずれにせよ、別のブロック内にあるブロックを除いて、すべてのブロックに ID が必要です。このようにして、管理者がモジュールを配置する場所を決定すると、次のようなフォームが表示されます。

 Header module: --select--
 List modules:
     --select--
     --select-- (automatically adds new selects as needed)

--select-- は、インストールされているすべてのモジュールを含む HTML 選択ボックスです。ID は、変更を保存してプレビューすることなく、選択したモジュールがサイトのどこに移動するかを管理者が理解しやすくするために使用されます。

テーマ作成者は、{blocks} タグで複数のブロックを配置できます。これは、Wordpress のように、サイドバーに「タグ」、「ログイン」、「アフィリエイト」などの多くのモジュールを配置できるように、管理者がその中に複数のモジュールを配置できることを意味します。モジュールの量は {blocks limit="5"} で制限できます。他の設定もできます。

ブロックがページ上で {block id="header"} として指定されている場合、ブロック用に選択されたモジュールのコンテンツがそれに代入されることを意味します。ただし、それが {block}{/block} の場合、テーマ作成者はタグ間のどこかで {content} を使用して、コンテンツの場所を指定する必要があります。また、{name} を使用してモジュールの名前などを指定することもできます。

全体として、これに関して私ができる改善点はありますか? 何提案はありますか?

そして最も重要なことは、代わりに使用する必要がある既存の強力なモジュラー システムを再設計しようとしているのかということです。

4

4 に答える 4

2

Facelets に関するこの記事を見てください。あなたが Java の専門家でなくても構いません。記事の真ん中にある facelet の構造を見てください。

実際には、これらの構造は非常に便利なので、cms に提供したいものが見つかるかもしれません。

于 2010-01-17T11:12:06.457 に答える
1

キャッスルスタックからNVelocityを見てください。これは非常に強力で、車輪の再発明を少し試みているようです。

http://www.castleproject.org/others/nvelocity/index.html

これがお役に立てば幸いです。

于 2010-01-23T00:46:30.797 に答える
1

django のテンプレート システムをチェックアウトする

http://docs.djangoproject.com/en/dev/topics/templates/#topics-templates

http://docs.djangoproject.com/en/dev/ref/templates/api/

于 2010-01-23T05:24:17.790 に答える
1

代わりに使用する必要がある既存の強力なモジュラー システムを再設計しようとしていますか?

この説明に当てはまるものは 2 つ考えられます。Struts with Tiles と Web ベースのサービスsquarespaceです。

于 2010-01-17T10:54:11.820 に答える