loadAcyMailing(); parent::__construct( 'acym_profile_widget', acym_translationSprintf('ACYM_MENU', acym_translation('ACYM_MENU_PROFILE')), ['description' => acym_translation('ACYM_MENU_PROFILE_DESC')] ); } public function form($instance) { $this->loadAcyMailing(); acym_addStyle(false, ACYM_CSS.'widget.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'widget.min.css')); $listClass = new ListClass(); $lists = $listClass->getAllWithoutManagement(); foreach ($lists as $i => $oneList) { if ($oneList->active == 0) { unset($lists[$i]); } } $params = [ 'title' => 'Your profile', 'lists' => 'All', 'listschecked' => 'None', 'dropdown' => '0', 'hiddenlists' => 'None', 'fields' => '1', 'introtext' => '', 'posttext' => '', 'source' => 'profile __i__', ]; foreach ($params as $oneParam => &$value) { if (!empty($instance)) { if (isset($instance[$oneParam])) { $value = $instance[$oneParam]; } else { $value = ''; } } if (is_array($value)) { $value = implode(',', $value); } $value = esc_attr($value); } if (!isset($instance['hiddenlists']) && !empty($params['lists'])) { $params['hiddenlists'] = ''; } echo '

'.acym_translation('ACYM_MAIN_OPTIONS').'

'.acym_translation('ACYM_ADVANCED_OPTIONS').'

'; } public function widget($args, $instance) { $this->loadAcyMailing(); if (!acym_isElementorEdition()) { acym_loadAssets('frontusers', 'profile'); } echo $args['before_widget']; if (!isset($instance['title'])) $instance['title'] = ''; $title = apply_filters('widget_title', $instance['title'], $instance, $args['widget_id']); if (!empty($title)) { echo $args['before_title'].$title.$args['after_title']; } acym_setVar('page', ACYM_COMPONENT.'_front'); $params = new AcymParameter($instance); acym_initModule($params); $userController = new FrontusersController(); $data = $userController->prepareParams((object)$instance); if (empty($data['user']->language)) { $cmsUserLanguage = acym_getCmsUserLanguage(); $data['user']->language = empty($cmsUserLanguage) ? acym_getLanguageTag() : $cmsUserLanguage; } acym_setVar('layout', 'profile'); $userController->display($data); echo $args['after_widget']; } private function loadAcyMailing(): void { $ds = DIRECTORY_SEPARATOR; require_once rtrim(dirname(dirname(__DIR__)), $ds).$ds.'back'.$ds.'Core'.$ds.'init.php'; } }