0

ModX Revolutionを使用すると、テレビのセットをセットアップして編集可能なスライドショーを作成し、テレビを必要なテンプレートリソースに割り当てることができます。(チェック済み)

問題は、スライドショーを別のドキュメントで実行する場合、スライドショーの値をTVが割り当てられている各ドキュメントに設定する必要があることです。これは、TVのセットを作成することであり、一度だけ作成することが目的であるため、面倒です。値が設定されている場合、この値(画像、テキスト、w / e)はすべてのドキュメント(テンプレート、ページなど)に表示されますが、代わりに、それぞれに同じ繰り返しデータを入力する必要があります。

それから私はこれについて考えました。スライドショー専用のリソースドキュメントを作成してから、このドキュメントを必要なページに呼び出すことができたらどうなりますか?1つのドキュメントのTV値を編集して、好きな場所に表示できるので、このアイデアは私には良いと思いますが、リソースドキュメントの呼び出し方法がまったくわかりません。

こんなふうになります。

  • スライダーテンプレートを含むチャンク[[$slider]]を作成します。
  • テレビのセットを作成します。(各画像の1つ)[[* slider1]]、[[*slider2]]など。
  • テレビをスライダーチャンク内に配置し、画像リンクをテレビに置き換えます。これにより、アルバムに画像をアップロードしてテレビ内で画像を呼び出すだけで、画像を簡単に変更できます。
  • 表示したいテンプレート内に[[$slider]]チャンクを配置し、そのテンプレートドキュメントを別のドキュメント内で呼び出します。

これが十分に明確な説明であることを願っています。

ありがとう、

4

1 に答える 1

1

これが私がそれをする方法です:

  1. パッケージ管理を介してMIGXをインストールします。MIGXを使用すると、いくつかの静的TVを使用して画像を保持するのではなく、キャプションやaltタグなどのフィールドを追加して、無制限の数を追加できる可能性があります。
  2. MIGXを使用したギャラリーの管理に関するMarkHamstraの優れたチュートリアルに従ってください。ホームページまたは専用の「スライダー」リソースのいずれかに設定します

それが完了したら、複数のページでparseMIGXtoGalleryスニペットを使用するためにいくつかの調整を行う必要があります。

$output = array();
$sliderID = $modx->getOption('sliderRes');
$sliderRes = $modx->getObject('modResource',$sliderID);
if ($sliderRes) {
    $sliderTV = $sliderRes->getTVValue('nameOfSliderTV');
    $input = $modx->fromJSON($sliderTV);
    if (!$input || empty($tpl)) return 'no stuff';
    foreach ($input as $row) {
      if (isset($set) && !empty($set) && ($set != $row['set'])) continue;
      $output[] = $modx->getChunk($tpl, $row);
    }
}
return implode("\n", $output);

nameOfSliderTVスライダーTVの名前を...に置き換える必要があります。

次に、スニペットのオプションを使用する代わりに、スライダーリソースのIDinputに追加&sliderResして設定します(6であると仮定します)。

[[mh.parseMIGXToGallery? 
  &tpl=`mh.images.gallery.tpl` 
  &sliderRes=`6` 
  &set=`name of the set`
]]

この方法では、セットを使用してスライドショーリソースに複数のスライドショーを実際に設定できることに注意してください。

于 2013-01-03T09:38:38.357 に答える