403Webshell
Server IP : 104.26.4.103  /  Your IP : 216.73.216.4
Web Server : nginx/1.27.1
System : Linux in-5 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64
User : arabianexpress ( 1872)
PHP Version : 8.0.30
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /storage/v9321/leapdubai/public_html/wp-content/plugins/kirki/app/Supports/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /storage/v9321/leapdubai/public_html/wp-content/plugins/kirki/app/Supports/PageUrl.php
<?php

namespace Kirki\App\Supports;

defined('ABSPATH') || exit;

use Kirki\App\Constants\CollectionTypes;
use Kirki\App\Constants\PageMetaKeys;
use Kirki\App\Constants\PostTypes;
use Kirki\App\Models\Page as PageModel;
use Kirki\App\Models\PostMeta;
use Kirki\App\Utils\PostUtil;
use Kirki\Framework\Sanitizer;

use function Kirki\App\is_not_empty_array;

class PageUrl {

    /**
     * The page
     * 
     * @var PageModel
     */
    protected $page;

    /**
     * The page permalink
     * 
     * @var string
     */
    protected $page_permalink;

    /**
     * Constructor
     * 
     * @param PageModel|int $page
     */
    public function __construct($page)
    {
        if (is_numeric($page)) {
            $page = PageModel::find($page);
        }

        $this->page = $page;
    }

    /**
     * Create a new instance
     * 
     * @param PageModel|int $page
     * @return static
     */
    public static function create($page) 
    {
        return new static($page);
    }

    /**
     * Get the page
     * 
     * @return PageModel
     */
    public function get_page()
    {
        return $this->page;
    }

    /**
     * Get the permalink of a page
     * 
     * @return string
     */
    public function get_page_permalink()
    {
        if ($this->page_permalink) {
            return $this->page_permalink;
        }

        return $this->page_permalink = $this->process_page_permalink($this->page);
    }

    /**
     * process the permalink of a page
     * 
     * @param PageModel|int $page
     * @return string
     */
    protected function process_page_permalink($page)
	{
        if (is_numeric($page)) {
            $page = PageModel::find($page);
        }

		$post_permalink = PostUtil::get_permalink($page);
		$protocol = strpos(home_url(), 'https://') !== false ? 'https' : 'http';

		if ($protocol === 'https') {
			return str_replace('http://', 'https://', $post_permalink);
		}

		return str_replace('https://', 'http://', $post_permalink);
	}

    /**
     * Get the ajax url
     * 
     * @return string
     */
    public function get_ajax_url()
    {
        $protocol = strpos(home_url(), 'https://') !== false ? 'https' : 'http';
		return admin_url('admin-ajax.php', $protocol);
    }

    public function get_preview_url()
	{
		if ($this->page->post_type === PostTypes::TEMPLATE) {
            $meta = isset($page->meta) && $page->meta->not_empty() ? $page->meta->pluck('meta_value', 'meta_key')->to_array() : [];
			$conditions = $meta[PageMetaKeys::TEMPLATE_CONDITIONS] ?? PostMeta::get_meta_value($this->page->ID, PageMetaKeys::TEMPLATE_CONDITIONS, []);

            [
                'type' => $type,
                'data' => $data
            ] = CollectionItem::get_items_from_condition($conditions);

            if (is_not_empty_array($data)) {
                return $this->get_page_permalink();
            }

            switch ($type) {
                case CollectionTypes::POST:
                    return $this->process_page_permalink($data[0]['ID']);
                    break;
                case CollectionTypes::USER:
                    return get_author_posts_url($data[0]['ID']);
                    break;
                case CollectionTypes::TERM:
                    return get_term_link($data[0]['ID']);
                    break;
            }
		}

		return $this->get_page_permalink();
	}

    /**
     * Get the editor url of a page
     * 
     * @return string
     */
    public function get_editor_url()
    {
        $editor_url = add_query_arg(
            ['action' => KIRKI_EDITOR_ACTION],
            $this->get_page_permalink()
        );

        
        if (EditorPreview::is_valid_request() && EditorPreview::has_valid_token()) {
            $token = EditorPreview::get_token_from_header();

            $editor_url = add_query_arg(
                [
                    'editor-preview-token' => $token,
                ],
                $editor_url
            );
        }

        return $editor_url;
        
    }

    /**
     * Get the iframe url of a page
     * 
     * @return string
     */
    public function get_iframe_url()
    {
        $iframe_url_params = [
            'action' => KIRKI_EDITOR_ACTION,
            'load_for' => 'kirki-iframe',
            'post_id' => $this->page->ID,
        ];

        $editor_preview_token = $this->get_editor_preview_token();

        if (!empty($editor_preview_token)) {
            $iframe_url_params['editor-preview-token'] = $editor_preview_token;
        }

        return add_query_arg(
            $iframe_url_params,
            $this->get_page_permalink()
        );
    }

    /**
     * Get the nonce
     * 
     * @return string
     */
    public function get_nonce()
    {
        return wp_create_nonce('wp_rest');
    }

    /**
     * Get the editor preview token
     * 
     * @return string
     */
    public function get_editor_preview_token()
    {
        $token = filter_input(INPUT_GET, 'editor-preview-token');
        $editor_preview_token = Sanitizer::apply_rule($token, Sanitizer::TEXT);

        return !empty($editor_preview_token) ? $editor_preview_token : '';
    }

    /**
     * Get the home url
     * 
     * @return string
     */
    public function get_home_url()
    {
        return home_url();
    }

    /**
     * Get the site url
     * 
     * @return string
     */
    public function get_site_url()
    {
        return get_site_url();
    }

    /**
     * Get the admin url
     * 
     * @return string
     */
    public function get_admin_url()
    {
        return get_admin_url();
    }

    /**
     * Get the core plugin url
     * 
     * @return string
     */
    public function get_core_plugin_url()
    {
        return KIRKI_CORE_PLUGIN_URL;
    }

    /**
     * Get the rest url
     * 
     * @return string
     */
    public function get_rest_url()
    {
        return rest_url();
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit