| Server IP : 89.108.64.180 / Your IP : 216.73.217.92 Web Server : Apache/2.4.41 (Ubuntu) System : Linux 89-108-64-180.cloudvps.regruhosting.ru 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-root ( 1010) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/fl-brief.agast.ru/wp-content/plugins/mailpoet/lib/Form/Block/ |
Upload File : |
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
namespace MailPoet\Form\Block;
if (!defined('ABSPATH')) exit;
use MailPoet\WP\Functions as WPFunctions;
class Heading {
/** @var WPFunctions */
private $wp;
public function __construct(
WPFunctions $wp
) {
$this->wp = $wp;
}
public function render(array $block): string {
$content = ($block['params']['content'] ?? '');
return $this->wrapContent($content, $block);
}
private function wrapContent(string $content, array $block): string {
$tag = $this->renderTag($block);
$attributes = $this->renderAttributes($block);
$openTag = $this->getOpenTag($tag, $attributes);
return $openTag
. $content
. "</$tag>";
}
private function renderTag(array $block): string {
$tag = 'h2';
if (isset($block['params']['level'])) {
$tag = 'h' . $block['params']['level'];
}
return $tag;
}
private function renderAttributes(array $block): array {
$result = [];
$classes = $this->renderClass($block);
if ($classes) {
$result[] = $classes;
}
if (!empty($block['params']['anchor'])) {
$result[] = $this->renderAnchor($block);
}
$styles = $this->renderStyle($block);
if ($styles) {
$result[] = $styles;
}
return $result;
}
private function getOpenTag(string $tag, array $attributes): string {
if (empty($attributes)) {
return "<$tag>";
}
return "<$tag " . join(' ', $attributes) . ">";
}
private function renderClass(array $block): string {
$classes = ['mailpoet-heading'];
if (isset($block['params']['class_name'])) {
$classes[] = $block['params']['class_name'];
}
if (!empty($block['params']['background_color'])) {
$classes[] = 'mailpoet-has-background-color';
}
if (!empty($block['params']['font_size'])) {
$classes[] = 'mailpoet-has-font-size';
}
return 'class="'
. $this->wp->escAttr(join(' ', $classes))
. '"';
}
private function renderAnchor(array $block): string {
return 'id="'
. $block['params']['anchor']
. '"';
}
private function renderStyle(array $block): string {
$styles = [];
if (!empty($block['params']['align'])) {
$styles[] = 'text-align: ' . $block['params']['align'];
}
if (!empty($block['params']['text_color'])) {
$styles[] = 'color: ' . $block['params']['text_color'];
}
if (!empty($block['params']['font_size'])) {
$styles[] = 'font-size: ' . $block['params']['font_size'] . (is_numeric($block['params']['font_size']) ? 'px' : '');
}
if (!empty($block['params']['line_height'])) {
$styles[] = 'line-height: ' . $block['params']['line_height'];
}
if (!empty($block['params']['background_color'])) {
$styles[] = 'background-color: ' . $block['params']['background_color'];
}
if (empty($styles)) {
return '';
}
return 'style="'
. $this->wp->escAttr(join('; ', $styles))
. '"';
}
}