Server :
Apache
System :
Linux webd003.cluster126.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User :
atwiofrxug (73666)
PHP Version :
8.4.10
Disable Functions :
_dyuweyrj4,_dyuweyrj4r,dl
Current Directory :
/home/atwiofrxug/mylittletelaviv/wp-content/plugins/wp-seo-qtranslate-x/
Directory Status:
Writeable | Document Root:
Writeable
Upload File
Viewing: /home/atwiofrxug/mylittletelaviv/wp-content/plugins/wp-seo-qtranslate-x/qwpseo-admin.php
<?php
if(!defined('ABSPATH'))exit;
add_filter('i18n_admin_config','qwpseo_add_admin_page_config');
function qwpseo_add_admin_page_config($page_configs)
{
if(!isset($page_configs['yoast_wpseo'])) $page_configs['yoast_wpseo'] = array();
$page_config = &$page_configs['yoast_wpseo'];
if(!isset($page_config['pages']))
$page_config['pages'] = array( 'post.php' => '', 'post-new.php' => '', 'term.php' => '', 'edit-tags.php' => 'action=edit' );
global $pagenow;
if($pagenow == 'term.php'){
$page_config['anchors'] = array( 'edittag' => array("where" => "before"), 'poststuff' => array('where' => 'before') );
}
$page_config['js-exec'] = array();
$js = &$page_config['js-exec']; // shorthand
$dir = qtranxf_dir_from_wp_content(__FILE__);
switch($pagenow){
case 'term.php':
$js[] = array( 'handle' =>'qwpseo-prep', 'src' => $dir.'/js/qwpseo-prep.min.js', 'ver' => QWPSEO_VERSION, 'deps' => array('qtranslate-admin-common'));
$deps[] = 'yoast-seo-term-scraper';
break;
case 'post-new.php':
case 'post.php':
$deps[] = 'yoast-seo-post-scraper';
break;
default: $deps = array(); break;
}
if(!empty($deps)){
$js[] = array( 'handle' =>'qwpseo-exec', 'src' => $dir.'/js/qwpseo-exec.min.js', 'ver' => QWPSEO_VERSION, 'deps' => $deps);
}
if(empty($page_config['forms'])) $page_config['forms'] = array();
if(empty($page_config['forms']['document'])) $page_config['forms']['document'] = array();
if(empty($page_config['forms']['document']['fields'])) $page_config['forms']['document']['fields'] = array();
$fields = &$page_config['forms']['document']['fields']; // shorthand
$code = array( 'encode' => '{' );
$ids = qwpseo_get_meta_keys();
foreach($ids as $id){
//they keeps changing the HTML ids, so, set all values used so far
$fields[$id] = $code;
$fields['yoast_'.$id] = $code;
$fields['hidden_'.$id] = $code;
add_filter( 'wpseo_sanitize_tax_meta_'.$id, 'qwpseo_sanitize_tax_meta', 5, 3);
}
return $page_configs;
}
function qwpseo_admin_filters(){
global $pagenow, $q_config;
switch($pagenow){
case 'edit.php':
$ids = qwpseo_get_meta_keys();
foreach($ids as $id){
add_filter( $id, 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage');
//add_filter( 'wpseo_title', 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage');
//add_filter( 'wpseo_meta', 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage');
//add_filter( 'wpseo_metadesc', 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage');
}
//todo add_filter( "get_post_metadata", 'qwpseo_get_metadata_post', 5, 4);
break;
case 'post.php':
case 'post-new.php':
if($q_config['editor_mode'] == QTX_EDITOR_MODE_SINGLGE){
add_filter( 'get_post_metadata', 'qwpseo_get_post_metadata', 5, 4);
//add_filter( 'option_blogname', 'qtranxf_useCurrentLanguageIfNotFoundShowEmpty');
}
//to prevent the effect of 'strip_tags' in function 'retrieve_sitename' in '/wp-content/plugins/wordpress-seo/inc/class-wpseo-replace-vars.php'
add_filter( 'option_blogname', 'qwpseo_encode_swirly');
add_filter( 'option_blogdescription', 'qwpseo_encode_swirly');
if( defined('WPSEO_VERSION') && intval(substr(WPSEO_VERSION,0,1)) < 3 ) {
//to make "Page Analysis" work in Single Language Mode
add_filter( 'wpseo_pre_analysis_post_content', 'qtranxf_useCurrentLanguageIfNotFoundShowEmpty');
}
break;
}
add_action( 'admin_init', 'qwpseo_script_deps', 99 );
if(isset($_POST['yoast_wpseo_focuskw_text_input']))
unset($_POST['yoast_wpseo_focuskw_text_input']); // this causes creation a ghost db entry in wp_postmeta with meta_key '_yoast_wpseo_focuskw_text_input', while the wanted value is stored in '_yoast_wpseo_focuskw'
}
qwpseo_admin_filters();
/**
* Modifies dependencies of the Yoast scripts.
* @return void
*/
function qwpseo_script_deps(){
global $pagenow;
switch($pagenow){
case 'edit-tags.php':
case 'term.php':
$handles = array('term-scraper' => 'qwpseo-prep');
break;
case 'post.php':
case 'post-new.php':
$handles = array('post-scraper' => 'qtranslate-admin-common');
break;
default: return;
}
$scripts = wp_scripts();
$registered = $scripts->registered;
//$handles = array('post-scraper', 'term-scraper', 'replacevar-plugin', 'admin-global-script', 'metabox');
//$handles = array('term-scraper');
foreach($handles as $handle => $dep){
$key = WPSEO_Admin_Asset_Manager::PREFIX.$handle;
if(!isset($registered[$key]))
continue;
$r = &$registered[$key];
if(!isset($r->deps))
$r->deps = array();
$r->deps[] = $dep;
}
}
/**
* Very ugly hack to workaround. Fortunately this problem is gone after some deprecation in 3.0
* @param mixed $original_value
* @param mixed $object_id
* @param mixed $meta_key
* @param mixed $single
* @return mixed
*/
function qwpseo_get_post_metadata($original_value, $object_id, $meta_key = '', $single = false)
{
global $q_config;
if(empty($meta_key)){
//very ugly hack
$trace = debug_backtrace();
//qtranxf_dbg_log('qwpseo_get_post_metadata: $trace: ',$trace);
//qtranxf_dbg_log('qwpseo_get_post_metadata: $trace[6][args][0]: ',$trace[6]['args'][0]);
//qtranxf_dbg_log('qwpseo_get_post_metadata: $trace[7][function]: ',$trace[7]['function']);
if( isset($trace[7]['function']) && $trace[7]['function'] === 'calculate_results' &&
isset($trace[6]['args'][0]) && $trace[6]['args'][0] === 'focuskw'
){
//qtranxf_dbg_log('qwpseo_get_post_metadata: $object_id: ',$object_id);
//qtranxf_dbg_log('qwpseo_get_post_metadata: $single: ',$single);
$key = WPSEO_Meta::$meta_prefix . 'focuskw';
$focuskw = get_metadata('post',$object_id,$key,true);
//qtranxf_dbg_log('qwpseo_get_post_metadata: $focuskw: ',$focuskw);
$focuskw = qtranxf_use_language($q_config['language'],$focuskw);
return array( $key => array($focuskw));
}
}
return $original_value;
}
/**
* adds single-language sitemap links to the Yoast configuration page for XML Sitemaps.
*/
function qwpseo_xmlsitemaps_config()
{
global $q_config;
$options = get_option( 'wpseo_xml' );
//qtranxf_dbg_log('qwpseo_xmlsitemaps_config: $options: ',$options);
if(empty($options['enablexmlsitemap'])) return;
printf(__('%sNotes from %s'.PHP_EOL), '<h3>', 'qTranslate‑X</h3>');
echo '<p>'.PHP_EOL;
echo __('In addition to main XML Sitemap, you may also view sitemaps for each individual language:').PHP_EOL;
echo '<ul>'.PHP_EOL;
$sitemap_index_url = qtranxf_convertURL(get_option('home').'/sitemap_index.xml', $q_config['default_language'], true);
$url = home_url('i18n-index-sitemap.xml');
$rb = '';
foreach($q_config['enabled_languages'] as $lang){
$href = qtranxf_convertURL($url,$lang,true,true);
$u = $q_config['default_language'] == $lang ? qtranxf_convertURL($url,$lang,true,false) : $href;
echo '<li>'.$q_config['language_name'][$lang].' ('.$lang.', '.$q_config['locale'][$lang].'): <a href="'.$href.'" target="_blank">'.$u.'</a></li>'.PHP_EOL;
$rb .= 'Sitemap: '.$u.PHP_EOL;
}
echo '</ul><br />'.PHP_EOL;
printf(__('It is advisable to append the site\'s "%s" with the list of index sitemaps separated by language'),'/robots.txt');
$nmaps = count($q_config['enabled_languages'])+1;
echo '<br /><textarea class="widefat" rows="'.$nmaps.'" name="robots-sitemaps" readonly="readonly">'.$rb.'</textarea>'.PHP_EOL;
//echo '<pre>'.$rb.'</pre>'.PHP_EOL;
echo '<br />or with this single entry of flat multilingual index sitemap<br /><textarea class="widefat" rows="2" name="robots-sitemap" readonly="readonly">Sitemap: '.$sitemap_index_url.'</textarea>'.PHP_EOL;
echo '<br />Do not combine two sets together, since they both equally cover all languages in all pages as defined by Yoast configuration.';
echo '</p>'.PHP_EOL;
}
add_action( 'wpseo_xmlsitemaps_config', 'qwpseo_xmlsitemaps_config' );
/**
* Change encoding of $value to swirly breckets, '{'.
* @since 1.1
*/
function qwpseo_encode_swirly($value)
{
//qtranxf_dbg_log('qwpseo_encode_swirly: $value: ',$value);
$value = preg_replace('#\[:([a-z]{2}|)\]#i','{:$1}',$value);
return $value;
}
/**
* Workaround for "filter_input( INPUT_POST, $key )" in function update_term(...) in /plugins/wordpress-seo/admin/taxonomy/class-taxonomy.php.
* Function 'filter_input' does not read $_POST and there seem to be no way to alter values provided by INPUT_POST.
* @param string $key
* @param mixed $value
* @param mixed $value_posted
* @param mixed $value_old
* @return mixed
*/
function qwpseo_parse_value_posted($key, $value, $value_posted=null, $value_old=null)
{
if(empty($_POST[$key]) || !qtranxf_isMultilingual($_POST[$key]) || !class_exists('WPSEO_Utils'))
return $value;
$v = WPSEO_Utils::sanitize_text_field( stripslashes( $_POST[$key] ) );
return $v;
}
/**
* Response to
* apply_filters( 'wpseo_sanitize_tax_meta_' . $key, $clean[ $key ], ( isset( $meta_data[ $key ] ) ? $meta_data[ $key ] : null ), ( isset( $old_meta[ $key ] ) ? $old_meta[ $key ] : null ) );
* @param mixed $value
* @param mixed $value_posted
* @param mixed $value_old
* @return mixed
*/
function qwpseo_sanitize_tax_meta($value, $value_posted=null, $value_old=null)
{
$key = current_filter();
$key = substr($key,24);
return qwpseo_parse_value_posted($key, $value, $value_posted, $value_old);
}
/**
* Response to
* $check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single );
* @param mixed $value
* @param mixed $object_id
* @param mixed $meta_key
* @param mixed $single
* @return mixed
*/
function qwpseo_get_metadata_post($value, $object_id, $meta_key, $single){
$meta_type = 'post';
//code from function get_metadata in /wp-includes/meta.php
$meta_cache = wp_cache_get($object_id, $meta_type . '_meta');
if ( !$meta_cache ) {
$meta_cache = update_meta_cache( $meta_type, array( $object_id ) );
$meta_cache = $meta_cache[$object_id];
}
$mlcache = array();
if ( !isset($mlcache[$object_id]) ) {
$mlcache[$object_id] = array();
$cache = &$mlcache[$object_id];
$lang = qtranxf_getLanguage();
foreach($meta_cache as $key => $values){
foreach($values as $i => $value){
if(qtranxf_isMultilingual($value)){
if(is_serialized($value)){
$mlv = unserialize($value);
$v = qtranxf_use($lang, $mlv, false, false);
$value = serialize($v);
}else{
$value = qtranxf_use_language($lang, $value, false, false);
}
$values[$i] = $value;
}
}
$cache[$key] = $values;
}
$meta_cache = $cache;
}
if ( ! $meta_key ) {
return $meta_cache;
}
if ( isset($meta_cache[$meta_key]) ) {
if ( $single )
return maybe_unserialize( $meta_cache[$meta_key][0] );
else
return array_map('maybe_unserialize', $meta_cache[$meta_key]);
}
if ($single)
return '';
else
return array();
}
Cyb3r Drag0nz Team • Google Edition