1

私は私のクライアントプロジェクトにConcrete5CMSを使用していますが、(理想的には)コンテンツエディターが知らなくてもサイトを編集できるようにHTML構造をネストできるようにしたいという問題があります。または任意のHTMLを記述します。構造の例は...

<header class="page-header"><!-- Defined as a GlobalArea -->

    <div class="site-meta"><!-- Defined as a Block Group (Stack?) -->
        <p class="contact-info"><!-- Defined as a Block -->
            <!-- User editable content -->
        </p>
        ....other content...
    </div>

    <div class="branding"><!-- Defined as a Block group -->
        <div class="logo"><!-- Defined as a Block -->
            <!-- User editable content -->
        </div>

        <hgroup><!-- Custom wrapper of sub-blocks -->
            <h1 class="brandname"><!-- Defined as a Block -->
                <!-- User editable content -->
            </h1>

            <h2 class="tagline"><!-- Defined as a Block -->
                <!-- User editable content -->
            </h2>
        </hgroup>
    </div>

    <p class="description"><!-- Defined as a Block -->
        <!-- User editable content -->
    </p>
</header>

ご覧のとおり、定義されたコンテンツ「エリア」(またはグループ化されたエリア)内のより大きな「メタ」ブロックにグループ化された、ユーザーが編集可能な個別のコンテンツ「ブロック」が必要です。私の理解では、Concrete5はこのように機能することはできません。つまり、エリアに他のエリアを含めることはできず、ブロックに他のブロックを含めることはできません。

その場合、生のphpコードだけを使用して、データベースから特定のコンテンツブロックを手動でロードする方法を考えていました。このようにして、特定の領域のコンテンツブロックを事前に定義し、HTMLの特定の構造内にブロックを強制的に挿入できるようにしたいと考えています。

人々が私に提供できるすべての助けに感謝します。

4

2 に答える 2

2

無料のDesignerContentアドオンをご覧ください...マークアップが埋め込まれたカスタムブロックを作成できます。これにより、作成しようとしているマークアップへのほとんどの方法が得られます。必要に応じて、作成されたブロックコードを使用して、カスタムブロックをより正確にカスタマイズできます。

http://www.concrete5.org/marketplace/addons/designer-content/

于 2012-10-30T21:27:51.800 に答える
2

ネストされたエリアを持つ上位レベルのエリアグループのビジネスニーズは本当にありますか?これは通常、テンプレートによって処理されます。例えば:

<header class="page-header">

    <div class="site-meta">
        <p class="contact-info">
           <?php
                $a = new Area('Contact Info');
                $a->display($c);
            ?>
        </p>
        <!-- ....other content... -->
    </div>

    <div class="branding">
        <div class="logo">
            <?php
                $a = new Area('Logo');
                $a->display($c);
            ?>
        </div>

        <hgroup>
            <h1 class="brandname">
                <?php
                    $a = new Area('Brand Name');
                    $a->display($c);
                ?>
            </h1>

            <h2 class="tagline">
                <?php
                    $a = new Area('Tag Line');
                    $a->display($c);
                ?>
            </h2>
        </hgroup>
    </div>

    <p class="description">
        <?php
            $a = new Area('Description');
            $a->display($c);
        ?>
    </p>
</header>
于 2012-10-31T23:11:38.343 に答える