403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.189
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/KnowledgeBase/wp-content/plugins/betterdocs/includes/FrontEnd/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/KnowledgeBase/wp-content/plugins/betterdocs/includes/FrontEnd/FrontEnd.php
<?php

namespace WPDeveloper\BetterDocs\FrontEnd;

use WPDeveloper\BetterDocs\Utils\Base;
use WPDeveloper\BetterDocs\Core\Settings;
use WPDeveloper\BetterDocs\Utils\Enqueue;
use WPDeveloper\BetterDocs\Utils\Database;
use WPDeveloper\BetterDocs\Dependencies\DI\Container;

class FrontEnd extends Base {
    private $container;
    private $database;
    /**
     * Enqueue
     * @var Enqueue
     */
    private $assets;
    /**
     * Settings
     * @var Settings
     */
    private $settings;
    private $widget_attributes = [];
    private $widget_type       = '';

    public function __construct( Container $container, Database $database, Settings $settings ) {
        $this->container = $container;
        $this->database  = $database;
        $this->settings  = $settings;

        $this->assets = $this->container->get( Enqueue::class );

        add_action( 'init', [$this, 'init'] );
        add_action( 'wp_enqueue_scripts', [$this, 'enqueue_scripts'] );

        add_filter( 'betterdocs_layout_filename', [$this, 'layout_filename'], 10, 2 );

        add_action( 'betterdocs_docs_before_social', [$this, 'article_reactions'] );

        add_action( 'betterdocs_before_render', [$this, 'before_render'], 11, 2 );
        add_action( 'betterdocs_after_render', [$this, 'after_render'], 11, 2 );
    }

    public function before_render( $widget, $widget_type ) {
        $this->widget_attributes = isset( $widget->attributes ) ? $widget->attributes : [];
        $this->widget_type       = $widget_type;

        /**
         * This line of code will run for reactions shortcode, elementor widget and blocks
         */
        if ( strpos( $widget->get_name(), 'reactions' ) !== false ) {
            $this->localize_reactions_data();
        }

        /**
         * This line of code will run for Feedback form Shortcode, Elementor widget and blocks
         */
        if ( strpos( $widget->get_name(), 'feedback_form' ) ) {
            $this->localize_feedback_form_data();
        }

        add_filter( 'betterdocs_nested_terms_args', [$this, 'terms_args'], 11, 1 );
        add_filter( 'betterdocs_nested_docs_args', [$this, 'docs_args'], 11, 1 );
    }

    public function after_render( $widget, $widget_type ) {
        remove_filter( 'betterdocs_nested_terms_args', [$this, 'terms_args'], 11 );
        remove_filter( 'betterdocs_nested_docs_args', [$this, 'docs_args'], 11 );

        $this->widget_attributes = [];
        $this->widget_type       = '';
    }

    public function terms_args( $args ) {
        switch ( $this->widget_type ) {
            case 'shortcode':
                if ( isset( $this->widget_attributes['terms_orderby'] ) ) {
                    $args['orderby'] = $this->widget_attributes['terms_orderby'];
                }

                if ( isset( $this->widget_attributes['terms_order'] ) ) {
                    $args['order'] = $this->widget_attributes['terms_order'];
                }
                break;
            case 'blocks':
                if ( isset( $this->widget_attributes['orderBy'] ) ) {
                    $args['orderby'] = $this->widget_attributes['orderBy'];
                }
                if ( isset( $this->widget_attributes['order'] ) ) {
                    $args['order'] = $this->widget_attributes['order'];
                }
                break;
            case 'elementor':
                $args['orderby'] = $this->widget_attributes['orderby'];
                $args['order']   = $this->widget_attributes['order'];
                break;
        }

        return $args;
    }

