pluginDescription; } public function textPopup(): void { $links = [ 'readonline' => [ 'default' => acym_translation('ACYM_VIEW_ONLINE', true), 'desc' => acym_translation('ACYM_VIEW_ONLINE_DESC'), ], 'modify_profile' => [ 'default' => acym_translation('ACYM_MODIFY_MY_PROFILE', true), 'desc' => acym_translation('ACYM_MODIFY_PROFILE_DESC'), 'disabled' => (ACYM_CMS === 'joomla' && empty(acym_getPageLink('view=frontusers&layout=profile'))), 'tooltip' => acym_translation('ACYM_NO_PROFILE_MENU'), ], ]; $information = []; if (ACYM_CMS === 'joomla') { $baseUrlValue = ACYM_J50 ? \Joomla\CMS\Uri\Uri::root() : JURI::root(); $information = [ 'site_name' => [ 'label' => acym_translation('ACYM_SITE_NAME'), 'value' => acym_getCMSConfig('sitename'), ], 'base_url' => [ 'label' => ucfirst(acym_translationSprintf('ACYM_X_URL', ACYM_CMS)), 'value' => $baseUrlValue, ], ]; } elseif (ACYM_CMS === 'wordpress') { $information = [ 'site_name' => [ 'label' => acym_translation('ACYM_SITE_NAME'), 'value' => acym_getCMSConfig('sitename'), ], 'wp_address' => [ 'label' => ucfirst(acym_translationSprintf('ACYM_X_ADDRESS', ACYM_CMS)), 'value' => acym_getCMSConfig('siteurl'), ], 'site_address' => [ 'label' => acym_translation('ACYM_SITE_URL'), 'value' => acym_getCMSConfig('home'), ], 'tagline' => [ 'label' => acym_translation('ACYM_TAGLINE'), 'value' => acym_getCMSConfig('blogdescription'), ], 'site_icon' => [ 'label' => acym_translation('ACYM_SITE_ICON'), 'value' => get_site_icon_url(), ], 'admin_email' => [ 'label' => acym_translation('ACYM_ADMIN_EMAIL'), 'value' => acym_getCMSConfig('admin_email'), ], ]; } ?> body)) return; $tags = $this->replaceInformationTags($email); $match = '#(?:{|%7B)(modify_profile|readonline(?:\|[^}]+)?)(?:}|%7D)(.*)(?:{|%7B)/(readonline|modify_profile)(?:}|%7D)#Uis'; $results = []; $found = preg_match_all($match, $email->body, $results); if (!$found && empty($tags)) { return; }; foreach ($results[0] as $i => $oneTag) { if (isset($tags[$oneTag])) continue; if (strpos($oneTag, 'modify_profile') !== false) { if (ACYM_CMS === 'joomla') { $link = acym_getPageLink('view=frontusers&layout=profile'); $link .= (strpos($link, '?') === false ? '?' : '&').acym_noTemplate(); } else { $link = acym_frontendLink('frontusers&task=profile'); } $link .= strpos($link, '?') === false ? '?' : '&'; $link .= 'id={subscriber:id}&key={subscriber:key}'; $link .= $this->getLanguage($email->links_language); } else { $link = 'archive&task=view&id='.$email->id.'&userid={subscriber:id}-{subscriber:key}'; if (strpos($results[1][$i], 'theme:1') === false) { $link .= '&'.acym_noTemplate(); } if (!empty($email->key)) { $link .= '&key='.$email->key; } $link .= $this->getLanguage($email->links_language); $link = acym_frontendLink($link); } if (empty($results[2][$i])) { $tags[$oneTag] = $link; } else { $tags[$oneTag] = ''.$results[2][$i].''; } } $this->pluginHelper->replaceTags($email, $tags); } private function replaceInformationTags(&$email): array { $match = '#\{info:([a-z_]+)\}(.*?)\{\/info\}#is'; $extractedTags = []; $found = preg_match_all($match, $email->body, $extractedTags); $tags = []; if (!$found) { return $tags; } foreach ($extractedTags[0] as $i => $fullMatch) { $content = $extractedTags[2][$i]; if (acym_isValidEmail($content)) { $fieldValue = ''.esc_html($content).''; } elseif (acym_isValidUrl($content)) { if (acym_isImageUrl($content)) { $fieldValue = 'Image'; } else { $fieldValue = ''.esc_html( $content ).''; } } else { $fieldValue = $content; } $tags[$fullMatch] = $fieldValue; } return $tags; } }