サポート
ページ一覧画面でオプションの値を変更する
tmp (2018/06/04 11:50)
設置URL : http://freo.jp
templates/internals/admin/page.html に
以下のような記述をいれたいと思っております。
<input type="text" name="page_associate.option[zaiko_color01][{$page.id}]" size="3" value="{$page_associates[$page.id].option.zaiko_color01}" />
■やろうとしてること
オプション名:zaiko_color01
ページ内のオプションの情報を、page一覧画面で、それぞれ入力、編集できるようにする。
■参考は・・・
<input type="text" name="sort[{$page.id}]" size="3" value="{$page.sort}" />
↑
並び順の記述変更のタグがあったので真似してみました。
ですが、上手くいきません。
ページ個別編集画面でオプションをそれぞれいれるのではなく、ページ一覧画面にて、それぞれのページのオプションを一気に入力できると助かるなと思い、これをやろうとしています。
ccc (2018/06/05 23:08)
URL : http://cccabinet.jpn.org/
ページ内のオプションの情報を、page一覧画面で、それぞれ入力、編集できるようにする。
これを実現するには、これ用のフォーム(<form>~</form>)が必要になると思うのですが、そもそも templates/internals/admin/page.html のページ一覧では、ページ並び替えフォームとして <form>~</form> が使用されており、その中に入れ子として <form>~</form> を入れることはHTML的に(XHTMLも含めて)NGのようです。
かといって、並び替えのないエントリー一覧ならできる方法があるのかどうかはわかりません。
tmp (2018/06/06 16:52)
URL : http://freo.jp
ccc様
ありがとうございます。
もし、何かやり方があるのであればありがたいのですが。
色々試しましたが上手くいきません・・・
ミツ (2018/06/07 23:03)
URL : http://32877.xii.jp
こんにちは。
ページ管理画面のPHPではページの並び順のみを更新可能なように設定されていて、ページのオプションを変更できるようにはなっていないので、まずはそこの改造から必要です。
[freo/libs/freo/internals/admin/page_update.php]の45行目(並び順変更部分の直下)に、下記のように追加してください。
if (isset($_POST['page_associates'])){
//関連データ取得
if (isset($_POST['page_associates'])) {
foreach ($_POST['page_associates'] as $id => $page_associate) {
if (is_array($page_associate)) {
foreach ($page_associate['option'] as $option_id => $value) {
$stmt = $freo->pdo->prepare('UPDATE ' . FREO_DATABASE_PREFIX . 'option_sets SET text = :value WHERE page_id == :page_id AND option_id == :option_id');
$stmt->bindValue(':value', $value);
$stmt->bindValue(':page_id', $id);
$stmt->bindValue(':option_id', $option_id);
$flag = $stmt->execute();
if (!$flag) {
freo_error($stmt->errorInfo());
}
}
}
}
}
}また、[freo/templates/internals/admin/page.html]の101行目に
<td><input type="text" name="page_associates[{$page.id}][option][オプションID]" size="3" value="{$page_associates[$page.id].option.オプションID}" /></td>のようにして、オプション編集用のテキストボックスを追加してください。
テーブルの項目数を増やした分theadやtfootに列を追加しておいてください。
以上お試しください。
返信
- この記事に返信します。
- 返信の際は、設置URL以外の項目は入力必須です。