    public function docs_args( $args ) {
        switch ( $this->widget_type ) {
            case 'shortcode':
                if ( isset( $this->widget_attributes['orderby'] ) ) {
                    $args['orderby'] = $this->widget_attributes['orderby'];
                }

                if ( isset( $this->widget_attributes['order'] ) ) {
                    $args['order'] = $this->widget_attributes['order'];
                }
                break;
            case 'blocks':
                if ( isset( $this->widget_attributes['postsOrderBy'] ) ) {
                    $args['orderby'] = $this->widget_attributes['postsOrderBy'];
                }
                if ( isset( $this->widget_attributes['postsOrder'] ) ) {
                    $args['order'] = $this->widget_attributes['postsOrder'];
                }

                //This is for archive category block only
                if ( isset( $this->widget_attributes['orderby'] ) ) {
                    $args['orderby'] = $this->widget_attributes['orderby'];
                }
                if ( isset( $this->widget_attributes['order'] ) ) {
                    $args['order'] = $this->widget_attributes['order'];
                }
                break;
            case 'elementor':
                $args['orderby'] = $this->widget_attributes['post_orderby'];
                $args['order']   = $this->widget_attributes['post_order'];
                break;
        }

        return $args;
    }

    public function article_reactions() {
        if ( $this->database->get_theme_mod( 'betterdocs_post_reactions', true ) ) {
            echo do_shortcode( '[betterdocs_article_reactions]' );
        }
    }

    public function enqueue_scripts() {
        if ( is_singular( 'docs' ) ) {
            wp_enqueue_style( 'betterdocs-single' );
            wp_enqueue_script( 'clipboard' );
        }

        if ( is_post_type_archive( 'docs' ) ) {
            wp_enqueue_style( 'betterdocs-docs' );
        }

        if ( is_tax( 'doc_category' ) || is_tax( 'doc_tag' ) ) {
            wp_enqueue_style( 'betterdocs-doc_category' );
        }

        if ( is_tax( 'doc_category' ) || is_tax( 'doc_tag' ) || is_singular( 'docs' ) ) {
            wp_enqueue_style( 'simplebar' );
            wp_enqueue_script( 'simplebar' );
            wp_enqueue_script( 'betterdocs-category-grid' );
        }

        if ( is_post_type_archive( 'docs' ) || is_singular( 'docs' ) || is_tax( 'doc_category' ) || is_tax( 'doc_tag' ) || is_tax( 'knowledge_base' ) ) {
            wp_enqueue_script( 'betterdocs' );
        }
    }

    public function layout_filename( $filename, $origin_layout ) {
        $filename = ( $origin_layout === 'layout-2' ) ? 'default' : $filename;
        return $filename;
    }

    public function init() {
        $this->container->get( TemplateLoader::class )->init();

        add_filter( 'betterdocs_articles_args', [$this, 'article_args'], 11, 3 );
    }

    public function article_args( $args, $term_id, $_origin_args ) {
        if ( null == $term_id || isset( $args['orderby'] ) ) {
            return $args;
        }

        $post__in = betterdocs()->query->get_docs_order_by_terms( $term_id );

        if ( ! empty( $post__in ) ) {
            $args['orderby']  = 'post__in';
            $args['post__in'] = $post__in;
        }

        return $args;
    }

    public function localize_reactions_data() {
        $this->assets->localize( 'betterdocs-reactions', 'betterdocsReactionsConfig', [
            'post_id'  => get_the_ID(),
            'FEEDBACK' => [
                'DISPLAY' => true,
                'TEXT'    => esc_html__( 'How did you feel?', 'betterdocs' ),
                'SUCCESS' => esc_html__( 'Thanks for your feedback', 'betterdocs' ),
                'URL'     => get_rest_url( null, '/betterdocs/v1/feedback' )
            ]
        ] );
    }

    public function localize_feedback_form_data() {
        $this->assets->localize( 'betterdocs', 'betterdocsSubmitFormConfig', [
            'ajax_url' => admin_url( 'admin-ajax.php' ),
            'post_id'  => get_the_ID(),
            'nonce'    => wp_create_nonce( 'betterdocs_submit_data' )
        ] );
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit