開発(PHP):複数のプレースホルダーからチャンクコードの文字列を処理

複数のプレースホルダーからチャンクコードの文字列を処理するには、$modx->parseListメソッドを使用します。
リストのアイテムのように複数の要素を生成するような使い方を想定しています。

構文

戻り値 = $modx->parseList(チャンクコード, プレースホルダー);
引数名 初期値 説明
第一引数
必須
チャンクコード string   チャンクコードの文字列。
チャンクを作成するフォームのチャンクコードに入力する文字列と同じ文字列を入力する。
第二引数
必須
プレースホルダー array   チャンクに渡すカスタムプレースホルダーの値。
2次元配列(2次元目は連想配列)で指定する。
array(     array(
        'プレースホルダー名' => 値,
        ...
    ),     ...
);

戻り値

チャンクとして実行したコードを文字列で返します。

サンプルコード

$chunk = '<div class="box">
    <p class="title">[+title+]</p>
    <div class="description">[+description+]</div>
</div>';

$result = $modx->parseList($chunkText, array(
    array(
        'title'       => 'Title 1',
        'description' => '<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Animi illo rerum doloribus? Quos eum iste maxime excepturi aspernatur sapiente, ex numquam nesciunt, beatae sunt quia non officia dignissimos dolor fugit?</p>'
    ),
    array(
        'title'       => 'Title 2',
        'description' => '<p>Voluptates repudiandae ad doloremque beatae, laborum distinctio, qui fuga minima temporibus aspernatur dicta asperiores veniam sunt consequuntur in rerum et laboriosam. Corrupti quo id pariatur ab unde architecto eius incidunt.</p>'
    ),
    array(
        'title'       => 'Title 3',
        'description' => '<p>Facere eveniet quibusdam nulla aperiam possimus accusantium dignissimos. Sint praesentium, aperiam ipsam cupiditate inventore ipsum ea est commodi veniam nostrum harum nesciunt animi vero architecto accusamus iste? Pariatur, asperiores commodi!</p>'
    )
));

結果

<div class="box">
    <p class="title">Title 1</p>
    <div class="description"><p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Animi illo rerum doloribus? Quos eum iste maxime excepturi aspernatur sapiente, ex numquam nesciunt, beatae sunt quia non officia dignissimos dolor fugit?</p></div>
</div>
<div class="box">
    <p class="title">Title 2</p>
    <div class="description"><p>Voluptates repudiandae ad doloremque beatae, laborum distinctio, qui fuga minima temporibus aspernatur dicta asperiores veniam sunt consequuntur in rerum et laboriosam. Corrupti quo id pariatur ab unde architecto eius incidunt.</p></div>
</div>
<div class="box">
    <p class="title">Title 3</p>
    <div class="description"><p>Facere eveniet quibusdam nulla aperiam possimus accusantium dignissimos. Sint praesentium, aperiam ipsam cupiditate inventore ipsum ea est commodi veniam nostrum harum nesciunt animi vero architecto accusamus iste? Pariatur, asperiores commodi!</p></div>
</div>

CMS「MODX Evolution」逆引きリファレンス一覧へ戻る