loadAcyMailing(); parent::__construct( 'acym_subscriptionform_widget', acym_translationSprintf('ACYM_MENU', acym_translation('ACYM_MENU_FORM')), ['description' => acym_translation('ACYM_MENU_FORM_DESC')] ); } // Configuration public function form($instance) { $this->loadAcyMailing(); wp_enqueue_style( 'select2lib', ACYM_CSS.'libraries/select2-original.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'libraries'.DS.'select2-original.min.css'), [], '11.0.2' ); wp_enqueue_script( 'select2lib', ACYM_JS.'libraries/select2-full.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.'libraries'.DS.'select2-full.min.js'), ['jquery'], '11.0.2', [ 'in_footer' => false, ] ); wp_enqueue_script( 'acym_widget_article', ACYM_JS.'widget.min.js', ['select2lib'], '11.0.2', [ 'in_footer' => false, ] ); // CSRF token for the article-search AJAX (dynamics/trigger requires acym_checkToken) wp_add_inline_script( 'acym_widget_article', 'var acym_widget_nonce = '.json_encode(wp_create_nonce('acymnonce')).';', 'before' ); acym_addStyle(false, ACYM_CSS.'widget.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'widget.min.css')); $listClass = new ListClass(); $fieldClass = new FieldClass(); $allFields = $fieldClass->getAll(); $fields = []; foreach ($allFields as $field) { if ($field->id == 2 || intval($field->active) === 0) continue; $fields[$field->id] = acym_translation($field->name); } $lists = $listClass->getAllWithoutManagement(); foreach ($lists as $i => $oneList) { if ($oneList->active == 0) { unset($lists[$i]); } } $listIds = array_keys($lists); $params = [ 'title' => 'Receive our newsletters', 'mode' => 'tableless', 'hiddenlists' => array_shift($listIds), 'displists' => '', 'listschecked' => '', 'listposition' => 'before', 'fields' => '1', 'textmode' => '1', 'subtext' => '', 'subtextlogged' => '', 'termscontent' => '0', 'privacypolicy' => '0', 'termscontentURL' => '', 'privacypolicyURL' => '', 'trackingconsent' => '0', 'articlepopup' => '1', 'unsub' => '0', 'unsubtext' => '', 'unsubredirect' => '', 'successmode' => 'replace', 'confirmation_message' => '', 'redirect' => '', 'introtext' => '', 'posttext' => '', 'userinfo' => true, 'formclass' => '', 'alignment' => 'none', 'source' => 'widget __i__', 'includejs' => 'header', ]; foreach ($params as $oneParam => &$value) { if (!empty($instance)) { $value = $instance[$oneParam] ?? ''; } if (is_array($value)) { $value = implode(',', $value); } if ($oneParam === 'userinfo') { $value = (bool)$value; } else { $value = esc_attr($value); } } if (!isset($instance['hiddenlists']) && !empty($params['displists'])) { $params['hiddenlists'] = ''; } echo '

'.esc_html(acym_translation('ACYM_MAIN_OPTIONS')).'

'.esc_html(acym_translation('ACYM_ADVANCED_OPTIONS')).'

'; } // Widget's output public function widget($args, $instance) { $this->loadAcyMailing(); $params = new AcymParameter($instance); acym_renderForm($params, $args); } private function loadAcyMailing(): void { $ds = DIRECTORY_SEPARATOR; require_once rtrim(dirname(dirname(__DIR__)), $ds).$ds.'back'.$ds.'Core'.$ds.'init.php'; } }