複数回繰り返すソースをうまく編集させたい  【解決済み】

質問全般・改善要望
返信する
Ryo
メンバー
メンバー
記事: 24
登録日時: 2009年8月25日(火) 13:19

複数回繰り返すソースをうまく編集させたい  【解決済み】

投稿記事 by Ryo »

こんばんわ。
いつもお世話になっております。

コード: 全て選択

      <div class="port">
        <h2>タイトル</h2>
          <img src="images/hogehoge.jpg" alt="port" width="270" height="151" />
        <div class="clr"></div>
        <p>説明</p>
        <div class="clr"></div>
      </div>

      <div class="port">
        <h2>タイトル</h2>
・・・・・・・・・
例えば、このソースが任意の複数回連続するページを作りたい場合・・・

ユーザーには「タイトル」「hogehoge.jpg(写真のURL)」「説明」の3カ所のみ入力可能してもらいたい、つまり、他のソースの部分はいじられたくない。
でも、ソースの通り、写真と説明が何回も繰り返すようなページで、何回繰り返すかは任意。

無い知恵絞って考えたのですが、行き詰まっています。

考えた方法 「親ページにDynContentで呼び出し」
上記のソース1回分のテンプレート(sub_template)を作成。
「タイトル」は[*title*]
「hogehoge.jpg(写真のURL)」はカスタムテンプレート
「説明」は[*content*]
子ページに必要な写真の枚数分、sub_templateを使ったページを作成させて、上記を入力させる。
親ページにDynContentで呼び出す。

問題点
DynContentに子ページを全部まとめて呼び出させる方法がわからない。
ID指定で1ページずつ呼び出す以外の方法がわかりません。
何回繰り返すかも任意なので、あらかじめ用意しておくわけにもいきません。

なにか、(上記の方法以外でも)良い方法は無いでしょうか?
よろしくお願いします。
com2
メンバー
メンバー
記事: 12
登録日時: 2009年12月14日(月) 21:26

Re: 複数回繰り返すソースをうまく編集させたい

投稿記事 by com2 »

子ページの記事をまとめて表示させたい時は、単ページを読み込むDynContentではなく、
一覧表示に強いDittoを使うと良いでしょう。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: 複数回繰り返すソースをうまく編集させたい

投稿記事 by sama55 »

Ryoさんこんにちは

専用のテーブルを追加して、コアを改造してSQLで処理するのが良い気がしますが、かなりPHPを組まないといけないので、テンプレ変数を一つ作ってCSV形式で入力してもらうのはどうでしょう?

【入力書式】
タイトル1;hogehoge1.jpg;説明1
タイトル2;hogehoge2.jpg;説明2
  ~
タイトルN;hogehogeN.jpg;説明N

【処理例】
  1. テキストエリアのテンプレート変数を一つ作る
  2. スニペットを一つ自作
  3. 2で1を文字列として読み込む
  4. 改行コードで分割(explode) → 行単位に配列化
  5. 配列ループ
  6. セパレータ(";"セミコロンとか)でフィールドを分割(explode) → フィールド単位に配列化
  7. 3つのフィールド値と固定部分を組み合わせたHTMLコードをプログラム的に生成&連結
  8. 積み上げたHTMLコードをスニペットの復帰値として返す
【制限】
  • UI的にはダメダメですね・・・ ^^;
  • 各フィールド(タイトルや説明)の中に改行やセパレータを入れてはいけない。
Ryo
メンバー
メンバー
記事: 24
登録日時: 2009年8月25日(火) 13:19

Re: 複数回繰り返すソースをうまく編集させたい

投稿記事 by Ryo »

長期出張だったのでお返事が遅くなりました。
com2さん、sama55さん、ありがとうございます。

>com2さん
恥ずかしながら、やっとDittoの使い方がわかりました^^
とりあえず、今回はDittoで子ページを呼び出す事にしました。

>sama55さん
ユーザーにcsvを用意させて・・・というのがやっぱりネックですね。
仰る通り、UIが(笑)
連番テンプレート変数(ページの編集画面でどんどん追加できる)みたいな機能があれば良さそうです。
手動でひたすらテンプレート変数を用意する、あるいはcsvから取り込む・・・いずれにせよ、手間とスマートさがw

Dittoで子ページを呼び出すのも、子ページが増えまくると訳わからなくなりそうですが、ユーザーにとっては取っつきやすいと思うので、今回はそっちで行きます。

ありがとうございました。
返信する