Помогите добить VideoGallery
Videogallery сохраняет в Json
core/components/videogallery/tv/tpl/tv.videoGallery.input.tpl
2
{"video":"https://rutube.ru/video/embed/xxxxxxx","videoId":"xxxxx",
"image":"/assets/videoGallery/01/xxxx.jpg",
"title":"Название","desc":"Описание","videoDuration":"PTxxMxxS"}Редактировать его кривыми ручками чревато, поэтому для редактирования по полям отредактировал и заменил файл core/components/videogallery/tv/tpl/tv.videoGallery.input.tpl, но при нажатии на кнопку «сохранить данные» из json массива удаляются video, image и videourl.core/components/videogallery/tv/tpl/tv.videoGallery.input.tpl
{$array = []}
{if !empty($tv->value)}
{$array = $modx->fromJSON($tv->value)}
{/if}
{if empty($array)}
{$array = ['video' => '','videoId' => '','image' => '','title' => '','desc' => '','videoDuration' => '']}
{/if}
{if is_array($array)}
{$array['title'] = htmlspecialchars($array['title'])}
{$array['desc'] = htmlspecialchars($array['desc'])}
{/if}
{$json = $modx->toJSON($array)}
<form id="tvForm_{$tv->id}" style="margin:0; padding:0;">
<div class="videogallery-wrapper">
<div class="videogallery-form">
<input type="text" id="vgUrl_{$tv->id}" class="videogallery-url" placeholder="Ссылка на видео для обработки"
value="{if isset($array['video'])}{$array['video']}{/if}">
<div>
<small>Вставьте в это поле ссылку на видео, чтобы её обработать.</small>
</div>
<div>
<small id="vgError_{$tv->id}" style="color:red"></small>
</div>
<div class="videogallery-video" id="vgVideo_{$tv->id}"></div>
<div class="videogallery-image" id="vgImage_{$tv->id}"></div>
<div class="clear"></div>
</div>
<a name="cut"></a>
<div class="videogallery-fields">
<div>
<label><b>Заголовок видео:</b></label>
<input type="text" name="title" id="vgTitle_{$tv->id}"
value="{$array['title']|default:''}"
placeholder="Введите заголовок">
</div>
<div>
<label><b>Описание:</b></label>
<textarea name="desc" id="vgDesc_{$tv->id}" rows="3"
placeholder="Введите описание">{$array['desc']|default:''}</textarea>
</div>
<div>
<label><b>Ссылка на видео:</b></label>
<input type="url" name="video" id="vgVideo_{$tv->id}"
value="{$array['video']|default:''}"
placeholder="https://..." readonly
style="background:#f0f0f0;">
</div>
<div>
<label><b>ID видео:</b></label>
<input type="text" name="videoId" id="vgVideoId_{$tv->id}"
value="{$array['videoId']|default:''}"
placeholder="abc123xyz">
</div>
<div>
<label><b>Изображение-превью:</b></label>
<input type="url" name="image" id="vgImage_{$tv->id}"
value="{$array['image']|default:''}"
placeholder="https://...">
</div>
<div>
<label>Длительность видео в формате: <b>PTxxHxxMxxS</b></label>
<input type="text" name="videoDuration" id="vgVideoDuration_{$tv->id}"
value="{$array['videoDuration']|default:''}"
placeholder="PT1H20M30S">
</div>
</div>
</div>
</form>
<!-- Скрытое поле для MODX -->
<textarea name="tv{$tv->id}" id="tv{$tv->id}" style="display:true;">{$json}</textarea>
<!-- Кнопка сохранения -->
<div style="margin-top:15px">
<button type="button" onclick="compareAndSave('{$tv->id}')" style="padding:5px 15px;background:#007bff;color:white;border:none;cursor:pointer">
Сохранить данные
</button>
</div>
Комментарии: 2