AnonSec Team
Server IP : 10.2.73.233  /  Your IP : 216.73.216.223
Web Server : Apache/2.4.59 (Debian)
System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
User : www-data ( 33)
PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146
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 : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/ilpnowa/../ilpnowa/web/info/../wp-includes/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/ilpnowa/../ilpnowa/web/info/../wp-includes/class-wpglobus-plus-wpseo23.php
<?php

if ( is_admin() ) {

	/**
	 *
	 */
	add_action( 'wpseo_tab_content', 'action__wpseo_tab_analysis');
	function action__wpseo_tab_analysis() {
		
		if ( ! isset( $_GET['post'] ) ) {
			return;
		}	

		global	$WPGlobus_WPSEO_Metabox;
		
		$analysis = array();
		foreach ( WPGlobus::Config()->open_languages as $language ) {
			$WPGlobus_WPSEO_Metabox->language = $language;
			$post = get_post( $_GET['post'] );
			WPGlobus_Core::translate_wp_post( $post, $language, WPGlobus::RETURN_EMPTY );
			$analysis[$language] = $WPGlobus_WPSEO_Metabox->linkdex_output( $post );
		}
				
		?>
		<div id="wpglobus-wpseo-page-analysis-tabs" class="wpglobus-wpseo-tabs">
			<ul class="wpglobus-wpseo-tabs-list">    <?php
				$order = 0;
				foreach ( WPGlobus::Config()->open_languages as $language ) { ?>
					<li id="wpseo-analysis-link-tab-<?php echo $language; ?>"
						data-language="<?php echo $language; ?>"
						data-order="<?php echo $order; ?>"
						class="wpglobus-wpseo-analysis-tab"><a
							href="#wpseo-analysis-tab-<?php echo $language; ?>"><?php echo WPGlobus::Config()->en_language_name[ $language ]; ?></a>
					</li> <?php
					$order ++;
				} ?>
			</ul>	<?php
			foreach ( WPGlobus::Config()->open_languages as $language ) :
				#$url = WPGlobus_Utils::localize_url( $permalink['url'], $language ); 	?>
				<div id="wpseo-analysis-tab-<?php echo $language; ?>" class="wpglobus-wpseo-page-analysis"
					 data-language="<?php echo $language; ?>"
					 data-url-<?php #echo $language; ?>="<?php #echo $url; ?>"
					 data-permalink="<?php #echo $permalink['action']; ?>"
					 data-metadesc="<?php #echo esc_html( WPGlobus_Core::text_filter( $metadesc, $language, WPGlobus::RETURN_EMPTY ) ); ?>"
					 data-wpseotitle="<?php #echo esc_html( WPGlobus_Core::text_filter( $wpseotitle, $language, WPGlobus::RETURN_EMPTY ) ); ?>"
					 data-focuskw="<?php #echo WPGlobus_Core::text_filter( $focuskw, $language, WPGlobus::RETURN_EMPTY ); ?>">
					
					<?php 
					if ( ! empty( $analysis[$language] ) ) {
						echo $analysis[$language];
					}
					$WPGlobus_WPSEO_Metabox->language = $language;					
					$WPGlobus_WPSEO_Metabox->wpglobus_publish_box( $WPGlobus_WPSEO_Metabox->results[$language] ); 	?>
					
				</div> <?php
			endforeach;	?>
		</div>
		<?php
	}	

	if ( class_exists('WPSEO_Metabox') ) {
		
		/**
		 * Class WPGlobus_WPSEO_Metabox
		 * @since 1.0.0
		 */
		 
		class WPGlobus_WPSEO_Metabox extends WPSEO_Metabox {
			
			/**
			 * @val string
			 */
			var $language = '';
			
			/**
			 * @val boolean
			 */
			var $post_noindex = false;
			
			/**
			 * @var array Store results for language
			 */
			var $results = array();
			
			function __construct() {

				add_action( 'admin_print_scripts', array( $this, 'admin_print_scripts') );
				add_filter( 'wpseo_replacements', array( $this, 'wpseo_replacements' ) );
				add_action( 'post_submitbox_misc_actions', array( $this, 'wpglobus_score_publish_box' ) );

			}	
			
			/**
			 * Print scripts
			 */
			function admin_print_scripts() {

				wp_register_script(
					'wpglobus-plus-wpseo',
					WP_PLUGIN_URL . '/wpglobus-plus/includes/js/wpglobus-plus-wpseo23.js',
					array( 'jquery', 'jquery-ui-dialog', 'jquery-ui-tabs', 'wpglobus-admin' ),
					WPGLOBUS_PLUS_VERSION,
					true
				);
				wp_enqueue_script( 'wpglobus-plus-wpseo' );

			}				
			
			/**
			 * @see WPSEO_Replace_Vars->replace() in class-wpseo-replace-vars.php file
			 */	
			function wpseo_replacements( $replacements ) {
			
				foreach($replacements as $key=>$value) {
					if ( WPGlobus_Core::has_translations($value) ) {
						$replacements[$key] = WPGlobus_Core::text_filter( $value, $this->language, WPGlobus::RETURN_EMPTY );
					}
				}	
				return $replacements;
				
			}
			
			/**
			 * Calculate the page analysis results for post.
			 * @see original calculate_results()
			 *
			 * @param  object $post Post to calculate the results for.
			 *
			 * @return  array|WP_Error
			 */
			function calculate_results( $post ) {
				$options = WPSEO_Options::get_all();

				if ( ! class_exists( 'DOMDocument' ) ) {
					$result = new WP_Error( 'no-domdocument', sprintf( __( "Your hosting environment does not support PHP's %sDocument Object Model%s.", 'wordpress-seo' ), '<a href="http://php.net/manual/en/book.dom.php">', '</a>' ) . ' ' . __( "To enjoy all the benefits of the page analysis feature, you'll need to (get your host to) install it.", 'wordpress-seo' ) );

					$this->results[$this->language] = $result;
					return $result;
				}

				if ( ! is_array( $post ) && ! is_object( $post ) ) {
					$result = new WP_Error( 'no-post', __( 'No post content to analyse.', 'wordpress-seo' ) );

					$this->results[$this->language] = $result;
					return $result;
				}
				/* elseif ( self::get_value( 'focuskw', $post->ID ) === '' ) { */
				elseif ( WPGlobus_Core::text_filter( self::get_value( 'focuskw', $post->ID ), $this->language, WPGlobus::RETURN_EMPTY ) === '' ) {
					$result = new WP_Error( 'no-focuskw', sprintf( __( 'No focus keyword was set for this %s. If you do not set a focus keyword, no score can be calculated.', 'wordpress-seo' ), $post->post_type ) );

					self::set_value( 'linkdex', 0, $post->ID );

					$this->results[$this->language] = $result;
					return $result;
				}
				elseif ( apply_filters( 'wpseo_use_page_analysis', true ) !== true ) {
					$result = new WP_Error( 'page-analysis-disabled', sprintf( __( 'Page Analysis has been disabled.', 'wordpress-seo' ), $post->post_type ) );

					$this->results[$this->language] = $result;
					return $result;
				}

				$results = array();
				$job     = array();
				
				$sampleurl             = $this->get_sample_permalink( $post ); 
				if ( WPGlobus::Config()->default_language != $this->language ) {
					$sampleurl[0] = WPGlobus_Utils::localize_url( $sampleurl[0], $this->language );
					
					/**
					 * Filter to get meta_key.
					 *
					 * @see class-wpglobus-plus-slug.php
					 * @since 1.0.0
					 * @param string      $return    Sample permalink HTML markup.
					 */
					$key  = apply_filters( 'wpglobus_plus_slug_meta_key', '' );
					$slug = '';
					if ( ! empty( $key ) ) {
						$slug = get_post_meta( $post->ID, $key . $this->language, true );
					}	
					if ( ! empty( $slug ) ) {
						$sampleurl[1] = $slug;
					}	
					
				}

				$job['pageUrl']        = preg_replace( '`%(?:post|page)name%`', $sampleurl[1], $sampleurl[0] );
				/** @todo check for $job['pageSlug'] */
				$job['pageSlug']       = urldecode( $post->post_name );
				$job['keyword']        = self::get_value( 'focuskw', $post->ID );
				$job['keyword']        = WPGlobus_Core::text_filter( $job['keyword'], $this->language, WPGlobus::RETURN_EMPTY );
				$job['keyword_folded'] = $this->strip_separators_and_fold( $job['keyword'] );
				$job['post_id']        = $post->ID;
				$job['post_type']      = $post->post_type;

				$dom                      = new domDocument;
				$dom->strictErrorChecking = false;
				$dom->preserveWhiteSpace  = false;

				/**
				 * Filter: 'wpseo_pre_analysis_post_content' - Make the post content filterable before calculating the page analysis
				 *
				 * @api string $post_content The post content
				 *
				 * @param object $post The post.
				 */
				//$post_content = apply_filters( 'wpseo_pre_analysis_post_content', $post->post_content, $post );
				$post_content = $post->post_content;

				// Check if the post content is not empty.
				if ( ! empty( $post_content ) ) {
					@$dom->loadHTML( $post_content );
				}

				unset( $post_content );

				$xpath = new DOMXPath( $dom );

				// Check if this focus keyword has been used already.
				$this->check_double_focus_keyword( $job, $results );

				// Keyword.
				$this->score_keyword( $job['keyword'], $results );
				
				// Title.
				$title = self::get_value( 'title', $post->ID );
				$title   = WPGlobus_Core::text_filter( $title, $this->language, WPGlobus::RETURN_EMPTY );
				if ( $title !== '' ) {
					$job['title'] = $title;
				}
				else {
					if ( isset( $options[ 'title-' . $post->post_type ] ) && $options[ 'title-' . $post->post_type ] !== '' ) {
						$title_template = $options[ 'title-' . $post->post_type ];
					}
					else {
						$title_template = '%%title%% - %%sitename%%';
					}
					$job['title'] = wpseo_replace_vars( $title_template, $post );
				}
				unset( $title );
				$this->score_title( $job, $results );

				// Meta description.
				$description = '';
				$desc_meta   = self::get_value( 'metadesc', $post->ID );
				$desc_meta   = WPGlobus_Core::text_filter( $desc_meta, $this->language, WPGlobus::RETURN_EMPTY );
				if ( $desc_meta !== '' ) {
					$description = $desc_meta;
				}
				elseif ( isset( $options[ 'metadesc-' . $post->post_type ] ) && $options[ 'metadesc-' . $post->post_type ] !== '' ) {
					$description = wpseo_replace_vars( $options[ 'metadesc-' . $post->post_type ], $post );
				}
				unset( $desc_meta );

				self::$meta_length = apply_filters( 'wpseo_metadesc_length', self::$meta_length, $post );

				$this->score_description( $job, $results, $description, self::$meta_length );
				unset( $description );

				// Body.
				$body   = $this->get_body( $post );
				$firstp = $this->get_first_paragraph( $body );
				$this->score_body( $job, $results, $body, $firstp );
				unset( $firstp );

				// URL.
				$this->score_url( $job, $results );

				// Headings.
				$headings = $this->get_headings( $body );
				$this->score_headings( $job, $results, $headings );
				unset( $headings );

				// Images.
				$imgs          = array();
				$imgs['count'] = substr_count( $body, '<img' );
				$imgs          = $this->get_images_alt_text( $post->ID, $body, $imgs );

				// Check featured image.
				if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail() ) {
					$imgs['count'] += 1;

					if ( empty( $imgs['alts'] ) ) {
						$imgs['alts'] = array();
					}

					$imgs['alts'][] = $this->strtolower_utf8( get_post_meta( get_post_thumbnail_id( $post->ID ), '_wp_attachment_image_alt', true ) );
				}

				$this->score_images_alt_text( $job, $results, $imgs );
				unset( $imgs );
				unset( $body );

				// Anchors.
				$anchors = $this->get_anchor_texts( $xpath );
				$count   = $this->get_anchor_count( $xpath );

				$this->score_anchor_texts( $job, $results, $anchors, $count );
				unset( $anchors, $count, $dom );

				//$results = apply_filters( 'wpseo_linkdex_results', $results, $job, $post );

				$this->aasort( $results, 'val' );

				$overall     = 0;
				$overall_max = 0;

				foreach ( $results as $result ) {
					$overall     += $result['val'];
					$overall_max += 9;
				}
				unset( $result );

				if ( $overall < 1 ) {
					$overall = 1;
				}
				$score = WPSEO_Utils::calc( WPSEO_Utils::calc( $overall, '/', $overall_max ), '*', 100, true );

				if ( ! is_wp_error( $score ) ) {
					self::set_value( 'linkdex', absint( $score ), $post->ID );

					$results['total'] = $score;
				}
				
				$this->results[$this->language] = $results;

				return $results;
			}
		
			/**
			* Output the page analysis results.
			* @see original linkdex_output()
			*
			* @param object $post Post to output the page analysis results for.
			*
			* @return string
			*/
			function linkdex_output( $post ) {
				$results = $this->calculate_results( $post );

				if ( is_wp_error( $results ) ) {
					$error = $results->get_error_messages();

					return '<tr><td><div class="wpseo_msg"><p><strong>' . esc_html( $error[0] ) . '</strong></p></div></td></tr>';
				}
				$output = '';

				if ( is_array( $results ) && $results !== array() ) {

					$output     = '<table class="wpseoanalysis">';
					$perc_score = absint( $results['total'] );
					unset( $results['total'] ); // Unset to prevent echoing it.

					foreach ( $results as $result ) {
						if ( is_array( $result ) ) {
							$score = WPSEO_Utils::translate_score( $result['val'] );
							$output .= '<tr><td class="score"><div class="' . esc_attr( 'wpseo-score-icon ' . $score ) . '"></div></td><td>' . $result['msg'] . '</td></tr>';
						}
					}
					unset( $result, $score );
					$output .= '</table>';

					if ( WP_DEBUG === true || ( defined( 'WPSEO_DEBUG' ) && WPSEO_DEBUG === true ) ) {
						$output .= '<p><small>(' . $perc_score . '%)</small></p>';
					}
				}

				$output = '<div class="wpseo_msg hidden"><p>' . __( 'To update this page analysis, save as draft or update and check this tab again', 'wordpress-seo' ) . '.</p></div>' . $output;

				unset( $results );

				return $output;
			}

			/**
			 * Check whether the keyword is contained in the title.
			 *
			 * @param array $job     The job array holding both the keyword versions.
			 * @param array $results The results array.
			 */
			function score_title( $job, &$results ) {
				$scoreTitleMinLength    = 40;
				$scoreTitleMaxLength    = 70;
				$scoreTitleKeywordLimit = 0;

				$scoreTitleMissing          = __( 'Please create a page title.', 'wordpress-seo' );
				$scoreTitleCorrectLength    = __( 'The page title is more than 40 characters and less than the recommended 70 character limit.', 'wordpress-seo' );
				$scoreTitleTooShort         = __( 'The page title contains %d characters, which is less than the recommended minimum of 40 characters. Use the space to add keyword variations or create compelling call-to-action copy.', 'wordpress-seo' );
				$scoreTitleTooLong          = __( 'The page title contains %d characters, which is more than the viewable limit of 70 characters; some words will not be visible to users in your listing.', 'wordpress-seo' );
				$scoreTitleKeywordMissing   = __( 'The keyword / phrase %s does not appear in the page title.', 'wordpress-seo' );
				$scoreTitleKeywordBeginning = __( 'The page title contains keyword / phrase, at the beginning which is considered to improve rankings.', 'wordpress-seo' );
				$scoreTitleKeywordEnd       = __( 'The page title contains keyword / phrase, but it does not appear at the beginning; try and move it to the beginning.', 'wordpress-seo' );

				if ( $job['title'] == '' ) {
					$this->save_score_result( $results, 1, $scoreTitleMissing, 'title' );
				}
				else {
					$job['title'] = wp_strip_all_tags( $job['title'] );

					$statistics = new Yoast_TextStatistics( get_bloginfo( 'charset' ) );
					$length = $statistics->text_length( $job['title'] );
					
					if ( $length < $scoreTitleMinLength ) {
						$this->save_score_result( $results, 6, sprintf( $scoreTitleTooShort, $length ), 'title_length' );
					}
					elseif ( $length > $scoreTitleMaxLength ) {
						$this->save_score_result( $results, 6, sprintf( $scoreTitleTooLong, $length ), 'title_length' );
					}
					else {
						$this->save_score_result( $results, 9, $scoreTitleCorrectLength, 'title_length' );
					}

					// @todo MA Keyword/Title matching is exact match with separators removed, but should extend to distributed match.
					if ( empty($job['keyword_folded']) ) {
						$needle_position = false;
					} else {
						$needle_position = mb_stripos( $job['title'], $job['keyword_folded'] );
					}
					
					if ( $needle_position === false ) {
						if ( empty($job['keyword']) ) {
							$needle_position = false;
						} else {	
							$needle_position = mb_stripos( $job['title'], $job['keyword'] );
						}	
					}

					if ( $needle_position === false ) {
						$this->save_score_result( $results, 2, sprintf( $scoreTitleKeywordMissing, '<span style="color:red;background:#ddd">'.$job['keyword_folded'].'</span>' ), 'title_keyword' );
					}
					elseif ( $needle_position <= $scoreTitleKeywordLimit ) {
						$this->save_score_result( $results, 9, $scoreTitleKeywordBeginning, 'title_keyword' );
					}
					else {
						$this->save_score_result( $results, 6, $scoreTitleKeywordEnd, 'title_keyword' );
					}
				}
			}

			/**
			 *
			 */
			public function wpglobus_score_publish_box($result) {
				echo '<div class="wpglobus-misc-score-box"></div>';	
			}	

			/**
			 * Outputs the page analysis score.
			 * @see original publish_box()
			 */
			public function wpglobus_publish_box($result) {
				if ( $this->is_metabox_hidden() === true ) {
					return;
				}

				$post = $this->wpglobus_get_metabox_post();

				if ( self::get_value( 'meta-robots-noindex', $post->ID ) === '1' ) {
					$score_label = 'noindex';
					$title       = __( 'Post is set to noindex.', 'wordpress-seo' );
					$score_title = $title;
					$this->post_noindex = true;
				}
				else {

					$score   = '';
					//$results = $this->calculate_results( $post );
					$results = $result;
					if ( ! is_wp_error( $results ) && isset( $results['total'] ) ) {
						$score = $results['total'];
						unset( $results );
					}

					if ( $score === '' ) {
						$score_label = 'na';
						$title       = __( 'No focus keyword set.', 'wordpress-seo' );
					}
					else {
						$score_label = WPSEO_Utils::translate_score( $score );
					}

					$score_title = WPSEO_Utils::translate_score( $score, false );
					if ( ! isset( $title ) ) {
						$title = $score_title;
					}
				}

				printf( '
				<div id="%1s" class="misc-pub-section wpglobus-misc-pub-section misc-yoast">
					<div title="%2$s" class="%3$s"></div>
					%4$s <span class="wpseo-score-title">%5$s</span>
					<a class="wpseo_tablink scroll" href="#wpseo_linkdex">%6$s</a>
				</div>',
					'wpglobus-wpseo-score-result-' . $this->language,
					esc_attr( $title ),
					esc_attr( 'wpseo-score-icon ' . $score_label ),
					WPGlobus::Config()->en_language_name[$this->language] . ' ' . __( 'SEO:', 'wordpress-seo' ),
					$score_title,
					__( 'Check', 'wordpress-seo' )
				);
			}
			
			/**
			 * Returns post in metabox context
			 * @see get_metabox_post() in class-metabox.php
			 *
			 * @returns WP_Post
			 */
			private function wpglobus_get_metabox_post() {
				if ( isset( $_GET['post'] ) ) {
					$post_id = (int) WPSEO_Utils::validate_int( $_GET['post'] );
					$post    = get_post( $post_id );
				}
				else {
					$post = $GLOBALS['post'];
				}

				return $post;
			}			
			
			
		}

	}
	
}

AnonSec - 2021