start_controls_section('content',['label'=>'Файл LF Drive','description'=>'Выберите тип вставки. В выборе файла откройте вкладку LF Drive. Форма приёма позволяет посетителю отправить файлы в ваш аккаунт. Продажи и формы доступны на Pro и Studio.']); $this->add_control('type',['label'=>'Тип','type'=>\Elementor\Controls_Manager::SELECT,'default'=>'image','options'=>['image'=>'Изображение','file'=>'Скачать файл','pdf'=>'PDF','video'=>'Видео','audio'=>'Аудио','sale'=>'Продажа файла','uploader'=>'Приём файлов']]); $this->add_control('media',['label'=>'Выбрать файл: вкладка LF Drive','type'=>\Elementor\Controls_Manager::MEDIA,'media_types'=>['image','video','audio','application'],'condition'=>['type!'=>['sale','uploader']]]); $this->add_control('url',['label'=>'Ссылка LF Drive (приоритет над выбором файла)','type'=>\Elementor\Controls_Manager::TEXT,'placeholder'=>'https://lfdrive.ru/f/…','description'=>'Для формы используйте /u/…; для продажи — уже настроенную платную ссылку. Файлы выбирайте через вкладку LF Drive.']); foreach(['title'=>'Название','label'=>'Текст кнопки','description'=>'Описание','price'=>'Цена, ₽','alt'=>'Описание изображения','height'=>'Высота PDF/формы, px'] as $k=>$label)$this->add_control($k,['label'=>$label,'type'=>\Elementor\Controls_Manager::TEXT,'condition'=>['type'=>['title'=>['file','pdf','sale','uploader'],'label'=>['file','sale'],'description'=>['sale'],'price'=>['sale'],'alt'=>['image'],'height'=>['pdf','uploader']][$k]]]); $this->end_controls_section(); $this->start_controls_section('lfdrive_design',['label'=>'Оформление LF Drive','tab'=>\Elementor\Controls_Manager::TAB_STYLE]); foreach(['background'=>'Фон блока','textColor'=>'Текст и цена','buttonColor'=>'Фон кнопки','buttonText'=>'Текст кнопки','controlsBackground'=>'Фон панели плеера / PDF','controlsText'=>'Значки и текст панели','accentColor'=>'Прогресс','borderColor'=>'Граница'] as $k=>$label)$this->add_control($k,['label'=>$label,'type'=>\Elementor\Controls_Manager::COLOR,'default'=>LFDrive_Design::defaults()[$k]]); foreach(['radius'=>['Скругление блока',0,80],'buttonRadius'=>['Скругление кнопки',0,100],'padding'=>['Отступы',0,80],'fontSize'=>['Размер текста',10,36],'titleSize'=>['Размер заголовка',12,60],'width'=>['Ширина, %',20,100]] as $k=>$options)$this->add_control($k,['label'=>$options[0],'type'=>\Elementor\Controls_Manager::NUMBER,'default'=>(int)LFDrive_Design::defaults()[$k],'min'=>$options[1],'max'=>$options[2]]); $this->add_control('alignment',['label'=>'Выравнивание','type'=>\Elementor\Controls_Manager::SELECT,'default'=>'left','options'=>['left'=>'Слева','center'=>'По центру','right'=>'Справа']]); foreach(['showTitle'=>'Показывать название','showTime'=>'Показывать время','showVolume'=>'Громкость','showSpeed'=>'Скорость','showFullscreen'=>'На весь экран','showDownload'=>'Ссылка открытия файла','loop'=>'Повторять воспроизведение'] as $k=>$label)$this->add_control($k,['label'=>$label,'type'=>\Elementor\Controls_Manager::SWITCHER,'return_value'=>'1','default'=>LFDrive_Design::defaults()[$k],'condition'=>['type'=>['video','audio','pdf']]]); $this->end_controls_section(); } protected function render(){$s=$this->get_settings_for_display();foreach(LFDrive_Design::defaults() as $k=>$v){if(isset($s[$k]))$s[$k]=(string)$s[$k];}$s['url']=$s['url']?:($s['media']['url']??'');echo wp_kses(LFDrive_Plugin::render($s['type'],$s),LFDrive_Design::allowed_html());} }