HEX
Server: Apache
System: Linux uyu7574470001-7d78c9ff74-xfpwm 4.19.91-21.al7.x86_64 #1 SMP Wed Sep 2 19:47:49 CST 2020 x86_64
User: ()
PHP: 7.4.16
Disabled: chmod,exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_get_option,socket_getpeername,socket_getsockname,socket_last_error,socket_listen,socket_read,socket_recv,socket_recvfrom,socket_select,socket_send,socket_sendto,socket_set_block,socket_set_nonblock,socket_set_option,socket_shutdown,socket_strerror,socket_write,stream_socket_client,stream_socket_server,pfsockopen,disk_total_space,disk_free_space,chown,diskfreespace,getrusage,get_current_user,getmyuid,getmypid,dl,leak,listen,chgrp,link,symlink,dlopen,proc_nice,proc_get_stats,proc_terminate,shell_exec,sh2_exec,posix_getpwuid,posix_getgrgid,posix_kill,ini_restore,mkfifo,dbmopen,dbase_open,filepro,filepro_rowcount,posix_mkfifo,putenv,sleep,fsockopen
Upload Files
File: /usr/home/uyu7574470001/htdocs/wp-content/plugins/wp-table-builder/inc/Blocks/LegacySaver/Icon.php
<?php

namespace WPTableBuilder\Blocks\LegacySaver;

use WPTableBuilder\Utils\RenderUtils;

class Icon
{
    private static $element_id = 1;

    public static function render($block)
    {

        $props = $block['props'];

        $style = RenderUtils::generate_css_string([
            'padding' => $props['padding'] ?? '',
            'margin' => $props['margin'] ?? '',
        ]);

        $size = esc_attr($props['size'] ?? '25px');
        $icons = '';

        $i = 0;
        $iconCount = max((int) $props['count'] ?? 1, 1);

        foreach ($block['icons'] as $icon) {
            $i++;
            if ($i > $iconCount) {
                break;
            }
            $lTag = 'span';
            $lAttrs = "";
            $color = esc_attr($icon['color'] ?? 'rgb(0, 0, 0)');
            $iconSrc = esc_attr($icon['icon'] ?? 'star');
            $iconStr = RenderUtils::get_icon($iconSrc);

            if ( isset($icon['url']) && $icon['url'] !== '') {
                $lTag = 'a';
                if ($icon['convertToAbsolute'] && !preg_match('/^https?:\/\//', $icon['url'])) {
                    $icon['url'] = 'https://' . ltrim($icon['url'], '/');
                }
                $lAttrs = RenderUtils::generate_attrs_string([
                    "href" => RenderUtils::esc_url($icon['url'] ?? ''),
                    "target" => $icon['linkTarget'] ?? false,
                    "rel" => $icon['linkRel'] ?? false,
                    "data-wptb-link-enable-convert-relative" => $icon['convertToAbsolute'] ?? false,
                ]);
            }
            
            $icons .= <<<HTML
            <{$lTag} {$lAttrs} class="wptb-icon-link-target-{$i}">
                <div
                    class="wptb-icon wptb-icon-{$i}"
                    style="width: {$size}; height: {$size}; fill: {$color}"
                    data-wptb-icon-src="{$iconSrc}"
                >
                    {$iconStr}
                </div>
            </{$lTag}>
            HTML;
        }

        $starIcon = RenderUtils::get_icon('star');

        for (; $i <= 5; $i++) {
            
            $icons .= <<<HTML
            <span class="wptb-icon-link-target-{$i}">
                <div
                    class="wptb-icon wptb-icon-{$i}"
                    style="width: {$size}; height: {$size}; fill: rgb(0, 0, 0); display: none;"
                    data-wptb-icon-src="star"
                >
                    {$starIcon}
                </div>
            </span>
            HTML;
        }

        $element_id = self::$element_id++;
        $align = esc_attr($props['alignment'] ?? 'center');
        
        return <<<HTML
        <div class="wptb-icon-container wptb-ph-element wptb-element-icon-{$element_id}" data-wptb-icon-number="{$iconCount}" style="{$style}">
            <div class="wptb-icon-wrapper" style="text-align: {$align}">
                {$icons}
            </div>
        </div>
        HTML;

    }
}