Video * @copyright Tamaranga */ class Video extends FormBlock { public function init() { parent::init(); $this->setTemplate('form/blocks/video', 'listings'); $this->setKey('video'); $this->setTitle(_t('item-form', 'Video')); } public function data() { $data = parent::data(); $data['video'] = $this->form->item['video'] ?? ''; $data['visible'] = $this->visible(); return $data; } public function visible() { return ! empty($this->form->category['settings']['video']['enabled']); } public function reloadBlock($event) { if ($event != 'categoryChange') { return false; } if ($this->visible()) { return $this->render(); } return ''; } public function rules(): array { return [ 'video' => [TYPE_STR, 'len' => 1500, 'len.sys' => 'listings.form.video.limit'], ]; } public function validateUsingRules(array $data = [], ?array $rules = null) { if (! $this->visible()) { unset($data['video'], $data['video_embed']); return $data; } $data = parent::validateUsingRules($data, $rules); if (empty($data['video'])) { $data['video_embed'] = ''; } else { if (empty($this->form->item['video']) || $this->form->item['video'] != $data['video']) { $video = Listings::itemVideo()->parse($data['video']); $data['video_embed'] = serialize($video); if (!empty($video['video_url'])) { $data['video'] = $video['video_url']; } } } return $data; } }