PDF rausgenommen
This commit is contained in:
7
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/autoload.php
vendored
Normal file
7
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/autoload.php
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitf22b8825991ccda35c7813f5b3928f77::getLoader();
|
7
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/autoload_52.php
vendored
Normal file
7
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/autoload_52.php
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
// autoload_52.php generated by xrstf/composer-php52
|
||||
|
||||
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
||||
|
||||
return ComposerAutoloaderInit1130f724cc96931ec29ebc5a0cff9b24::getLoader();
|
445
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/ClassLoader.php
vendored
Normal file
445
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/ClassLoader.php
vendored
Normal file
@ -0,0 +1,445 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
/**
|
||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||
*
|
||||
* $loader = new \Composer\Autoload\ClassLoader();
|
||||
*
|
||||
* // register classes with namespaces
|
||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||
* $loader->add('Symfony', __DIR__.'/framework');
|
||||
*
|
||||
* // activate the autoloader
|
||||
* $loader->register();
|
||||
*
|
||||
* // to enable searching the include path (eg. for PEAR packages)
|
||||
* $loader->setUseIncludePath(true);
|
||||
*
|
||||
* In this example, if you try to use a class in the Symfony\Component
|
||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||
* the autoloader will first look for the class under the component/
|
||||
* directory, and it will then fallback to the framework/ directory if not
|
||||
* found before giving up.
|
||||
*
|
||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see http://www.php-fig.org/psr/psr-0/
|
||||
* @see http://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
// PSR-4
|
||||
private $prefixLengthsPsr4 = array();
|
||||
private $prefixDirsPsr4 = array();
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
private $prefixesPsr0 = array();
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoritative = false;
|
||||
private $missingClasses = array();
|
||||
private $apcuPrefix;
|
||||
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
return $this->prefixDirsPsr4;
|
||||
}
|
||||
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
return $this->fallbackDirsPsr0;
|
||||
}
|
||||
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
return $this->fallbackDirsPsr4;
|
||||
}
|
||||
|
||||
public function getClassMap()
|
||||
{
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap Class to filename map
|
||||
*/
|
||||
public function addClassMap(array $classMap)
|
||||
{
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
} else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
// Register directories for a new namespace.
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 base directories
|
||||
*/
|
||||
public function set($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr0 = (array) $paths;
|
||||
} else {
|
||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function setPsr4($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr4 = (array) $paths;
|
||||
} else {
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath)
|
||||
{
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath()
|
||||
{
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isClassMapAuthoritative()
|
||||
{
|
||||
return $this->classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||
*
|
||||
* @param string|null $apcuPrefix
|
||||
*/
|
||||
public function setApcuPrefix($apcuPrefix)
|
||||
{
|
||||
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getApcuPrefix()
|
||||
{
|
||||
return $this->apcuPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*
|
||||
* @param bool $prepend Whether to prepend the autoloader or not
|
||||
*/
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
* @return bool|null True if loaded, null otherwise
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
*
|
||||
* @return string|false The path if found, false otherwise
|
||||
*/
|
||||
public function findFile($class)
|
||||
{
|
||||
// class map lookup
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||
return false;
|
||||
}
|
||||
if (null !== $this->apcuPrefix) {
|
||||
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||
if ($hit) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
$file = $this->findFileWithExtension($class, '.php');
|
||||
|
||||
// Search for Hack files if we are running on HHVM
|
||||
if (false === $file && defined('HHVM_VERSION')) {
|
||||
$file = $this->findFileWithExtension($class, '.hh');
|
||||
}
|
||||
|
||||
if (null !== $this->apcuPrefix) {
|
||||
apcu_add($this->apcuPrefix.$class, $file);
|
||||
}
|
||||
|
||||
if (false === $file) {
|
||||
// Remember that this class does not exist.
|
||||
$this->missingClasses[$class] = true;
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||
|
||||
$first = $class[0];
|
||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||
$subPath = $class;
|
||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||
$subPath = substr($subPath, 0, $lastPos);
|
||||
$search = $subPath . '\\';
|
||||
if (isset($this->prefixDirsPsr4[$search])) {
|
||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||
if (file_exists($file = $dir . $pathEnd)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-4 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 lookup
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||
} else {
|
||||
// PEAR-like class name
|
||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||
}
|
||||
|
||||
if (isset($this->prefixesPsr0[$first])) {
|
||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 include paths.
|
||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*/
|
||||
function includeFile($file)
|
||||
{
|
||||
include $file;
|
||||
}
|
271
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/ClassLoader52.php
vendored
Normal file
271
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/ClassLoader52.php
vendored
Normal file
@ -0,0 +1,271 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 99% of this is copied as-is from the original Composer source code and is
|
||||
* released under MIT license as well. Copyright goes to:
|
||||
*
|
||||
* - Fabien Potencier <fabien@symfony.com>
|
||||
* - Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
|
||||
class xrstf_Composer52_ClassLoader {
|
||||
private $prefixes = array();
|
||||
private $fallbackDirs = array();
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoratative = false;
|
||||
private $allowUnderscore = false;
|
||||
|
||||
/**
|
||||
* @param boolean $flag true to allow class names with a leading underscore, false to disable
|
||||
*/
|
||||
public function setAllowUnderscore($flag) {
|
||||
$this->allowUnderscore = (boolean) $flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getPrefixes() {
|
||||
return $this->prefixes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoratative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoratative) {
|
||||
$this->classMapAuthoratative = $classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getClassMapAuthoratative() {
|
||||
return $this->classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getFallbackDirs() {
|
||||
return $this->fallbackDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getClassMap() {
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap class to filename map
|
||||
*/
|
||||
public function addClassMap(array $classMap) {
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
}
|
||||
else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of classes, merging with any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
* @param bool $prepend prepend the location(s)
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false) {
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirs = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirs
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->fallbackDirs = array_merge(
|
||||
$this->fallbackDirs,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isset($this->prefixes[$prefix])) {
|
||||
$this->prefixes[$prefix] = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixes[$prefix]
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
$this->prefixes[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of classes, replacing any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
*/
|
||||
public function set($prefix, $paths) {
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirs = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
$this->prefixes[$prefix] = (array) $paths;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath) {
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath() {
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*/
|
||||
public function register() {
|
||||
spl_autoload_register(array($this, 'loadClass'), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*/
|
||||
public function unregister() {
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class the name of the class
|
||||
* @return bool|null true, if loaded
|
||||
*/
|
||||
public function loadClass($class) {
|
||||
if ($file = $this->findFile($class)) {
|
||||
include $file;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class the name of the class
|
||||
* @return string|null the path, if found
|
||||
*/
|
||||
public function findFile($class) {
|
||||
if ('\\' === $class[0]) {
|
||||
$class = substr($class, 1);
|
||||
}
|
||||
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
elseif ($this->classMapAuthoratative) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$classPath = $this->getClassPath($class);
|
||||
|
||||
foreach ($this->prefixes as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->fallbackDirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return $this->classMap[$class] = false;
|
||||
}
|
||||
|
||||
private function getClassPath($class) {
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
|
||||
$className = substr($class, $pos + 1);
|
||||
}
|
||||
else {
|
||||
// PEAR-like class name
|
||||
$classPath = null;
|
||||
$className = $class;
|
||||
}
|
||||
|
||||
$className = str_replace('_', DIRECTORY_SEPARATOR, $className);
|
||||
|
||||
// restore the prefix
|
||||
if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
|
||||
$className[0] = '_';
|
||||
}
|
||||
|
||||
$classPath .= $className.'.php';
|
||||
|
||||
return $classPath;
|
||||
}
|
||||
|
||||
public static function resolveIncludePath($classPath) {
|
||||
$paths = explode(PATH_SEPARATOR, get_include_path());
|
||||
|
||||
foreach ($paths as $path) {
|
||||
$path = rtrim($path, '/\\');
|
||||
|
||||
if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
21
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/LICENSE
vendored
Normal file
21
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/LICENSE
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
664
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_classmap.php
vendored
Normal file
664
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_classmap.php
vendored
Normal file
@ -0,0 +1,664 @@
|
||||
<?php
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
|
||||
'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
|
||||
'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
|
||||
'Composer\\Installers\\AsgardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
|
||||
'Composer\\Installers\\AttogramInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
|
||||
'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
|
||||
'Composer\\Installers\\BitrixInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
|
||||
'Composer\\Installers\\BonefishInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
|
||||
'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
|
||||
'Composer\\Installers\\ChefInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
|
||||
'Composer\\Installers\\ClanCatsFrameworkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
|
||||
'Composer\\Installers\\CockpitInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
|
||||
'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
|
||||
'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
|
||||
'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
|
||||
'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
|
||||
'Composer\\Installers\\DecibelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
|
||||
'Composer\\Installers\\DokuWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
|
||||
'Composer\\Installers\\DolibarrInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
|
||||
'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
|
||||
'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
|
||||
'Composer\\Installers\\EliasisInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
|
||||
'Composer\\Installers\\ExpressionEngineInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
|
||||
'Composer\\Installers\\EzPlatformInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
|
||||
'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
|
||||
'Composer\\Installers\\FuelphpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
|
||||
'Composer\\Installers\\GravInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/GravInstaller.php',
|
||||
'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
|
||||
'Composer\\Installers\\ImageCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
|
||||
'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php',
|
||||
'Composer\\Installers\\ItopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
|
||||
'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
|
||||
'Composer\\Installers\\KanboardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
|
||||
'Composer\\Installers\\KirbyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
|
||||
'Composer\\Installers\\KodiCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
|
||||
'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
|
||||
'Composer\\Installers\\LanManagementSystemInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
|
||||
'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
|
||||
'Composer\\Installers\\LavaLiteInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
|
||||
'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
|
||||
'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
|
||||
'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
|
||||
'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
|
||||
'Composer\\Installers\\MajimaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
|
||||
'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
|
||||
'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
|
||||
'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
|
||||
'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
|
||||
'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
|
||||
'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
|
||||
'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
|
||||
'Composer\\Installers\\OctoberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
|
||||
'Composer\\Installers\\OntoWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
|
||||
'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
|
||||
'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
|
||||
'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
|
||||
'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
|
||||
'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
|
||||
'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
|
||||
'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
|
||||
'Composer\\Installers\\PlentymarketsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
|
||||
'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
|
||||
'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
|
||||
'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
|
||||
'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
|
||||
'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
|
||||
'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
|
||||
'Composer\\Installers\\ReIndexInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
|
||||
'Composer\\Installers\\RedaxoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
|
||||
'Composer\\Installers\\RoundcubeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
|
||||
'Composer\\Installers\\SMFInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
|
||||
'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
|
||||
'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
|
||||
'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
|
||||
'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
|
||||
'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
|
||||
'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
|
||||
'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
|
||||
'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
|
||||
'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
|
||||
'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
|
||||
'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
|
||||
'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
|
||||
'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
|
||||
'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
|
||||
'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
|
||||
'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
|
||||
'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
|
||||
'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
|
||||
'WPSEO_Abstract_Capability_Manager' => $baseDir . '/admin/capabilities/class-abstract-capability-manager.php',
|
||||
'WPSEO_Abstract_Post_Filter' => $baseDir . '/admin/filters/class-abstract-post-filter.php',
|
||||
'WPSEO_Abstract_Role_Manager' => $baseDir . '/admin/roles/class-abstract-role-manager.php',
|
||||
'WPSEO_Add_Keyword_Modal' => $baseDir . '/admin/class-add-keyword-modal.php',
|
||||
'WPSEO_Addon_Manager' => $baseDir . '/inc/class-addon-manager.php',
|
||||
'WPSEO_Admin' => $baseDir . '/admin/class-admin.php',
|
||||
'WPSEO_Admin_Asset' => $baseDir . '/admin/class-asset.php',
|
||||
'WPSEO_Admin_Asset_Analysis_Worker_Location' => $baseDir . '/admin/class-admin-asset-analysis-worker-location.php',
|
||||
'WPSEO_Admin_Asset_Dev_Server_Location' => $baseDir . '/admin/class-admin-asset-dev-server-location.php',
|
||||
'WPSEO_Admin_Asset_Location' => $baseDir . '/admin/class-admin-asset-location.php',
|
||||
'WPSEO_Admin_Asset_Manager' => $baseDir . '/admin/class-admin-asset-manager.php',
|
||||
'WPSEO_Admin_Asset_SEO_Location' => $baseDir . '/admin/class-admin-asset-seo-location.php',
|
||||
'WPSEO_Admin_Asset_Yoast_Components_L10n' => $baseDir . '/admin/class-admin-asset-yoast-components-l10n.php',
|
||||
'WPSEO_Admin_Bar_Menu' => $baseDir . '/inc/class-wpseo-admin-bar-menu.php',
|
||||
'WPSEO_Admin_Editor_Specific_Replace_Vars' => $baseDir . '/admin/class-admin-editor-specific-replace-vars.php',
|
||||
'WPSEO_Admin_Gutenberg_Compatibility_Notification' => $baseDir . '/admin/class-admin-gutenberg-compatibility-notification.php',
|
||||
'WPSEO_Admin_Help_Panel' => $baseDir . '/admin/class-admin-help-panel.php',
|
||||
'WPSEO_Admin_Init' => $baseDir . '/admin/class-admin-init.php',
|
||||
'WPSEO_Admin_Media_Purge_Notification' => $baseDir . '/admin/class-admin-media-purge-notification.php',
|
||||
'WPSEO_Admin_Menu' => $baseDir . '/admin/menu/class-admin-menu.php',
|
||||
'WPSEO_Admin_Pages' => $baseDir . '/admin/class-config.php',
|
||||
'WPSEO_Admin_Recommended_Replace_Vars' => $baseDir . '/admin/class-admin-recommended-replace-vars.php',
|
||||
'WPSEO_Admin_User_Profile' => $baseDir . '/admin/class-admin-user-profile.php',
|
||||
'WPSEO_Admin_Utils' => $baseDir . '/admin/class-admin-utils.php',
|
||||
'WPSEO_Advanced_Settings' => $baseDir . '/deprecated/class-wpseo-advanced-settings.php',
|
||||
'WPSEO_Author_Sitemap_Provider' => $baseDir . '/inc/sitemaps/class-author-sitemap-provider.php',
|
||||
'WPSEO_Base_Menu' => $baseDir . '/admin/menu/class-base-menu.php',
|
||||
'WPSEO_Breadcrumbs' => $baseDir . '/frontend/class-breadcrumbs.php',
|
||||
'WPSEO_Bulk_Description_List_Table' => $baseDir . '/admin/class-bulk-description-editor-list-table.php',
|
||||
'WPSEO_Bulk_List_Table' => $baseDir . '/admin/class-bulk-editor-list-table.php',
|
||||
'WPSEO_Bulk_Title_Editor_List_Table' => $baseDir . '/admin/class-bulk-title-editor-list-table.php',
|
||||
'WPSEO_CLI_Redirect_Upsell_Command_Namespace' => $baseDir . '/cli/class-cli-redirect-upsell-command-namespace.php',
|
||||
'WPSEO_CLI_Yoast_Command_Namespace' => $baseDir . '/cli/class-cli-yoast-command-namespace.php',
|
||||
'WPSEO_Capability_Manager' => $baseDir . '/admin/capabilities/class-capability-manager.php',
|
||||
'WPSEO_Capability_Manager_Factory' => $baseDir . '/admin/capabilities/class-capability-manager-factory.php',
|
||||
'WPSEO_Capability_Manager_Integration' => $baseDir . '/admin/capabilities/class-capability-manager-integration.php',
|
||||
'WPSEO_Capability_Manager_VIP' => $baseDir . '/admin/capabilities/class-capability-manager-vip.php',
|
||||
'WPSEO_Capability_Manager_WP' => $baseDir . '/admin/capabilities/class-capability-manager-wp.php',
|
||||
'WPSEO_Capability_Utils' => $baseDir . '/admin/capabilities/class-capability-utils.php',
|
||||
'WPSEO_Collection' => $baseDir . '/admin/interface-collection.php',
|
||||
'WPSEO_Collector' => $baseDir . '/admin/class-collector.php',
|
||||
'WPSEO_Config_Component' => $baseDir . '/admin/config-ui/components/interface-component.php',
|
||||
'WPSEO_Config_Component_Connect_Google_Search_Console' => $baseDir . '/admin/config-ui/components/class-component-connect-google-search-console.php',
|
||||
'WPSEO_Config_Component_Mailchimp_Signup' => $baseDir . '/admin/config-ui/components/class-component-mailchimp-signup.php',
|
||||
'WPSEO_Config_Component_Suggestions' => $baseDir . '/admin/config-ui/components/class-component-suggestions.php',
|
||||
'WPSEO_Config_Factory_Post_Type' => $baseDir . '/admin/config-ui/factories/class-factory-post-type.php',
|
||||
'WPSEO_Config_Field' => $baseDir . '/admin/config-ui/fields/class-field.php',
|
||||
'WPSEO_Config_Field_Choice' => $baseDir . '/admin/config-ui/fields/class-field-choice.php',
|
||||
'WPSEO_Config_Field_Choice_Post_Type' => $baseDir . '/admin/config-ui/fields/class-field-choice-post-type.php',
|
||||
'WPSEO_Config_Field_Company_Logo' => $baseDir . '/admin/config-ui/fields/class-field-company-logo.php',
|
||||
'WPSEO_Config_Field_Company_Name' => $baseDir . '/admin/config-ui/fields/class-field-company-name.php',
|
||||
'WPSEO_Config_Field_Company_Or_Person' => $baseDir . '/admin/config-ui/fields/class-field-company-or-person.php',
|
||||
'WPSEO_Config_Field_Connect_Google_Search_Console' => $baseDir . '/admin/config-ui/fields/class-field-connect-google-search-console.php',
|
||||
'WPSEO_Config_Field_Environment' => $baseDir . '/admin/config-ui/fields/class-field-environment.php',
|
||||
'WPSEO_Config_Field_Google_Search_Console_Intro' => $baseDir . '/admin/config-ui/fields/class-field-google-search-console-intro.php',
|
||||
'WPSEO_Config_Field_Mailchimp_Signup' => $baseDir . '/admin/config-ui/fields/class-field-mailchimp-signup.php',
|
||||
'WPSEO_Config_Field_Multiple_Authors' => $baseDir . '/admin/config-ui/fields/class-field-multiple-authors.php',
|
||||
'WPSEO_Config_Field_Person' => $baseDir . '/admin/config-ui/fields/class-field-person.php',
|
||||
'WPSEO_Config_Field_Post_Type_Visibility' => $baseDir . '/admin/config-ui/fields/class-field-post-type-visibility.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Facebook' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-facebook.php',
|
||||
'WPSEO_Config_Field_Profile_URL_GooglePlus' => $baseDir . '/deprecated/admin/config-ui/fields/class-field-profile-url-googleplus.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Instagram' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-instagram.php',
|
||||
'WPSEO_Config_Field_Profile_URL_LinkedIn' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-linkedin.php',
|
||||
'WPSEO_Config_Field_Profile_URL_MySpace' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-myspace.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Pinterest' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-pinterest.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Twitter' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-twitter.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Wikipedia' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-wikipedia.php',
|
||||
'WPSEO_Config_Field_Profile_URL_YouTube' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-youtube.php',
|
||||
'WPSEO_Config_Field_Separator' => $baseDir . '/admin/config-ui/fields/class-field-separator.php',
|
||||
'WPSEO_Config_Field_Site_Name' => $baseDir . '/admin/config-ui/fields/class-field-site-name.php',
|
||||
'WPSEO_Config_Field_Site_Type' => $baseDir . '/admin/config-ui/fields/class-field-site-type.php',
|
||||
'WPSEO_Config_Field_Success_Message' => $baseDir . '/admin/config-ui/fields/class-field-success-message.php',
|
||||
'WPSEO_Config_Field_Suggestions' => $baseDir . '/admin/config-ui/fields/class-field-suggestions.php',
|
||||
'WPSEO_Config_Field_Title_Intro' => $baseDir . '/admin/config-ui/fields/class-field-title-intro.php',
|
||||
'WPSEO_Config_Field_Upsell_Configuration_Service' => $baseDir . '/admin/config-ui/fields/class-field-upsell-configuration-service.php',
|
||||
'WPSEO_Config_Field_Upsell_Site_Review' => $baseDir . '/admin/config-ui/fields/class-field-upsell-site-review.php',
|
||||
'WPSEO_Configuration_Components' => $baseDir . '/admin/config-ui/class-configuration-components.php',
|
||||
'WPSEO_Configuration_Endpoint' => $baseDir . '/admin/config-ui/class-configuration-endpoint.php',
|
||||
'WPSEO_Configuration_Notifier' => $baseDir . '/admin/notifiers/class-configuration-notifier.php',
|
||||
'WPSEO_Configuration_Options_Adapter' => $baseDir . '/admin/config-ui/class-configuration-options-adapter.php',
|
||||
'WPSEO_Configuration_Page' => $baseDir . '/admin/config-ui/class-configuration-page.php',
|
||||
'WPSEO_Configuration_Service' => $baseDir . '/admin/config-ui/class-configuration-service.php',
|
||||
'WPSEO_Configuration_Storage' => $baseDir . '/admin/config-ui/class-configuration-storage.php',
|
||||
'WPSEO_Configuration_Structure' => $baseDir . '/admin/config-ui/class-configuration-structure.php',
|
||||
'WPSEO_Configuration_Translations' => $baseDir . '/admin/config-ui/class-configuration-translations.php',
|
||||
'WPSEO_Content_Images' => $baseDir . '/inc/class-wpseo-content-images.php',
|
||||
'WPSEO_Cornerstone' => $baseDir . '/deprecated/class-cornerstone.php',
|
||||
'WPSEO_Cornerstone_Filter' => $baseDir . '/admin/filters/class-cornerstone-filter.php',
|
||||
'WPSEO_Courses_Overview' => $baseDir . '/admin/courses-overview.php',
|
||||
'WPSEO_Custom_Fields' => $baseDir . '/inc/class-wpseo-custom-fields.php',
|
||||
'WPSEO_Custom_Taxonomies' => $baseDir . '/inc/class-wpseo-custom-taxonomies.php',
|
||||
'WPSEO_Customizer' => $baseDir . '/admin/class-customizer.php',
|
||||
'WPSEO_Database_Proxy' => $baseDir . '/admin/class-database-proxy.php',
|
||||
'WPSEO_Dismissible_Notification' => $baseDir . '/admin/notifiers/dismissible-notification.php',
|
||||
'WPSEO_Endpoint' => $baseDir . '/admin/endpoints/class-endpoint.php',
|
||||
'WPSEO_Endpoint_Factory' => $baseDir . '/inc/class-wpseo-endpoint-factory.php',
|
||||
'WPSEO_Endpoint_File_Size' => $baseDir . '/admin/endpoints/class-endpoint-file-size.php',
|
||||
'WPSEO_Endpoint_Indexable' => $baseDir . '/admin/endpoints/class-endpoint-indexable.php',
|
||||
'WPSEO_Endpoint_MyYoast_Connect' => $baseDir . '/inc/endpoints/class-myyoast-connect.php',
|
||||
'WPSEO_Endpoint_Ryte' => $baseDir . '/admin/endpoints/class-endpoint-ryte.php',
|
||||
'WPSEO_Endpoint_Statistics' => $baseDir . '/admin/endpoints/class-endpoint-statistics.php',
|
||||
'WPSEO_Endpoint_Storable' => $baseDir . '/admin/endpoints/interface-endpoint-storable.php',
|
||||
'WPSEO_Endpoint_Validator' => $baseDir . '/inc/indexables/validators/class-endpoint-validator.php',
|
||||
'WPSEO_Export' => $baseDir . '/admin/class-export.php',
|
||||
'WPSEO_Expose_Shortlinks' => $baseDir . '/admin/class-expose-shortlinks.php',
|
||||
'WPSEO_Extension' => $baseDir . '/admin/class-extension.php',
|
||||
'WPSEO_Extension_Manager' => $baseDir . '/admin/class-extension-manager.php',
|
||||
'WPSEO_Extensions' => $baseDir . '/admin/class-extensions.php',
|
||||
'WPSEO_FAQ_Block' => $baseDir . '/inc/structured-data-blocks/class-faq-block.php',
|
||||
'WPSEO_Features' => $baseDir . '/inc/class-wpseo-features.php',
|
||||
'WPSEO_File_Size_Exception' => $baseDir . '/admin/exceptions/class-file-size-exception.php',
|
||||
'WPSEO_File_Size_Service' => $baseDir . '/admin/services/class-file-size.php',
|
||||
'WPSEO_Frontend' => $baseDir . '/frontend/class-frontend.php',
|
||||
'WPSEO_Frontend_Page_Type' => $baseDir . '/frontend/class-frontend-page-type.php',
|
||||
'WPSEO_Frontend_Primary_Category' => $baseDir . '/frontend/class-primary-category.php',
|
||||
'WPSEO_GSC' => $baseDir . '/admin/google_search_console/class-gsc.php',
|
||||
'WPSEO_GSC_Ajax' => $baseDir . '/admin/google_search_console/class-gsc-ajax.php',
|
||||
'WPSEO_GSC_Bulk_Action' => $baseDir . '/admin/google_search_console/class-gsc-bulk-action.php',
|
||||
'WPSEO_GSC_Category_Filters' => $baseDir . '/admin/google_search_console/class-gsc-category-filters.php',
|
||||
'WPSEO_GSC_Config' => $baseDir . '/admin/google_search_console/class-gsc-config.php',
|
||||
'WPSEO_GSC_Count' => $baseDir . '/admin/google_search_console/class-gsc-count.php',
|
||||
'WPSEO_GSC_Issue' => $baseDir . '/admin/google_search_console/class-gsc-issue.php',
|
||||
'WPSEO_GSC_Issues' => $baseDir . '/admin/google_search_console/class-gsc-issues.php',
|
||||
'WPSEO_GSC_Mapper' => $baseDir . '/admin/google_search_console/class-gsc-mapper.php',
|
||||
'WPSEO_GSC_Marker' => $baseDir . '/admin/google_search_console/class-gsc-marker.php',
|
||||
'WPSEO_GSC_Modal' => $baseDir . '/admin/google_search_console/class-gsc-modal.php',
|
||||
'WPSEO_GSC_Platform_Tabs' => $baseDir . '/admin/google_search_console/class-gsc-platform-tabs.php',
|
||||
'WPSEO_GSC_Service' => $baseDir . '/admin/google_search_console/class-gsc-service.php',
|
||||
'WPSEO_GSC_Settings' => $baseDir . '/admin/google_search_console/class-gsc-settings.php',
|
||||
'WPSEO_GSC_Table' => $baseDir . '/admin/google_search_console/class-gsc-table.php',
|
||||
'WPSEO_Graph_Piece' => $baseDir . '/frontend/schema/interface-wpseo-graph-piece.php',
|
||||
'WPSEO_Gutenberg_Compatibility' => $baseDir . '/admin/class-gutenberg-compatibility.php',
|
||||
'WPSEO_Handle_404' => $baseDir . '/frontend/class-handle-404.php',
|
||||
'WPSEO_Help_Center' => $baseDir . '/admin/class-help-center.php',
|
||||
'WPSEO_Help_Center_Item' => $baseDir . '/admin/class-help-center-item.php',
|
||||
'WPSEO_Help_Center_Template_Variables_Tab' => $baseDir . '/admin/help_center/class-template-variables-tab.php',
|
||||
'WPSEO_How_To_Block' => $baseDir . '/inc/structured-data-blocks/class-how-to-block.php',
|
||||
'WPSEO_Image_Utils' => $baseDir . '/inc/class-wpseo-image-utils.php',
|
||||
'WPSEO_Import_AIOSEO' => $baseDir . '/admin/import/plugins/class-import-aioseo.php',
|
||||
'WPSEO_Import_Greg_SEO' => $baseDir . '/admin/import/plugins/class-import-greg-high-performance-seo.php',
|
||||
'WPSEO_Import_HeadSpace' => $baseDir . '/admin/import/plugins/class-import-headspace.php',
|
||||
'WPSEO_Import_Jetpack_SEO' => $baseDir . '/admin/import/plugins/class-import-jetpack.php',
|
||||
'WPSEO_Import_Platinum_SEO' => $baseDir . '/admin/import/plugins/class-import-platinum-seo-pack.php',
|
||||
'WPSEO_Import_Plugin' => $baseDir . '/admin/import/class-import-plugin.php',
|
||||
'WPSEO_Import_Plugins_Detector' => $baseDir . '/admin/import/class-import-detector.php',
|
||||
'WPSEO_Import_Premium_SEO_Pack' => $baseDir . '/admin/import/plugins/class-import-premium-seo-pack.php',
|
||||
'WPSEO_Import_SEOPressor' => $baseDir . '/admin/import/plugins/class-import-seopressor.php',
|
||||
'WPSEO_Import_SEO_Framework' => $baseDir . '/admin/import/plugins/class-import-seo-framework.php',
|
||||
'WPSEO_Import_Settings' => $baseDir . '/admin/import/class-import-settings.php',
|
||||
'WPSEO_Import_Smartcrawl_SEO' => $baseDir . '/admin/import/plugins/class-import-smartcrawl.php',
|
||||
'WPSEO_Import_Squirrly' => $baseDir . '/admin/import/plugins/class-import-squirrly.php',
|
||||
'WPSEO_Import_Status' => $baseDir . '/admin/import/class-import-status.php',
|
||||
'WPSEO_Import_Ultimate_SEO' => $baseDir . '/admin/import/plugins/class-import-ultimate-seo.php',
|
||||
'WPSEO_Import_WPSEO' => $baseDir . '/admin/import/plugins/class-import-wpseo.php',
|
||||
'WPSEO_Import_WP_Meta_SEO' => $baseDir . '/admin/import/plugins/class-import-wp-meta-seo.php',
|
||||
'WPSEO_Import_WooThemes_SEO' => $baseDir . '/admin/import/plugins/class-import-woothemes-seo.php',
|
||||
'WPSEO_Indexable' => $baseDir . '/inc/indexables/class-indexable.php',
|
||||
'WPSEO_Indexable_Provider' => $baseDir . '/admin/services/class-indexable-provider.php',
|
||||
'WPSEO_Indexable_Service' => $baseDir . '/admin/services/class-indexable.php',
|
||||
'WPSEO_Indexable_Service_Post_Provider' => $baseDir . '/admin/services/class-indexable-post-provider.php',
|
||||
'WPSEO_Indexable_Service_Provider' => $baseDir . '/admin/services/interface-indexable-provider.php',
|
||||
'WPSEO_Indexable_Service_Term_Provider' => $baseDir . '/admin/services/class-indexable-term-provider.php',
|
||||
'WPSEO_Installable' => $baseDir . '/admin/interface-installable.php',
|
||||
'WPSEO_Installation' => $baseDir . '/inc/class-wpseo-installation.php',
|
||||
'WPSEO_Invalid_Argument_Exception' => $baseDir . '/inc/exceptions/class-invalid-argument-exception.php',
|
||||
'WPSEO_Invalid_Indexable_Exception' => $baseDir . '/inc/exceptions/class-invalid-indexable-exception.php',
|
||||
'WPSEO_Keyword_Synonyms_Modal' => $baseDir . '/admin/class-keyword-synonyms-modal.php',
|
||||
'WPSEO_Keyword_Validator' => $baseDir . '/inc/indexables/validators/class-keyword-validator.php',
|
||||
'WPSEO_Language_Utils' => $baseDir . '/inc/language-utils.php',
|
||||
'WPSEO_License_Page_Manager' => $baseDir . '/admin/class-license-page-manager.php',
|
||||
'WPSEO_Link' => $baseDir . '/admin/links/class-link.php',
|
||||
'WPSEO_Link_Cleanup_Transient' => $baseDir . '/admin/links/class-link-cleanup-transient.php',
|
||||
'WPSEO_Link_Column_Count' => $baseDir . '/admin/links/class-link-column-count.php',
|
||||
'WPSEO_Link_Columns' => $baseDir . '/admin/links/class-link-columns.php',
|
||||
'WPSEO_Link_Compatibility_Notifier' => $baseDir . '/admin/links/class-link-compatibility-notifier.php',
|
||||
'WPSEO_Link_Content_Processor' => $baseDir . '/admin/links/class-link-content-processor.php',
|
||||
'WPSEO_Link_Extractor' => $baseDir . '/admin/links/class-link-extractor.php',
|
||||
'WPSEO_Link_Factory' => $baseDir . '/admin/links/class-link-factory.php',
|
||||
'WPSEO_Link_Filter' => $baseDir . '/admin/links/class-link-filter.php',
|
||||
'WPSEO_Link_Installer' => $baseDir . '/admin/links/class-link-installer.php',
|
||||
'WPSEO_Link_Internal_Lookup' => $baseDir . '/admin/links/class-link-internal-lookup.php',
|
||||
'WPSEO_Link_Notifier' => $baseDir . '/admin/links/class-link-notifier.php',
|
||||
'WPSEO_Link_Query' => $baseDir . '/admin/links/class-link-query.php',
|
||||
'WPSEO_Link_Reindex_Dashboard' => $baseDir . '/admin/links/class-link-reindex-dashboard.php',
|
||||
'WPSEO_Link_Reindex_Post_Endpoint' => $baseDir . '/admin/links/class-link-reindex-post-endpoint.php',
|
||||
'WPSEO_Link_Reindex_Post_Service' => $baseDir . '/admin/links/class-link-reindex-post-service.php',
|
||||
'WPSEO_Link_Storage' => $baseDir . '/admin/links/class-link-storage.php',
|
||||
'WPSEO_Link_Table_Accessible' => $baseDir . '/admin/links/class-link-table-accessible.php',
|
||||
'WPSEO_Link_Table_Accessible_Notifier' => $baseDir . '/admin/links/class-link-table-accessible-notifier.php',
|
||||
'WPSEO_Link_Type_Classifier' => $baseDir . '/admin/links/class-link-type-classifier.php',
|
||||
'WPSEO_Link_Utils' => $baseDir . '/admin/links/class-link-utils.php',
|
||||
'WPSEO_Link_Validator' => $baseDir . '/inc/indexables/validators/class-link-validator.php',
|
||||
'WPSEO_Link_Watcher' => $baseDir . '/admin/links/class-link-watcher.php',
|
||||
'WPSEO_Link_Watcher_Loader' => $baseDir . '/admin/links/class-link-watcher-loader.php',
|
||||
'WPSEO_Listener' => $baseDir . '/admin/listeners/class-listener.php',
|
||||
'WPSEO_Menu' => $baseDir . '/admin/menu/class-menu.php',
|
||||
'WPSEO_Meta' => $baseDir . '/inc/class-wpseo-meta.php',
|
||||
'WPSEO_Meta_Columns' => $baseDir . '/admin/class-meta-columns.php',
|
||||
'WPSEO_Meta_Storage' => $baseDir . '/admin/class-meta-storage.php',
|
||||
'WPSEO_Meta_Table_Accessible' => $baseDir . '/admin/class-meta-table-accessible.php',
|
||||
'WPSEO_Meta_Values_Validator' => $baseDir . '/inc/indexables/validators/class-meta-values-validator.php',
|
||||
'WPSEO_Metabox' => $baseDir . '/admin/metabox/class-metabox.php',
|
||||
'WPSEO_Metabox_Addon_Tab_Section' => $baseDir . '/admin/metabox/class-metabox-addon-section.php',
|
||||
'WPSEO_Metabox_Analysis' => $baseDir . '/admin/metabox/interface-metabox-analysis.php',
|
||||
'WPSEO_Metabox_Analysis_Readability' => $baseDir . '/admin/metabox/class-metabox-analysis-readability.php',
|
||||
'WPSEO_Metabox_Analysis_SEO' => $baseDir . '/admin/metabox/class-metabox-analysis-seo.php',
|
||||
'WPSEO_Metabox_Editor' => $baseDir . '/admin/metabox/class-metabox-editor.php',
|
||||
'WPSEO_Metabox_Form_Tab' => $baseDir . '/admin/metabox/class-metabox-form-tab.php',
|
||||
'WPSEO_Metabox_Formatter' => $baseDir . '/admin/formatter/class-metabox-formatter.php',
|
||||
'WPSEO_Metabox_Formatter_Interface' => $baseDir . '/admin/formatter/interface-metabox-formatter.php',
|
||||
'WPSEO_Metabox_Null_Tab' => $baseDir . '/admin/metabox/class-metabox-null-tab.php',
|
||||
'WPSEO_Metabox_Section' => $baseDir . '/admin/metabox/interface-metabox-section.php',
|
||||
'WPSEO_Metabox_Section_React' => $baseDir . '/admin/metabox/class-metabox-section-react.php',
|
||||
'WPSEO_Metabox_Tab' => $baseDir . '/admin/metabox/interface-metabox-tab.php',
|
||||
'WPSEO_Metabox_Tab_Section' => $baseDir . '/admin/metabox/class-metabox-tab-section.php',
|
||||
'WPSEO_Multiple_Keywords_Modal' => $baseDir . '/admin/class-multiple-keywords-modal.php',
|
||||
'WPSEO_MyYoast_Api_Request' => $baseDir . '/inc/class-my-yoast-api-request.php',
|
||||
'WPSEO_MyYoast_Authentication_Exception' => $baseDir . '/inc/exceptions/class-myyoast-authentication-exception.php',
|
||||
'WPSEO_MyYoast_Bad_Request_Exception' => $baseDir . '/inc/exceptions/class-myyoast-bad-request-exception.php',
|
||||
'WPSEO_MyYoast_Invalid_JSON_Exception' => $baseDir . '/inc/exceptions/class-myyoast-invalid-json-exception.php',
|
||||
'WPSEO_MyYoast_Proxy' => $baseDir . '/admin/class-my-yoast-proxy.php',
|
||||
'WPSEO_MyYoast_Route' => $baseDir . '/admin/class-my-yoast-route.php',
|
||||
'WPSEO_Network_Admin_Menu' => $baseDir . '/admin/menu/class-network-admin-menu.php',
|
||||
'WPSEO_Notification_Handler' => $baseDir . '/admin/notifiers/interface-notification-handler.php',
|
||||
'WPSEO_Object_Type' => $baseDir . '/inc/indexables/class-object-type.php',
|
||||
'WPSEO_Object_Type_Validator' => $baseDir . '/inc/indexables/validators/class-object-type-validator.php',
|
||||
'WPSEO_OnPage' => $baseDir . '/admin/onpage/class-onpage.php',
|
||||
'WPSEO_OnPage_Option' => $baseDir . '/admin/onpage/class-onpage-option.php',
|
||||
'WPSEO_OnPage_Request' => $baseDir . '/admin/onpage/class-onpage-request.php',
|
||||
'WPSEO_OpenGraph' => $baseDir . '/frontend/class-opengraph.php',
|
||||
'WPSEO_OpenGraph_Image' => $baseDir . '/frontend/class-opengraph-image.php',
|
||||
'WPSEO_OpenGraph_OEmbed' => $baseDir . '/frontend/class-opengraph-oembed.php',
|
||||
'WPSEO_OpenGraph_Validator' => $baseDir . '/inc/indexables/validators/class-opengraph-validator.php',
|
||||
'WPSEO_Option' => $baseDir . '/inc/options/class-wpseo-option.php',
|
||||
'WPSEO_Option_InternalLinks' => $baseDir . '/deprecated/class-wpseo-option-internallinks.php',
|
||||
'WPSEO_Option_MS' => $baseDir . '/inc/options/class-wpseo-option-ms.php',
|
||||
'WPSEO_Option_Permalinks' => $baseDir . '/deprecated/class-wpseo-option-permalinks.php',
|
||||
'WPSEO_Option_Social' => $baseDir . '/inc/options/class-wpseo-option-social.php',
|
||||
'WPSEO_Option_Tab' => $baseDir . '/admin/class-option-tab.php',
|
||||
'WPSEO_Option_Tabs' => $baseDir . '/admin/class-option-tabs.php',
|
||||
'WPSEO_Option_Tabs_Formatter' => $baseDir . '/admin/class-option-tabs-formatter.php',
|
||||
'WPSEO_Option_Titles' => $baseDir . '/inc/options/class-wpseo-option-titles.php',
|
||||
'WPSEO_Option_Wpseo' => $baseDir . '/inc/options/class-wpseo-option-wpseo.php',
|
||||
'WPSEO_Options' => $baseDir . '/inc/options/class-wpseo-options.php',
|
||||
'WPSEO_Options_Backfill' => $baseDir . '/inc/options/class-wpseo-options-backfill.php',
|
||||
'WPSEO_Paper_Presenter' => $baseDir . '/admin/class-paper-presenter.php',
|
||||
'WPSEO_Plugin_Availability' => $baseDir . '/admin/class-plugin-availability.php',
|
||||
'WPSEO_Plugin_Compatibility' => $baseDir . '/admin/class-plugin-compatibility.php',
|
||||
'WPSEO_Plugin_Conflict' => $baseDir . '/admin/class-plugin-conflict.php',
|
||||
'WPSEO_Plugin_Importer' => $baseDir . '/admin/import/plugins/class-abstract-plugin-importer.php',
|
||||
'WPSEO_Plugin_Importers' => $baseDir . '/admin/import/plugins/class-importers.php',
|
||||
'WPSEO_Post_Indexable' => $baseDir . '/inc/indexables/class-post-indexable.php',
|
||||
'WPSEO_Post_Metabox_Formatter' => $baseDir . '/admin/formatter/class-post-metabox-formatter.php',
|
||||
'WPSEO_Post_Object_Type' => $baseDir . '/inc/indexables/class-post-object-type.php',
|
||||
'WPSEO_Post_Type' => $baseDir . '/inc/class-post-type.php',
|
||||
'WPSEO_Post_Type_Archive_Notification_Handler' => $baseDir . '/admin/notifiers/class-post-type-archive-notification-handler.php',
|
||||
'WPSEO_Post_Type_Sitemap_Provider' => $baseDir . '/inc/sitemaps/class-post-type-sitemap-provider.php',
|
||||
'WPSEO_Premium_Popup' => $baseDir . '/admin/class-premium-popup.php',
|
||||
'WPSEO_Premium_Upsell_Admin_Block' => $baseDir . '/admin/class-premium-upsell-admin-block.php',
|
||||
'WPSEO_Primary_Term' => $baseDir . '/inc/class-wpseo-primary-term.php',
|
||||
'WPSEO_Primary_Term_Admin' => $baseDir . '/admin/class-primary-term-admin.php',
|
||||
'WPSEO_Product_Upsell_Notice' => $baseDir . '/admin/class-product-upsell-notice.php',
|
||||
'WPSEO_REST_Request_Exception' => $baseDir . '/inc/exceptions/class-rest-request-exception.php',
|
||||
'WPSEO_Rank' => $baseDir . '/inc/class-wpseo-rank.php',
|
||||
'WPSEO_Recalculate' => $baseDir . '/admin/recalculate/class-recalculate.php',
|
||||
'WPSEO_Recalculate_Posts' => $baseDir . '/admin/recalculate/class-recalculate-posts.php',
|
||||
'WPSEO_Recalculate_Scores' => $baseDir . '/admin/class-recalculate-scores.php',
|
||||
'WPSEO_Recalculate_Scores_Ajax' => $baseDir . '/admin/ajax/class-recalculate-scores-ajax.php',
|
||||
'WPSEO_Recalculate_Terms' => $baseDir . '/admin/recalculate/class-recalculate-terms.php',
|
||||
'WPSEO_Recalibration_Beta' => $baseDir . '/deprecated/class-recalibration-beta.php',
|
||||
'WPSEO_Recalibration_Beta_Notification' => $baseDir . '/deprecated/class-recalibration-beta-notification.php',
|
||||
'WPSEO_Register_Capabilities' => $baseDir . '/admin/capabilities/class-register-capabilities.php',
|
||||
'WPSEO_Register_Roles' => $baseDir . '/admin/roles/class-register-roles.php',
|
||||
'WPSEO_Remote_Request' => $baseDir . '/admin/class-remote-request.php',
|
||||
'WPSEO_Remove_Reply_To_Com' => $baseDir . '/frontend/class-remove-reply-to-com.php',
|
||||
'WPSEO_Replace_Vars' => $baseDir . '/inc/class-wpseo-replace-vars.php',
|
||||
'WPSEO_Replacement_Variable' => $baseDir . '/inc/class-wpseo-replacement-variable.php',
|
||||
'WPSEO_Replacevar_Editor' => $baseDir . '/admin/menu/class-replacevar-editor.php',
|
||||
'WPSEO_Replacevar_Field' => $baseDir . '/admin/menu/class-replacevar-field.php',
|
||||
'WPSEO_Rewrite' => $baseDir . '/inc/class-rewrite.php',
|
||||
'WPSEO_Robots_Validator' => $baseDir . '/inc/indexables/validators/class-robots-validator.php',
|
||||
'WPSEO_Role_Manager' => $baseDir . '/admin/roles/class-role-manager.php',
|
||||
'WPSEO_Role_Manager_Factory' => $baseDir . '/admin/roles/class-role-manager-factory.php',
|
||||
'WPSEO_Role_Manager_VIP' => $baseDir . '/admin/roles/class-role-manager-vip.php',
|
||||
'WPSEO_Role_Manager_WP' => $baseDir . '/admin/roles/class-role-manager-wp.php',
|
||||
'WPSEO_Ryte_Service' => $baseDir . '/admin/onpage/class-ryte-service.php',
|
||||
'WPSEO_Schema' => $baseDir . '/frontend/schema/class-schema.php',
|
||||
'WPSEO_Schema_Article' => $baseDir . '/frontend/schema/class-schema-article.php',
|
||||
'WPSEO_Schema_Author' => $baseDir . '/frontend/schema/class-schema-author.php',
|
||||
'WPSEO_Schema_Breadcrumb' => $baseDir . '/frontend/schema/class-schema-breadcrumb.php',
|
||||
'WPSEO_Schema_Context' => $baseDir . '/frontend/schema/class-schema-context.php',
|
||||
'WPSEO_Schema_IDs' => $baseDir . '/frontend/schema/class-schema-ids.php',
|
||||
'WPSEO_Schema_Image' => $baseDir . '/frontend/schema/class-schema-image.php',
|
||||
'WPSEO_Schema_Organization' => $baseDir . '/frontend/schema/class-schema-organization.php',
|
||||
'WPSEO_Schema_Person' => $baseDir . '/frontend/schema/class-schema-person.php',
|
||||
'WPSEO_Schema_Person_Upgrade_Notification' => $baseDir . '/admin/class-schema-person-upgrade-notification.php',
|
||||
'WPSEO_Schema_WebPage' => $baseDir . '/frontend/schema/class-schema-webpage.php',
|
||||
'WPSEO_Schema_Website' => $baseDir . '/frontend/schema/class-schema-website.php',
|
||||
'WPSEO_Shortcode_Filter' => $baseDir . '/admin/ajax/class-shortcode-filter.php',
|
||||
'WPSEO_Shortlinker' => $baseDir . '/inc/class-wpseo-shortlinker.php',
|
||||
'WPSEO_Sitemap_Cache_Data' => $baseDir . '/inc/sitemaps/class-sitemap-cache-data.php',
|
||||
'WPSEO_Sitemap_Cache_Data_Interface' => $baseDir . '/inc/sitemaps/interface-sitemap-cache-data.php',
|
||||
'WPSEO_Sitemap_Image_Parser' => $baseDir . '/inc/sitemaps/class-sitemap-image-parser.php',
|
||||
'WPSEO_Sitemap_Provider' => $baseDir . '/inc/sitemaps/interface-sitemap-provider.php',
|
||||
'WPSEO_Sitemap_Timezone' => $baseDir . '/inc/sitemaps/class-sitemap-timezone.php',
|
||||
'WPSEO_Sitemaps' => $baseDir . '/inc/sitemaps/class-sitemaps.php',
|
||||
'WPSEO_Sitemaps_Admin' => $baseDir . '/inc/sitemaps/class-sitemaps-admin.php',
|
||||
'WPSEO_Sitemaps_Cache' => $baseDir . '/inc/sitemaps/class-sitemaps-cache.php',
|
||||
'WPSEO_Sitemaps_Cache_Validator' => $baseDir . '/inc/sitemaps/class-sitemaps-cache-validator.php',
|
||||
'WPSEO_Sitemaps_Renderer' => $baseDir . '/inc/sitemaps/class-sitemaps-renderer.php',
|
||||
'WPSEO_Sitemaps_Router' => $baseDir . '/inc/sitemaps/class-sitemaps-router.php',
|
||||
'WPSEO_Slug_Change_Watcher' => $baseDir . '/admin/watchers/class-slug-change-watcher.php',
|
||||
'WPSEO_Social_Admin' => $baseDir . '/admin/class-social-admin.php',
|
||||
'WPSEO_Statistic_Integration' => $baseDir . '/admin/statistics/class-statistics-integration.php',
|
||||
'WPSEO_Statistics' => $baseDir . '/inc/class-wpseo-statistics.php',
|
||||
'WPSEO_Statistics_Service' => $baseDir . '/admin/statistics/class-statistics-service.php',
|
||||
'WPSEO_Structured_Data_Blocks' => $baseDir . '/inc/class-structured-data-blocks.php',
|
||||
'WPSEO_Submenu_Capability_Normalize' => $baseDir . '/admin/menu/class-submenu-capability-normalize.php',
|
||||
'WPSEO_Submenu_Hider' => $baseDir . '/deprecated/class-submenu-hider.php',
|
||||
'WPSEO_Suggested_Plugins' => $baseDir . '/admin/class-suggested-plugins.php',
|
||||
'WPSEO_Taxonomy' => $baseDir . '/admin/taxonomy/class-taxonomy.php',
|
||||
'WPSEO_Taxonomy_Columns' => $baseDir . '/admin/taxonomy/class-taxonomy-columns.php',
|
||||
'WPSEO_Taxonomy_Content_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-content-fields.php',
|
||||
'WPSEO_Taxonomy_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-fields.php',
|
||||
'WPSEO_Taxonomy_Fields_Presenter' => $baseDir . '/admin/taxonomy/class-taxonomy-fields-presenter.php',
|
||||
'WPSEO_Taxonomy_Meta' => $baseDir . '/inc/options/class-wpseo-taxonomy-meta.php',
|
||||
'WPSEO_Taxonomy_Metabox' => $baseDir . '/admin/taxonomy/class-taxonomy-metabox.php',
|
||||
'WPSEO_Taxonomy_Settings_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-settings-fields.php',
|
||||
'WPSEO_Taxonomy_Sitemap_Provider' => $baseDir . '/inc/sitemaps/class-taxonomy-sitemap-provider.php',
|
||||
'WPSEO_Taxonomy_Social_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-social-fields.php',
|
||||
'WPSEO_Term_Indexable' => $baseDir . '/inc/indexables/class-term-indexable.php',
|
||||
'WPSEO_Term_Metabox_Formatter' => $baseDir . '/admin/formatter/class-term-metabox-formatter.php',
|
||||
'WPSEO_Term_Object_Type' => $baseDir . '/inc/indexables/class-term-object-type.php',
|
||||
'WPSEO_Tracking' => $baseDir . '/admin/tracking/class-tracking.php',
|
||||
'WPSEO_Tracking_Default_Data' => $baseDir . '/admin/tracking/class-tracking-default-data.php',
|
||||
'WPSEO_Tracking_Plugin_Data' => $baseDir . '/admin/tracking/class-tracking-plugin-data.php',
|
||||
'WPSEO_Tracking_Server_Data' => $baseDir . '/admin/tracking/class-tracking-server-data.php',
|
||||
'WPSEO_Tracking_Theme_Data' => $baseDir . '/admin/tracking/class-tracking-theme-data.php',
|
||||
'WPSEO_Twitter' => $baseDir . '/frontend/class-twitter.php',
|
||||
'WPSEO_Twitter_Validator' => $baseDir . '/inc/indexables/validators/class-twitter-validator.php',
|
||||
'WPSEO_Upgrade' => $baseDir . '/inc/class-upgrade.php',
|
||||
'WPSEO_Upgrade_History' => $baseDir . '/inc/class-upgrade-history.php',
|
||||
'WPSEO_Utils' => $baseDir . '/inc/class-wpseo-utils.php',
|
||||
'WPSEO_Validator' => $baseDir . '/inc/class-wpseo-validator.php',
|
||||
'WPSEO_WooCommerce_Shop_Page' => $baseDir . '/frontend/class-woocommerce-shop-page.php',
|
||||
'WPSEO_WordPress_AJAX_Integration' => $baseDir . '/inc/interface-wpseo-wordpress-ajax-integration.php',
|
||||
'WPSEO_WordPress_Integration' => $baseDir . '/inc/interface-wpseo-wordpress-integration.php',
|
||||
'WPSEO_Yoast_Columns' => $baseDir . '/admin/class-yoast-columns.php',
|
||||
'YoastSEO_Vendor\\BaseAdapterOverrideSchemaTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/BaseAdapterOverrideSchemaTest.php',
|
||||
'YoastSEO_Vendor\\BaseMigrationTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/BaseMigrationTest.php',
|
||||
'YoastSEO_Vendor\\CreatePrefixedTable' => $baseDir . '/vendor_prefixed/ruckusing/tests/dummy/db/migrations/multi_schema_test_dir/20151122000000_CreatePrefixedTable.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Client.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SessionCookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SetCookie' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\BadResponseException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ClientException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ConnectException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\SeekException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\HandlerStack' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactory' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactoryInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlMultiHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\EasyHandle' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\MockHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\AggregateException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\CancellationException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Coroutine' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\EachPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\FulfilledPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Promise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Promise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromiseInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromisorInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectedPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectionException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueue' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueueInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\AppendStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\BufferStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\CachingStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\DroppingStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\FnStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\InflateStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LazyOpenStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LimitStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MessageTrait' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MultipartStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\NoSeekStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\PumpStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Request' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Request.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Response' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Response.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Rfc7230' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\ServerRequest' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Stream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Stream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamWrapper' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UploadedFile' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Uri' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Uri.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriNormalizer' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriResolver' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\RedirectMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\UriTemplate' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php',
|
||||
'YoastSEO_Vendor\\IdiormMethodMissingException' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\IdiormResultSet' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\IdiormString' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\IdiormStringException' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AbstractGrant' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/AbstractGrant.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AuthorizationCode' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/AuthorizationCode.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\ClientCredentials' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/ClientCredentials.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Exception\\InvalidGrantException' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/Exception/InvalidGrantException.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\GrantFactory' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/GrantFactory.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Password' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/Password.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\RefreshToken' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/RefreshToken.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\HttpBasicAuthOptionProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/HttpBasicAuthOptionProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\OptionProviderInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/OptionProviderInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\PostAuthOptionProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/PostAuthOptionProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\AbstractProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\Exception\\IdentityProviderException' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/Exception/IdentityProviderException.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericResourceOwner' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericResourceOwner.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\ResourceOwnerInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/ResourceOwnerInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessToken' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Token/AccessToken.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessTokenInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Token/AccessTokenInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\ResourceOwnerAccessTokenInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Token/ResourceOwnerAccessTokenInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ArrayAccessorTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/ArrayAccessorTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\BearerAuthorizationTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/BearerAuthorizationTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\GuardedPropertyTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/GuardedPropertyTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\MacAuthorizationTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/MacAuthorizationTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ProviderRedirectTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/ProviderRedirectTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\QueryBuilderTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/QueryBuilderTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequestFactory' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/RequestFactory.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequiredParameterTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/RequiredParameterTrait.php',
|
||||
'YoastSEO_Vendor\\MigratorUtilTestMultiDirectory' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/MigratorUtilTestMultiDirectory.php',
|
||||
'YoastSEO_Vendor\\MigratorUtilTestSingleDirectory' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/MigratorUtilTestSingleDirectory.php',
|
||||
'YoastSEO_Vendor\\MySQLAdapterTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/MySQLAdapterTest.php',
|
||||
'YoastSEO_Vendor\\MySQLTableDefinitionTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/MySQLTableDefinitionTest.php',
|
||||
'YoastSEO_Vendor\\NamingUtilTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/NamingUtilTest.php',
|
||||
'YoastSEO_Vendor\\ORM' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\PostgresAdapterTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/PostgresAdapterTest.php',
|
||||
'YoastSEO_Vendor\\PostgresTableDefinitionTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/PostgresTableDefinitionTest.php',
|
||||
'YoastSEO_Vendor\\Psr\\Container\\ContainerExceptionInterface' => $baseDir . '/vendor_prefixed/psr/container/src/ContainerExceptionInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Container\\ContainerInterface' => $baseDir . '/vendor_prefixed/psr/container/src/ContainerInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Container\\NotFoundExceptionInterface' => $baseDir . '/vendor_prefixed/psr/container/src/NotFoundExceptionInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/MessageInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/RequestInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/ResponseInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\ServerRequestInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/StreamInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/UriInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\AbstractLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LogLevel' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LogLevel.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareInterface' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareTrait' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerInterface' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerTrait' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\NullLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/NullLogger.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\Test\\DummyTest' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\Test\\LoggerInterfaceTest' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_ColumnDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/ColumnDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Interface' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Interface.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_BaseMigration' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Exception' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Exception.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_FrameworkRunner' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/FrameworkRunner.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Migration_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Task_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Task_Interface' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Interface.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Task_Manager' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Manager.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Util_Logger' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Logger.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Util_Migrator' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Migrator.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Util_Naming' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Naming.php',
|
||||
'YoastSEO_Vendor\\Sqlite3AdapterTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/Sqlite3AdapterTest.php',
|
||||
'YoastSEO_Vendor\\Sqlite3TableDefinitionTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/Sqlite3TableDefinitionTest.php',
|
||||
'YoastSEO_Vendor\\TaskManagerTest' => $baseDir . '/vendor_prefixed/ruckusing/tests/unit/TaskManagerTest.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Generate' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Generate.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Migrate' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Migrate.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Schema' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Schema.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Setup' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Setup.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Status' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Status.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Version' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Version.php',
|
||||
'YoastSEO_Vendor\\Task_Hello_World' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Hello/World.php',
|
||||
'Yoast\\WP\\Free\\Config\\Admin' => $baseDir . '/src/config/admin.php',
|
||||
'Yoast\\WP\\Free\\Config\\Database_Migration' => $baseDir . '/src/config/database-migration.php',
|
||||
'Yoast\\WP\\Free\\Config\\Dependency_Management' => $baseDir . '/src/config/dependency-management.php',
|
||||
'Yoast\\WP\\Free\\Config\\Frontend' => $baseDir . '/src/config/frontend.php',
|
||||
'Yoast\\WP\\Free\\Config\\Plugin' => $baseDir . '/src/config/plugin.php',
|
||||
'Yoast\\WP\\Free\\Config\\Upgrade' => $baseDir . '/src/config/upgrade.php',
|
||||
'Yoast\\WP\\Free\\Exceptions\\Missing_Method' => $baseDir . '/src/exceptions/missing-method.php',
|
||||
'Yoast\\WP\\Free\\Exceptions\\No_Indexable_Found' => $baseDir . '/src/exceptions/no-indexable-found.php',
|
||||
'Yoast\\WP\\Free\\Formatters\\Indexable_Author_Formatter' => $baseDir . '/src/formatters/indexable-author-formatter.php',
|
||||
'Yoast\\WP\\Free\\Formatters\\Indexable_Post_Formatter' => $baseDir . '/src/formatters/indexable-post-formatter.php',
|
||||
'Yoast\\WP\\Free\\Formatters\\Indexable_Term_Formatter' => $baseDir . '/src/formatters/indexable-term-formatter.php',
|
||||
'Yoast\\WP\\Free\\Loggers\\Logger' => $baseDir . '/src/loggers/logger.php',
|
||||
'Yoast\\WP\\Free\\Loggers\\Migration_Logger' => $baseDir . '/src/loggers/migration-logger.php',
|
||||
'Yoast\\WP\\Free\\Models\\Indexable' => $baseDir . '/src/models/indexable.php',
|
||||
'Yoast\\WP\\Free\\Models\\Indexable_Meta' => $baseDir . '/src/models/indexable-meta.php',
|
||||
'Yoast\\WP\\Free\\Models\\Primary_Term' => $baseDir . '/src/models/primary-term.php',
|
||||
'Yoast\\WP\\Free\\Models\\SEO_Meta' => $baseDir . '/src/models/seo-meta.php',
|
||||
'Yoast\\WP\\Free\\ORMWrapper' => $baseDir . '/src/yoast-orm-wrapper.php',
|
||||
'Yoast\\WP\\Free\\Oauth\\Client' => $baseDir . '/src/oauth/client.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Indexable_Author_Watcher' => $baseDir . '/src/watchers/indexable-author-watcher.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Indexable_Post_Watcher' => $baseDir . '/src/watchers/indexable-post-watcher.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Indexable_Term_Watcher' => $baseDir . '/src/watchers/indexable-term-watcher.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Primary_Term_Watcher' => $baseDir . '/src/watchers/primary-term-watcher.php',
|
||||
'Yoast\\WP\\Free\\WordPress\\Integration' => $baseDir . '/src/wordpress/integration.php',
|
||||
'Yoast\\WP\\Free\\WordPress\\Integration_Group' => $baseDir . '/src/wordpress/integration-group.php',
|
||||
'Yoast\\WP\\Free\\Yoast_Model' => $baseDir . '/src/yoast-model.php',
|
||||
'Yoast_API_Request' => $vendorDir . '/yoast/license-manager/class-api-request.php',
|
||||
'Yoast_Alerts' => $baseDir . '/admin/class-yoast-alerts.php',
|
||||
'Yoast_Api_Libs' => $vendorDir . '/yoast/api-libs/class-api-libs.php',
|
||||
'Yoast_Dashboard_Widget' => $baseDir . '/admin/class-yoast-dashboard-widget.php',
|
||||
'Yoast_Dismissable_Notice_Ajax' => $baseDir . '/admin/ajax/class-yoast-dismissable-notice.php',
|
||||
'Yoast_Feature_Toggle' => $baseDir . '/admin/views/class-yoast-feature-toggle.php',
|
||||
'Yoast_Feature_Toggles' => $baseDir . '/admin/views/class-yoast-feature-toggles.php',
|
||||
'Yoast_Form' => $baseDir . '/admin/class-yoast-form.php',
|
||||
'Yoast_Form_Element' => $baseDir . '/admin/views/interface-yoast-form-element.php',
|
||||
'Yoast_Form_Fieldset' => $baseDir . '/admin/views/class-yoast-form-fieldset.php',
|
||||
'Yoast_I18n_WordPressOrg_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-module-wordpressorg.php',
|
||||
'Yoast_I18n_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-module.php',
|
||||
'Yoast_Input_Select' => $baseDir . '/admin/views/class-yoast-input-select.php',
|
||||
'Yoast_License_Manager' => $vendorDir . '/yoast/license-manager/class-license-manager.php',
|
||||
'Yoast_Modal' => $baseDir . '/deprecated/class-yoast-modal.php',
|
||||
'Yoast_Network_Admin' => $baseDir . '/admin/class-yoast-network-admin.php',
|
||||
'Yoast_Network_Settings_API' => $baseDir . '/admin/class-yoast-network-settings-api.php',
|
||||
'Yoast_Notification' => $baseDir . '/admin/class-yoast-notification.php',
|
||||
'Yoast_Notification_Center' => $baseDir . '/admin/class-yoast-notification-center.php',
|
||||
'Yoast_OnPage_Ajax' => $baseDir . '/admin/ajax/class-yoast-onpage-ajax.php',
|
||||
'Yoast_Plugin_Conflict' => $baseDir . '/admin/class-yoast-plugin-conflict.php',
|
||||
'Yoast_Plugin_Conflict_Ajax' => $baseDir . '/admin/ajax/class-yoast-plugin-conflict-ajax.php',
|
||||
'Yoast_Plugin_License_Manager' => $vendorDir . '/yoast/license-manager/class-plugin-license-manager.php',
|
||||
'Yoast_Plugin_Update_Manager' => $vendorDir . '/yoast/license-manager/class-plugin-update-manager.php',
|
||||
'Yoast_Product' => $vendorDir . '/yoast/license-manager/class-product.php',
|
||||
'Yoast_Theme_License_Manager' => $vendorDir . '/yoast/license-manager/class-theme-license-manager.php',
|
||||
'Yoast_Theme_Update_Manager' => $vendorDir . '/yoast/license-manager/class-theme-update-manager.php',
|
||||
'Yoast_Update_Manager' => $vendorDir . '/yoast/license-manager/class-update-manager.php',
|
||||
'Yoast_View_Utils' => $baseDir . '/admin/views/class-view-utils.php',
|
||||
'iYoast_License_Manager' => $vendorDir . '/yoast/license-manager/class-license-manager.php',
|
||||
'xrstf\\Composer52\\AutoloadGenerator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
||||
'xrstf\\Composer52\\Generator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
||||
);
|
10
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_namespaces.php
vendored
Normal file
10
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_namespaces.php
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
|
||||
);
|
10
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_psr4.php
vendored
Normal file
10
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_psr4.php
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
|
||||
);
|
52
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_real.php
vendored
Normal file
52
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_real.php
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitf22b8825991ccda35c7813f5b3928f77
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class)
|
||||
{
|
||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
||||
require __DIR__ . '/ClassLoader.php';
|
||||
}
|
||||
}
|
||||
|
||||
public static function getLoader()
|
||||
{
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitf22b8825991ccda35c7813f5b3928f77', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitf22b8825991ccda35c7813f5b3928f77', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require_once __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitf22b8825991ccda35c7813f5b3928f77::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->set($namespace, $path);
|
||||
}
|
||||
|
||||
$map = require __DIR__ . '/autoload_psr4.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->setPsr4($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
}
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
44
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_real_52.php
vendored
Normal file
44
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_real_52.php
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
// autoload_real_52.php generated by xrstf/composer-php52
|
||||
|
||||
class ComposerAutoloaderInit1130f724cc96931ec29ebc5a0cff9b24 {
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class) {
|
||||
if ('xrstf_Composer52_ClassLoader' === $class) {
|
||||
require dirname(__FILE__).'/ClassLoader52.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return xrstf_Composer52_ClassLoader
|
||||
*/
|
||||
public static function getLoader() {
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit1130f724cc96931ec29ebc5a0cff9b24', 'loadClassLoader'), true /*, true */);
|
||||
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit1130f724cc96931ec29ebc5a0cff9b24', 'loadClassLoader'));
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
$dir = dirname(__FILE__);
|
||||
|
||||
$map = require $dir.'/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->add($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require $dir.'/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
701
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_static.php
vendored
Normal file
701
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/composer/autoload_static.php
vendored
Normal file
@ -0,0 +1,701 @@
|
||||
<?php
|
||||
|
||||
// autoload_static.php @generated by Composer
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitf22b8825991ccda35c7813f5b3928f77
|
||||
{
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
'C' =>
|
||||
array (
|
||||
'Composer\\Installers\\' => 20,
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixDirsPsr4 = array (
|
||||
'Composer\\Installers\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixesPsr0 = array (
|
||||
'x' =>
|
||||
array (
|
||||
'xrstf\\Composer52' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/xrstf/composer-php52/lib',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
|
||||
'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
|
||||
'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
|
||||
'Composer\\Installers\\AsgardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
|
||||
'Composer\\Installers\\AttogramInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
|
||||
'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
|
||||
'Composer\\Installers\\BitrixInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
|
||||
'Composer\\Installers\\BonefishInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
|
||||
'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
|
||||
'Composer\\Installers\\ChefInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
|
||||
'Composer\\Installers\\ClanCatsFrameworkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
|
||||
'Composer\\Installers\\CockpitInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
|
||||
'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
|
||||
'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
|
||||
'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
|
||||
'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
|
||||
'Composer\\Installers\\DecibelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
|
||||
'Composer\\Installers\\DokuWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
|
||||
'Composer\\Installers\\DolibarrInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
|
||||
'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
|
||||
'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
|
||||
'Composer\\Installers\\EliasisInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
|
||||
'Composer\\Installers\\ExpressionEngineInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
|
||||
'Composer\\Installers\\EzPlatformInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
|
||||
'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
|
||||
'Composer\\Installers\\FuelphpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
|
||||
'Composer\\Installers\\GravInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/GravInstaller.php',
|
||||
'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
|
||||
'Composer\\Installers\\ImageCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
|
||||
'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php',
|
||||
'Composer\\Installers\\ItopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
|
||||
'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
|
||||
'Composer\\Installers\\KanboardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
|
||||
'Composer\\Installers\\KirbyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
|
||||
'Composer\\Installers\\KodiCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
|
||||
'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
|
||||
'Composer\\Installers\\LanManagementSystemInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
|
||||
'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
|
||||
'Composer\\Installers\\LavaLiteInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
|
||||
'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
|
||||
'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
|
||||
'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
|
||||
'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
|
||||
'Composer\\Installers\\MajimaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
|
||||
'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
|
||||
'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
|
||||
'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
|
||||
'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
|
||||
'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
|
||||
'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
|
||||
'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
|
||||
'Composer\\Installers\\OctoberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
|
||||
'Composer\\Installers\\OntoWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
|
||||
'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
|
||||
'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
|
||||
'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
|
||||
'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
|
||||
'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
|
||||
'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
|
||||
'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
|
||||
'Composer\\Installers\\PlentymarketsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
|
||||
'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
|
||||
'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
|
||||
'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
|
||||
'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
|
||||
'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
|
||||
'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
|
||||
'Composer\\Installers\\ReIndexInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
|
||||
'Composer\\Installers\\RedaxoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
|
||||
'Composer\\Installers\\RoundcubeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
|
||||
'Composer\\Installers\\SMFInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
|
||||
'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
|
||||
'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
|
||||
'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
|
||||
'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
|
||||
'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
|
||||
'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
|
||||
'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
|
||||
'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
|
||||
'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
|
||||
'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
|
||||
'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
|
||||
'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
|
||||
'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
|
||||
'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
|
||||
'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
|
||||
'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
|
||||
'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
|
||||
'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
|
||||
'WPSEO_Abstract_Capability_Manager' => __DIR__ . '/../..' . '/admin/capabilities/class-abstract-capability-manager.php',
|
||||
'WPSEO_Abstract_Post_Filter' => __DIR__ . '/../..' . '/admin/filters/class-abstract-post-filter.php',
|
||||
'WPSEO_Abstract_Role_Manager' => __DIR__ . '/../..' . '/admin/roles/class-abstract-role-manager.php',
|
||||
'WPSEO_Add_Keyword_Modal' => __DIR__ . '/../..' . '/admin/class-add-keyword-modal.php',
|
||||
'WPSEO_Addon_Manager' => __DIR__ . '/../..' . '/inc/class-addon-manager.php',
|
||||
'WPSEO_Admin' => __DIR__ . '/../..' . '/admin/class-admin.php',
|
||||
'WPSEO_Admin_Asset' => __DIR__ . '/../..' . '/admin/class-asset.php',
|
||||
'WPSEO_Admin_Asset_Analysis_Worker_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-analysis-worker-location.php',
|
||||
'WPSEO_Admin_Asset_Dev_Server_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-dev-server-location.php',
|
||||
'WPSEO_Admin_Asset_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-location.php',
|
||||
'WPSEO_Admin_Asset_Manager' => __DIR__ . '/../..' . '/admin/class-admin-asset-manager.php',
|
||||
'WPSEO_Admin_Asset_SEO_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-seo-location.php',
|
||||
'WPSEO_Admin_Asset_Yoast_Components_L10n' => __DIR__ . '/../..' . '/admin/class-admin-asset-yoast-components-l10n.php',
|
||||
'WPSEO_Admin_Bar_Menu' => __DIR__ . '/../..' . '/inc/class-wpseo-admin-bar-menu.php',
|
||||
'WPSEO_Admin_Editor_Specific_Replace_Vars' => __DIR__ . '/../..' . '/admin/class-admin-editor-specific-replace-vars.php',
|
||||
'WPSEO_Admin_Gutenberg_Compatibility_Notification' => __DIR__ . '/../..' . '/admin/class-admin-gutenberg-compatibility-notification.php',
|
||||
'WPSEO_Admin_Help_Panel' => __DIR__ . '/../..' . '/admin/class-admin-help-panel.php',
|
||||
'WPSEO_Admin_Init' => __DIR__ . '/../..' . '/admin/class-admin-init.php',
|
||||
'WPSEO_Admin_Media_Purge_Notification' => __DIR__ . '/../..' . '/admin/class-admin-media-purge-notification.php',
|
||||
'WPSEO_Admin_Menu' => __DIR__ . '/../..' . '/admin/menu/class-admin-menu.php',
|
||||
'WPSEO_Admin_Pages' => __DIR__ . '/../..' . '/admin/class-config.php',
|
||||
'WPSEO_Admin_Recommended_Replace_Vars' => __DIR__ . '/../..' . '/admin/class-admin-recommended-replace-vars.php',
|
||||
'WPSEO_Admin_User_Profile' => __DIR__ . '/../..' . '/admin/class-admin-user-profile.php',
|
||||
'WPSEO_Admin_Utils' => __DIR__ . '/../..' . '/admin/class-admin-utils.php',
|
||||
'WPSEO_Advanced_Settings' => __DIR__ . '/../..' . '/deprecated/class-wpseo-advanced-settings.php',
|
||||
'WPSEO_Author_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/class-author-sitemap-provider.php',
|
||||
'WPSEO_Base_Menu' => __DIR__ . '/../..' . '/admin/menu/class-base-menu.php',
|
||||
'WPSEO_Breadcrumbs' => __DIR__ . '/../..' . '/frontend/class-breadcrumbs.php',
|
||||
'WPSEO_Bulk_Description_List_Table' => __DIR__ . '/../..' . '/admin/class-bulk-description-editor-list-table.php',
|
||||
'WPSEO_Bulk_List_Table' => __DIR__ . '/../..' . '/admin/class-bulk-editor-list-table.php',
|
||||
'WPSEO_Bulk_Title_Editor_List_Table' => __DIR__ . '/../..' . '/admin/class-bulk-title-editor-list-table.php',
|
||||
'WPSEO_CLI_Redirect_Upsell_Command_Namespace' => __DIR__ . '/../..' . '/cli/class-cli-redirect-upsell-command-namespace.php',
|
||||
'WPSEO_CLI_Yoast_Command_Namespace' => __DIR__ . '/../..' . '/cli/class-cli-yoast-command-namespace.php',
|
||||
'WPSEO_Capability_Manager' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager.php',
|
||||
'WPSEO_Capability_Manager_Factory' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-factory.php',
|
||||
'WPSEO_Capability_Manager_Integration' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-integration.php',
|
||||
'WPSEO_Capability_Manager_VIP' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-vip.php',
|
||||
'WPSEO_Capability_Manager_WP' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-wp.php',
|
||||
'WPSEO_Capability_Utils' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-utils.php',
|
||||
'WPSEO_Collection' => __DIR__ . '/../..' . '/admin/interface-collection.php',
|
||||
'WPSEO_Collector' => __DIR__ . '/../..' . '/admin/class-collector.php',
|
||||
'WPSEO_Config_Component' => __DIR__ . '/../..' . '/admin/config-ui/components/interface-component.php',
|
||||
'WPSEO_Config_Component_Connect_Google_Search_Console' => __DIR__ . '/../..' . '/admin/config-ui/components/class-component-connect-google-search-console.php',
|
||||
'WPSEO_Config_Component_Mailchimp_Signup' => __DIR__ . '/../..' . '/admin/config-ui/components/class-component-mailchimp-signup.php',
|
||||
'WPSEO_Config_Component_Suggestions' => __DIR__ . '/../..' . '/admin/config-ui/components/class-component-suggestions.php',
|
||||
'WPSEO_Config_Factory_Post_Type' => __DIR__ . '/../..' . '/admin/config-ui/factories/class-factory-post-type.php',
|
||||
'WPSEO_Config_Field' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field.php',
|
||||
'WPSEO_Config_Field_Choice' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-choice.php',
|
||||
'WPSEO_Config_Field_Choice_Post_Type' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-choice-post-type.php',
|
||||
'WPSEO_Config_Field_Company_Logo' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-logo.php',
|
||||
'WPSEO_Config_Field_Company_Name' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-name.php',
|
||||
'WPSEO_Config_Field_Company_Or_Person' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-or-person.php',
|
||||
'WPSEO_Config_Field_Connect_Google_Search_Console' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-connect-google-search-console.php',
|
||||
'WPSEO_Config_Field_Environment' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-environment.php',
|
||||
'WPSEO_Config_Field_Google_Search_Console_Intro' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-google-search-console-intro.php',
|
||||
'WPSEO_Config_Field_Mailchimp_Signup' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-mailchimp-signup.php',
|
||||
'WPSEO_Config_Field_Multiple_Authors' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-multiple-authors.php',
|
||||
'WPSEO_Config_Field_Person' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-person.php',
|
||||
'WPSEO_Config_Field_Post_Type_Visibility' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-post-type-visibility.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Facebook' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-facebook.php',
|
||||
'WPSEO_Config_Field_Profile_URL_GooglePlus' => __DIR__ . '/../..' . '/deprecated/admin/config-ui/fields/class-field-profile-url-googleplus.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Instagram' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-instagram.php',
|
||||
'WPSEO_Config_Field_Profile_URL_LinkedIn' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-linkedin.php',
|
||||
'WPSEO_Config_Field_Profile_URL_MySpace' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-myspace.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Pinterest' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-pinterest.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Twitter' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-twitter.php',
|
||||
'WPSEO_Config_Field_Profile_URL_Wikipedia' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-wikipedia.php',
|
||||
'WPSEO_Config_Field_Profile_URL_YouTube' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-youtube.php',
|
||||
'WPSEO_Config_Field_Separator' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-separator.php',
|
||||
'WPSEO_Config_Field_Site_Name' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-site-name.php',
|
||||
'WPSEO_Config_Field_Site_Type' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-site-type.php',
|
||||
'WPSEO_Config_Field_Success_Message' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-success-message.php',
|
||||
'WPSEO_Config_Field_Suggestions' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-suggestions.php',
|
||||
'WPSEO_Config_Field_Title_Intro' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-title-intro.php',
|
||||
'WPSEO_Config_Field_Upsell_Configuration_Service' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-upsell-configuration-service.php',
|
||||
'WPSEO_Config_Field_Upsell_Site_Review' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-upsell-site-review.php',
|
||||
'WPSEO_Configuration_Components' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-components.php',
|
||||
'WPSEO_Configuration_Endpoint' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-endpoint.php',
|
||||
'WPSEO_Configuration_Notifier' => __DIR__ . '/../..' . '/admin/notifiers/class-configuration-notifier.php',
|
||||
'WPSEO_Configuration_Options_Adapter' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-options-adapter.php',
|
||||
'WPSEO_Configuration_Page' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-page.php',
|
||||
'WPSEO_Configuration_Service' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-service.php',
|
||||
'WPSEO_Configuration_Storage' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-storage.php',
|
||||
'WPSEO_Configuration_Structure' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-structure.php',
|
||||
'WPSEO_Configuration_Translations' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-translations.php',
|
||||
'WPSEO_Content_Images' => __DIR__ . '/../..' . '/inc/class-wpseo-content-images.php',
|
||||
'WPSEO_Cornerstone' => __DIR__ . '/../..' . '/deprecated/class-cornerstone.php',
|
||||
'WPSEO_Cornerstone_Filter' => __DIR__ . '/../..' . '/admin/filters/class-cornerstone-filter.php',
|
||||
'WPSEO_Courses_Overview' => __DIR__ . '/../..' . '/admin/courses-overview.php',
|
||||
'WPSEO_Custom_Fields' => __DIR__ . '/../..' . '/inc/class-wpseo-custom-fields.php',
|
||||
'WPSEO_Custom_Taxonomies' => __DIR__ . '/../..' . '/inc/class-wpseo-custom-taxonomies.php',
|
||||
'WPSEO_Customizer' => __DIR__ . '/../..' . '/admin/class-customizer.php',
|
||||
'WPSEO_Database_Proxy' => __DIR__ . '/../..' . '/admin/class-database-proxy.php',
|
||||
'WPSEO_Dismissible_Notification' => __DIR__ . '/../..' . '/admin/notifiers/dismissible-notification.php',
|
||||
'WPSEO_Endpoint' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint.php',
|
||||
'WPSEO_Endpoint_Factory' => __DIR__ . '/../..' . '/inc/class-wpseo-endpoint-factory.php',
|
||||
'WPSEO_Endpoint_File_Size' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-file-size.php',
|
||||
'WPSEO_Endpoint_Indexable' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-indexable.php',
|
||||
'WPSEO_Endpoint_MyYoast_Connect' => __DIR__ . '/../..' . '/inc/endpoints/class-myyoast-connect.php',
|
||||
'WPSEO_Endpoint_Ryte' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-ryte.php',
|
||||
'WPSEO_Endpoint_Statistics' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-statistics.php',
|
||||
'WPSEO_Endpoint_Storable' => __DIR__ . '/../..' . '/admin/endpoints/interface-endpoint-storable.php',
|
||||
'WPSEO_Endpoint_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-endpoint-validator.php',
|
||||
'WPSEO_Export' => __DIR__ . '/../..' . '/admin/class-export.php',
|
||||
'WPSEO_Expose_Shortlinks' => __DIR__ . '/../..' . '/admin/class-expose-shortlinks.php',
|
||||
'WPSEO_Extension' => __DIR__ . '/../..' . '/admin/class-extension.php',
|
||||
'WPSEO_Extension_Manager' => __DIR__ . '/../..' . '/admin/class-extension-manager.php',
|
||||
'WPSEO_Extensions' => __DIR__ . '/../..' . '/admin/class-extensions.php',
|
||||
'WPSEO_FAQ_Block' => __DIR__ . '/../..' . '/inc/structured-data-blocks/class-faq-block.php',
|
||||
'WPSEO_Features' => __DIR__ . '/../..' . '/inc/class-wpseo-features.php',
|
||||
'WPSEO_File_Size_Exception' => __DIR__ . '/../..' . '/admin/exceptions/class-file-size-exception.php',
|
||||
'WPSEO_File_Size_Service' => __DIR__ . '/../..' . '/admin/services/class-file-size.php',
|
||||
'WPSEO_Frontend' => __DIR__ . '/../..' . '/frontend/class-frontend.php',
|
||||
'WPSEO_Frontend_Page_Type' => __DIR__ . '/../..' . '/frontend/class-frontend-page-type.php',
|
||||
'WPSEO_Frontend_Primary_Category' => __DIR__ . '/../..' . '/frontend/class-primary-category.php',
|
||||
'WPSEO_GSC' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc.php',
|
||||
'WPSEO_GSC_Ajax' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-ajax.php',
|
||||
'WPSEO_GSC_Bulk_Action' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-bulk-action.php',
|
||||
'WPSEO_GSC_Category_Filters' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-category-filters.php',
|
||||
'WPSEO_GSC_Config' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-config.php',
|
||||
'WPSEO_GSC_Count' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-count.php',
|
||||
'WPSEO_GSC_Issue' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-issue.php',
|
||||
'WPSEO_GSC_Issues' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-issues.php',
|
||||
'WPSEO_GSC_Mapper' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-mapper.php',
|
||||
'WPSEO_GSC_Marker' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-marker.php',
|
||||
'WPSEO_GSC_Modal' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-modal.php',
|
||||
'WPSEO_GSC_Platform_Tabs' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-platform-tabs.php',
|
||||
'WPSEO_GSC_Service' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-service.php',
|
||||
'WPSEO_GSC_Settings' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-settings.php',
|
||||
'WPSEO_GSC_Table' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc-table.php',
|
||||
'WPSEO_Graph_Piece' => __DIR__ . '/../..' . '/frontend/schema/interface-wpseo-graph-piece.php',
|
||||
'WPSEO_Gutenberg_Compatibility' => __DIR__ . '/../..' . '/admin/class-gutenberg-compatibility.php',
|
||||
'WPSEO_Handle_404' => __DIR__ . '/../..' . '/frontend/class-handle-404.php',
|
||||
'WPSEO_Help_Center' => __DIR__ . '/../..' . '/admin/class-help-center.php',
|
||||
'WPSEO_Help_Center_Item' => __DIR__ . '/../..' . '/admin/class-help-center-item.php',
|
||||
'WPSEO_Help_Center_Template_Variables_Tab' => __DIR__ . '/../..' . '/admin/help_center/class-template-variables-tab.php',
|
||||
'WPSEO_How_To_Block' => __DIR__ . '/../..' . '/inc/structured-data-blocks/class-how-to-block.php',
|
||||
'WPSEO_Image_Utils' => __DIR__ . '/../..' . '/inc/class-wpseo-image-utils.php',
|
||||
'WPSEO_Import_AIOSEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-aioseo.php',
|
||||
'WPSEO_Import_Greg_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-greg-high-performance-seo.php',
|
||||
'WPSEO_Import_HeadSpace' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-headspace.php',
|
||||
'WPSEO_Import_Jetpack_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-jetpack.php',
|
||||
'WPSEO_Import_Platinum_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-platinum-seo-pack.php',
|
||||
'WPSEO_Import_Plugin' => __DIR__ . '/../..' . '/admin/import/class-import-plugin.php',
|
||||
'WPSEO_Import_Plugins_Detector' => __DIR__ . '/../..' . '/admin/import/class-import-detector.php',
|
||||
'WPSEO_Import_Premium_SEO_Pack' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-premium-seo-pack.php',
|
||||
'WPSEO_Import_SEOPressor' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-seopressor.php',
|
||||
'WPSEO_Import_SEO_Framework' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-seo-framework.php',
|
||||
'WPSEO_Import_Settings' => __DIR__ . '/../..' . '/admin/import/class-import-settings.php',
|
||||
'WPSEO_Import_Smartcrawl_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-smartcrawl.php',
|
||||
'WPSEO_Import_Squirrly' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-squirrly.php',
|
||||
'WPSEO_Import_Status' => __DIR__ . '/../..' . '/admin/import/class-import-status.php',
|
||||
'WPSEO_Import_Ultimate_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-ultimate-seo.php',
|
||||
'WPSEO_Import_WPSEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-wpseo.php',
|
||||
'WPSEO_Import_WP_Meta_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-wp-meta-seo.php',
|
||||
'WPSEO_Import_WooThemes_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-woothemes-seo.php',
|
||||
'WPSEO_Indexable' => __DIR__ . '/../..' . '/inc/indexables/class-indexable.php',
|
||||
'WPSEO_Indexable_Provider' => __DIR__ . '/../..' . '/admin/services/class-indexable-provider.php',
|
||||
'WPSEO_Indexable_Service' => __DIR__ . '/../..' . '/admin/services/class-indexable.php',
|
||||
'WPSEO_Indexable_Service_Post_Provider' => __DIR__ . '/../..' . '/admin/services/class-indexable-post-provider.php',
|
||||
'WPSEO_Indexable_Service_Provider' => __DIR__ . '/../..' . '/admin/services/interface-indexable-provider.php',
|
||||
'WPSEO_Indexable_Service_Term_Provider' => __DIR__ . '/../..' . '/admin/services/class-indexable-term-provider.php',
|
||||
'WPSEO_Installable' => __DIR__ . '/../..' . '/admin/interface-installable.php',
|
||||
'WPSEO_Installation' => __DIR__ . '/../..' . '/inc/class-wpseo-installation.php',
|
||||
'WPSEO_Invalid_Argument_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-invalid-argument-exception.php',
|
||||
'WPSEO_Invalid_Indexable_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-invalid-indexable-exception.php',
|
||||
'WPSEO_Keyword_Synonyms_Modal' => __DIR__ . '/../..' . '/admin/class-keyword-synonyms-modal.php',
|
||||
'WPSEO_Keyword_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-keyword-validator.php',
|
||||
'WPSEO_Language_Utils' => __DIR__ . '/../..' . '/inc/language-utils.php',
|
||||
'WPSEO_License_Page_Manager' => __DIR__ . '/../..' . '/admin/class-license-page-manager.php',
|
||||
'WPSEO_Link' => __DIR__ . '/../..' . '/admin/links/class-link.php',
|
||||
'WPSEO_Link_Cleanup_Transient' => __DIR__ . '/../..' . '/admin/links/class-link-cleanup-transient.php',
|
||||
'WPSEO_Link_Column_Count' => __DIR__ . '/../..' . '/admin/links/class-link-column-count.php',
|
||||
'WPSEO_Link_Columns' => __DIR__ . '/../..' . '/admin/links/class-link-columns.php',
|
||||
'WPSEO_Link_Compatibility_Notifier' => __DIR__ . '/../..' . '/admin/links/class-link-compatibility-notifier.php',
|
||||
'WPSEO_Link_Content_Processor' => __DIR__ . '/../..' . '/admin/links/class-link-content-processor.php',
|
||||
'WPSEO_Link_Extractor' => __DIR__ . '/../..' . '/admin/links/class-link-extractor.php',
|
||||
'WPSEO_Link_Factory' => __DIR__ . '/../..' . '/admin/links/class-link-factory.php',
|
||||
'WPSEO_Link_Filter' => __DIR__ . '/../..' . '/admin/links/class-link-filter.php',
|
||||
'WPSEO_Link_Installer' => __DIR__ . '/../..' . '/admin/links/class-link-installer.php',
|
||||
'WPSEO_Link_Internal_Lookup' => __DIR__ . '/../..' . '/admin/links/class-link-internal-lookup.php',
|
||||
'WPSEO_Link_Notifier' => __DIR__ . '/../..' . '/admin/links/class-link-notifier.php',
|
||||
'WPSEO_Link_Query' => __DIR__ . '/../..' . '/admin/links/class-link-query.php',
|
||||
'WPSEO_Link_Reindex_Dashboard' => __DIR__ . '/../..' . '/admin/links/class-link-reindex-dashboard.php',
|
||||
'WPSEO_Link_Reindex_Post_Endpoint' => __DIR__ . '/../..' . '/admin/links/class-link-reindex-post-endpoint.php',
|
||||
'WPSEO_Link_Reindex_Post_Service' => __DIR__ . '/../..' . '/admin/links/class-link-reindex-post-service.php',
|
||||
'WPSEO_Link_Storage' => __DIR__ . '/../..' . '/admin/links/class-link-storage.php',
|
||||
'WPSEO_Link_Table_Accessible' => __DIR__ . '/../..' . '/admin/links/class-link-table-accessible.php',
|
||||
'WPSEO_Link_Table_Accessible_Notifier' => __DIR__ . '/../..' . '/admin/links/class-link-table-accessible-notifier.php',
|
||||
'WPSEO_Link_Type_Classifier' => __DIR__ . '/../..' . '/admin/links/class-link-type-classifier.php',
|
||||
'WPSEO_Link_Utils' => __DIR__ . '/../..' . '/admin/links/class-link-utils.php',
|
||||
'WPSEO_Link_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-link-validator.php',
|
||||
'WPSEO_Link_Watcher' => __DIR__ . '/../..' . '/admin/links/class-link-watcher.php',
|
||||
'WPSEO_Link_Watcher_Loader' => __DIR__ . '/../..' . '/admin/links/class-link-watcher-loader.php',
|
||||
'WPSEO_Listener' => __DIR__ . '/../..' . '/admin/listeners/class-listener.php',
|
||||
'WPSEO_Menu' => __DIR__ . '/../..' . '/admin/menu/class-menu.php',
|
||||
'WPSEO_Meta' => __DIR__ . '/../..' . '/inc/class-wpseo-meta.php',
|
||||
'WPSEO_Meta_Columns' => __DIR__ . '/../..' . '/admin/class-meta-columns.php',
|
||||
'WPSEO_Meta_Storage' => __DIR__ . '/../..' . '/admin/class-meta-storage.php',
|
||||
'WPSEO_Meta_Table_Accessible' => __DIR__ . '/../..' . '/admin/class-meta-table-accessible.php',
|
||||
'WPSEO_Meta_Values_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-meta-values-validator.php',
|
||||
'WPSEO_Metabox' => __DIR__ . '/../..' . '/admin/metabox/class-metabox.php',
|
||||
'WPSEO_Metabox_Addon_Tab_Section' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-addon-section.php',
|
||||
'WPSEO_Metabox_Analysis' => __DIR__ . '/../..' . '/admin/metabox/interface-metabox-analysis.php',
|
||||
'WPSEO_Metabox_Analysis_Readability' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-analysis-readability.php',
|
||||
'WPSEO_Metabox_Analysis_SEO' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-analysis-seo.php',
|
||||
'WPSEO_Metabox_Editor' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-editor.php',
|
||||
'WPSEO_Metabox_Form_Tab' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-form-tab.php',
|
||||
'WPSEO_Metabox_Formatter' => __DIR__ . '/../..' . '/admin/formatter/class-metabox-formatter.php',
|
||||
'WPSEO_Metabox_Formatter_Interface' => __DIR__ . '/../..' . '/admin/formatter/interface-metabox-formatter.php',
|
||||
'WPSEO_Metabox_Null_Tab' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-null-tab.php',
|
||||
'WPSEO_Metabox_Section' => __DIR__ . '/../..' . '/admin/metabox/interface-metabox-section.php',
|
||||
'WPSEO_Metabox_Section_React' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-section-react.php',
|
||||
'WPSEO_Metabox_Tab' => __DIR__ . '/../..' . '/admin/metabox/interface-metabox-tab.php',
|
||||
'WPSEO_Metabox_Tab_Section' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-tab-section.php',
|
||||
'WPSEO_Multiple_Keywords_Modal' => __DIR__ . '/../..' . '/admin/class-multiple-keywords-modal.php',
|
||||
'WPSEO_MyYoast_Api_Request' => __DIR__ . '/../..' . '/inc/class-my-yoast-api-request.php',
|
||||
'WPSEO_MyYoast_Authentication_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-myyoast-authentication-exception.php',
|
||||
'WPSEO_MyYoast_Bad_Request_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-myyoast-bad-request-exception.php',
|
||||
'WPSEO_MyYoast_Invalid_JSON_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-myyoast-invalid-json-exception.php',
|
||||
'WPSEO_MyYoast_Proxy' => __DIR__ . '/../..' . '/admin/class-my-yoast-proxy.php',
|
||||
'WPSEO_MyYoast_Route' => __DIR__ . '/../..' . '/admin/class-my-yoast-route.php',
|
||||
'WPSEO_Network_Admin_Menu' => __DIR__ . '/../..' . '/admin/menu/class-network-admin-menu.php',
|
||||
'WPSEO_Notification_Handler' => __DIR__ . '/../..' . '/admin/notifiers/interface-notification-handler.php',
|
||||
'WPSEO_Object_Type' => __DIR__ . '/../..' . '/inc/indexables/class-object-type.php',
|
||||
'WPSEO_Object_Type_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-object-type-validator.php',
|
||||
'WPSEO_OnPage' => __DIR__ . '/../..' . '/admin/onpage/class-onpage.php',
|
||||
'WPSEO_OnPage_Option' => __DIR__ . '/../..' . '/admin/onpage/class-onpage-option.php',
|
||||
'WPSEO_OnPage_Request' => __DIR__ . '/../..' . '/admin/onpage/class-onpage-request.php',
|
||||
'WPSEO_OpenGraph' => __DIR__ . '/../..' . '/frontend/class-opengraph.php',
|
||||
'WPSEO_OpenGraph_Image' => __DIR__ . '/../..' . '/frontend/class-opengraph-image.php',
|
||||
'WPSEO_OpenGraph_OEmbed' => __DIR__ . '/../..' . '/frontend/class-opengraph-oembed.php',
|
||||
'WPSEO_OpenGraph_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-opengraph-validator.php',
|
||||
'WPSEO_Option' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option.php',
|
||||
'WPSEO_Option_InternalLinks' => __DIR__ . '/../..' . '/deprecated/class-wpseo-option-internallinks.php',
|
||||
'WPSEO_Option_MS' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-ms.php',
|
||||
'WPSEO_Option_Permalinks' => __DIR__ . '/../..' . '/deprecated/class-wpseo-option-permalinks.php',
|
||||
'WPSEO_Option_Social' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-social.php',
|
||||
'WPSEO_Option_Tab' => __DIR__ . '/../..' . '/admin/class-option-tab.php',
|
||||
'WPSEO_Option_Tabs' => __DIR__ . '/../..' . '/admin/class-option-tabs.php',
|
||||
'WPSEO_Option_Tabs_Formatter' => __DIR__ . '/../..' . '/admin/class-option-tabs-formatter.php',
|
||||
'WPSEO_Option_Titles' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-titles.php',
|
||||
'WPSEO_Option_Wpseo' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-wpseo.php',
|
||||
'WPSEO_Options' => __DIR__ . '/../..' . '/inc/options/class-wpseo-options.php',
|
||||
'WPSEO_Options_Backfill' => __DIR__ . '/../..' . '/inc/options/class-wpseo-options-backfill.php',
|
||||
'WPSEO_Paper_Presenter' => __DIR__ . '/../..' . '/admin/class-paper-presenter.php',
|
||||
'WPSEO_Plugin_Availability' => __DIR__ . '/../..' . '/admin/class-plugin-availability.php',
|
||||
'WPSEO_Plugin_Compatibility' => __DIR__ . '/../..' . '/admin/class-plugin-compatibility.php',
|
||||
'WPSEO_Plugin_Conflict' => __DIR__ . '/../..' . '/admin/class-plugin-conflict.php',
|
||||
'WPSEO_Plugin_Importer' => __DIR__ . '/../..' . '/admin/import/plugins/class-abstract-plugin-importer.php',
|
||||
'WPSEO_Plugin_Importers' => __DIR__ . '/../..' . '/admin/import/plugins/class-importers.php',
|
||||
'WPSEO_Post_Indexable' => __DIR__ . '/../..' . '/inc/indexables/class-post-indexable.php',
|
||||
'WPSEO_Post_Metabox_Formatter' => __DIR__ . '/../..' . '/admin/formatter/class-post-metabox-formatter.php',
|
||||
'WPSEO_Post_Object_Type' => __DIR__ . '/../..' . '/inc/indexables/class-post-object-type.php',
|
||||
'WPSEO_Post_Type' => __DIR__ . '/../..' . '/inc/class-post-type.php',
|
||||
'WPSEO_Post_Type_Archive_Notification_Handler' => __DIR__ . '/../..' . '/admin/notifiers/class-post-type-archive-notification-handler.php',
|
||||
'WPSEO_Post_Type_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/class-post-type-sitemap-provider.php',
|
||||
'WPSEO_Premium_Popup' => __DIR__ . '/../..' . '/admin/class-premium-popup.php',
|
||||
'WPSEO_Premium_Upsell_Admin_Block' => __DIR__ . '/../..' . '/admin/class-premium-upsell-admin-block.php',
|
||||
'WPSEO_Primary_Term' => __DIR__ . '/../..' . '/inc/class-wpseo-primary-term.php',
|
||||
'WPSEO_Primary_Term_Admin' => __DIR__ . '/../..' . '/admin/class-primary-term-admin.php',
|
||||
'WPSEO_Product_Upsell_Notice' => __DIR__ . '/../..' . '/admin/class-product-upsell-notice.php',
|
||||
'WPSEO_REST_Request_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-rest-request-exception.php',
|
||||
'WPSEO_Rank' => __DIR__ . '/../..' . '/inc/class-wpseo-rank.php',
|
||||
'WPSEO_Recalculate' => __DIR__ . '/../..' . '/admin/recalculate/class-recalculate.php',
|
||||
'WPSEO_Recalculate_Posts' => __DIR__ . '/../..' . '/admin/recalculate/class-recalculate-posts.php',
|
||||
'WPSEO_Recalculate_Scores' => __DIR__ . '/../..' . '/admin/class-recalculate-scores.php',
|
||||
'WPSEO_Recalculate_Scores_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-recalculate-scores-ajax.php',
|
||||
'WPSEO_Recalculate_Terms' => __DIR__ . '/../..' . '/admin/recalculate/class-recalculate-terms.php',
|
||||
'WPSEO_Recalibration_Beta' => __DIR__ . '/../..' . '/deprecated/class-recalibration-beta.php',
|
||||
'WPSEO_Recalibration_Beta_Notification' => __DIR__ . '/../..' . '/deprecated/class-recalibration-beta-notification.php',
|
||||
'WPSEO_Register_Capabilities' => __DIR__ . '/../..' . '/admin/capabilities/class-register-capabilities.php',
|
||||
'WPSEO_Register_Roles' => __DIR__ . '/../..' . '/admin/roles/class-register-roles.php',
|
||||
'WPSEO_Remote_Request' => __DIR__ . '/../..' . '/admin/class-remote-request.php',
|
||||
'WPSEO_Remove_Reply_To_Com' => __DIR__ . '/../..' . '/frontend/class-remove-reply-to-com.php',
|
||||
'WPSEO_Replace_Vars' => __DIR__ . '/../..' . '/inc/class-wpseo-replace-vars.php',
|
||||
'WPSEO_Replacement_Variable' => __DIR__ . '/../..' . '/inc/class-wpseo-replacement-variable.php',
|
||||
'WPSEO_Replacevar_Editor' => __DIR__ . '/../..' . '/admin/menu/class-replacevar-editor.php',
|
||||
'WPSEO_Replacevar_Field' => __DIR__ . '/../..' . '/admin/menu/class-replacevar-field.php',
|
||||
'WPSEO_Rewrite' => __DIR__ . '/../..' . '/inc/class-rewrite.php',
|
||||
'WPSEO_Robots_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-robots-validator.php',
|
||||
'WPSEO_Role_Manager' => __DIR__ . '/../..' . '/admin/roles/class-role-manager.php',
|
||||
'WPSEO_Role_Manager_Factory' => __DIR__ . '/../..' . '/admin/roles/class-role-manager-factory.php',
|
||||
'WPSEO_Role_Manager_VIP' => __DIR__ . '/../..' . '/admin/roles/class-role-manager-vip.php',
|
||||
'WPSEO_Role_Manager_WP' => __DIR__ . '/../..' . '/admin/roles/class-role-manager-wp.php',
|
||||
'WPSEO_Ryte_Service' => __DIR__ . '/../..' . '/admin/onpage/class-ryte-service.php',
|
||||
'WPSEO_Schema' => __DIR__ . '/../..' . '/frontend/schema/class-schema.php',
|
||||
'WPSEO_Schema_Article' => __DIR__ . '/../..' . '/frontend/schema/class-schema-article.php',
|
||||
'WPSEO_Schema_Author' => __DIR__ . '/../..' . '/frontend/schema/class-schema-author.php',
|
||||
'WPSEO_Schema_Breadcrumb' => __DIR__ . '/../..' . '/frontend/schema/class-schema-breadcrumb.php',
|
||||
'WPSEO_Schema_Context' => __DIR__ . '/../..' . '/frontend/schema/class-schema-context.php',
|
||||
'WPSEO_Schema_IDs' => __DIR__ . '/../..' . '/frontend/schema/class-schema-ids.php',
|
||||
'WPSEO_Schema_Image' => __DIR__ . '/../..' . '/frontend/schema/class-schema-image.php',
|
||||
'WPSEO_Schema_Organization' => __DIR__ . '/../..' . '/frontend/schema/class-schema-organization.php',
|
||||
'WPSEO_Schema_Person' => __DIR__ . '/../..' . '/frontend/schema/class-schema-person.php',
|
||||
'WPSEO_Schema_Person_Upgrade_Notification' => __DIR__ . '/../..' . '/admin/class-schema-person-upgrade-notification.php',
|
||||
'WPSEO_Schema_WebPage' => __DIR__ . '/../..' . '/frontend/schema/class-schema-webpage.php',
|
||||
'WPSEO_Schema_Website' => __DIR__ . '/../..' . '/frontend/schema/class-schema-website.php',
|
||||
'WPSEO_Shortcode_Filter' => __DIR__ . '/../..' . '/admin/ajax/class-shortcode-filter.php',
|
||||
'WPSEO_Shortlinker' => __DIR__ . '/../..' . '/inc/class-wpseo-shortlinker.php',
|
||||
'WPSEO_Sitemap_Cache_Data' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemap-cache-data.php',
|
||||
'WPSEO_Sitemap_Cache_Data_Interface' => __DIR__ . '/../..' . '/inc/sitemaps/interface-sitemap-cache-data.php',
|
||||
'WPSEO_Sitemap_Image_Parser' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemap-image-parser.php',
|
||||
'WPSEO_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/interface-sitemap-provider.php',
|
||||
'WPSEO_Sitemap_Timezone' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemap-timezone.php',
|
||||
'WPSEO_Sitemaps' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps.php',
|
||||
'WPSEO_Sitemaps_Admin' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-admin.php',
|
||||
'WPSEO_Sitemaps_Cache' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-cache.php',
|
||||
'WPSEO_Sitemaps_Cache_Validator' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-cache-validator.php',
|
||||
'WPSEO_Sitemaps_Renderer' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-renderer.php',
|
||||
'WPSEO_Sitemaps_Router' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-router.php',
|
||||
'WPSEO_Slug_Change_Watcher' => __DIR__ . '/../..' . '/admin/watchers/class-slug-change-watcher.php',
|
||||
'WPSEO_Social_Admin' => __DIR__ . '/../..' . '/admin/class-social-admin.php',
|
||||
'WPSEO_Statistic_Integration' => __DIR__ . '/../..' . '/admin/statistics/class-statistics-integration.php',
|
||||
'WPSEO_Statistics' => __DIR__ . '/../..' . '/inc/class-wpseo-statistics.php',
|
||||
'WPSEO_Statistics_Service' => __DIR__ . '/../..' . '/admin/statistics/class-statistics-service.php',
|
||||
'WPSEO_Structured_Data_Blocks' => __DIR__ . '/../..' . '/inc/class-structured-data-blocks.php',
|
||||
'WPSEO_Submenu_Capability_Normalize' => __DIR__ . '/../..' . '/admin/menu/class-submenu-capability-normalize.php',
|
||||
'WPSEO_Submenu_Hider' => __DIR__ . '/../..' . '/deprecated/class-submenu-hider.php',
|
||||
'WPSEO_Suggested_Plugins' => __DIR__ . '/../..' . '/admin/class-suggested-plugins.php',
|
||||
'WPSEO_Taxonomy' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy.php',
|
||||
'WPSEO_Taxonomy_Columns' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-columns.php',
|
||||
'WPSEO_Taxonomy_Content_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-content-fields.php',
|
||||
'WPSEO_Taxonomy_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-fields.php',
|
||||
'WPSEO_Taxonomy_Fields_Presenter' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-fields-presenter.php',
|
||||
'WPSEO_Taxonomy_Meta' => __DIR__ . '/../..' . '/inc/options/class-wpseo-taxonomy-meta.php',
|
||||
'WPSEO_Taxonomy_Metabox' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-metabox.php',
|
||||
'WPSEO_Taxonomy_Settings_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-settings-fields.php',
|
||||
'WPSEO_Taxonomy_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/class-taxonomy-sitemap-provider.php',
|
||||
'WPSEO_Taxonomy_Social_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-social-fields.php',
|
||||
'WPSEO_Term_Indexable' => __DIR__ . '/../..' . '/inc/indexables/class-term-indexable.php',
|
||||
'WPSEO_Term_Metabox_Formatter' => __DIR__ . '/../..' . '/admin/formatter/class-term-metabox-formatter.php',
|
||||
'WPSEO_Term_Object_Type' => __DIR__ . '/../..' . '/inc/indexables/class-term-object-type.php',
|
||||
'WPSEO_Tracking' => __DIR__ . '/../..' . '/admin/tracking/class-tracking.php',
|
||||
'WPSEO_Tracking_Default_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-default-data.php',
|
||||
'WPSEO_Tracking_Plugin_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-plugin-data.php',
|
||||
'WPSEO_Tracking_Server_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-server-data.php',
|
||||
'WPSEO_Tracking_Theme_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-theme-data.php',
|
||||
'WPSEO_Twitter' => __DIR__ . '/../..' . '/frontend/class-twitter.php',
|
||||
'WPSEO_Twitter_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-twitter-validator.php',
|
||||
'WPSEO_Upgrade' => __DIR__ . '/../..' . '/inc/class-upgrade.php',
|
||||
'WPSEO_Upgrade_History' => __DIR__ . '/../..' . '/inc/class-upgrade-history.php',
|
||||
'WPSEO_Utils' => __DIR__ . '/../..' . '/inc/class-wpseo-utils.php',
|
||||
'WPSEO_Validator' => __DIR__ . '/../..' . '/inc/class-wpseo-validator.php',
|
||||
'WPSEO_WooCommerce_Shop_Page' => __DIR__ . '/../..' . '/frontend/class-woocommerce-shop-page.php',
|
||||
'WPSEO_WordPress_AJAX_Integration' => __DIR__ . '/../..' . '/inc/interface-wpseo-wordpress-ajax-integration.php',
|
||||
'WPSEO_WordPress_Integration' => __DIR__ . '/../..' . '/inc/interface-wpseo-wordpress-integration.php',
|
||||
'WPSEO_Yoast_Columns' => __DIR__ . '/../..' . '/admin/class-yoast-columns.php',
|
||||
'YoastSEO_Vendor\\BaseAdapterOverrideSchemaTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/BaseAdapterOverrideSchemaTest.php',
|
||||
'YoastSEO_Vendor\\BaseMigrationTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/BaseMigrationTest.php',
|
||||
'YoastSEO_Vendor\\CreatePrefixedTable' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/dummy/db/migrations/multi_schema_test_dir/20151122000000_CreatePrefixedTable.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Client.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SessionCookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SetCookie' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\BadResponseException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ClientException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ConnectException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\SeekException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\HandlerStack' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactory' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactoryInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlMultiHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\EasyHandle' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\MockHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\AggregateException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\CancellationException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Coroutine' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\EachPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\FulfilledPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Promise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Promise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromiseInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromisorInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectedPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectionException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueue' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueueInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\AppendStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\BufferStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\CachingStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\DroppingStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\FnStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\InflateStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LazyOpenStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LimitStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MessageTrait' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MultipartStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\NoSeekStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Request' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Request.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Response' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Response.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Rfc7230' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Stream.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Uri.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\RedirectMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php',
|
||||
'YoastSEO_Vendor\\GuzzleHttp\\UriTemplate' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php',
|
||||
'YoastSEO_Vendor\\IdiormMethodMissingException' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\IdiormResultSet' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\IdiormString' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\IdiormStringException' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AbstractGrant' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/AbstractGrant.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AuthorizationCode' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/AuthorizationCode.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\ClientCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/ClientCredentials.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Exception\\InvalidGrantException' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/Exception/InvalidGrantException.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\GrantFactory' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/GrantFactory.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Password' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/Password.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\RefreshToken' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/RefreshToken.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\HttpBasicAuthOptionProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/HttpBasicAuthOptionProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\OptionProviderInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/OptionProviderInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\PostAuthOptionProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/PostAuthOptionProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\AbstractProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\Exception\\IdentityProviderException' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/Exception/IdentityProviderException.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericProvider.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericResourceOwner' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericResourceOwner.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\ResourceOwnerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/ResourceOwnerInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessToken' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Token/AccessToken.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessTokenInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Token/AccessTokenInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\ResourceOwnerAccessTokenInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Token/ResourceOwnerAccessTokenInterface.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ArrayAccessorTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/ArrayAccessorTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\BearerAuthorizationTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/BearerAuthorizationTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\GuardedPropertyTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/GuardedPropertyTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\MacAuthorizationTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/MacAuthorizationTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ProviderRedirectTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/ProviderRedirectTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\QueryBuilderTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/QueryBuilderTrait.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequestFactory' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/RequestFactory.php',
|
||||
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequiredParameterTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/RequiredParameterTrait.php',
|
||||
'YoastSEO_Vendor\\MigratorUtilTestMultiDirectory' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/MigratorUtilTestMultiDirectory.php',
|
||||
'YoastSEO_Vendor\\MigratorUtilTestSingleDirectory' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/MigratorUtilTestSingleDirectory.php',
|
||||
'YoastSEO_Vendor\\MySQLAdapterTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/MySQLAdapterTest.php',
|
||||
'YoastSEO_Vendor\\MySQLTableDefinitionTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/MySQLTableDefinitionTest.php',
|
||||
'YoastSEO_Vendor\\NamingUtilTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/NamingUtilTest.php',
|
||||
'YoastSEO_Vendor\\ORM' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
|
||||
'YoastSEO_Vendor\\PostgresAdapterTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/PostgresAdapterTest.php',
|
||||
'YoastSEO_Vendor\\PostgresTableDefinitionTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/PostgresTableDefinitionTest.php',
|
||||
'YoastSEO_Vendor\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/container/src/ContainerExceptionInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Container\\ContainerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/container/src/ContainerInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/container/src/NotFoundExceptionInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/MessageInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/RequestInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/ResponseInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\ServerRequestInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/StreamInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/UriInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\AbstractLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LogLevel' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LogLevel.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\LoggerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\NullLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/NullLogger.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\Test\\DummyTest' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'YoastSEO_Vendor\\Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_ColumnDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/ColumnDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Interface' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Interface.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Adapter_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/TableDefinition.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_BaseMigration' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Exception' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Exception.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_FrameworkRunner' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/FrameworkRunner.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Migration_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Task_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Base.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Task_Interface' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Interface.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Task_Manager' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Manager.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Util_Logger' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Logger.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Util_Migrator' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Migrator.php',
|
||||
'YoastSEO_Vendor\\Ruckusing_Util_Naming' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Naming.php',
|
||||
'YoastSEO_Vendor\\Sqlite3AdapterTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/Sqlite3AdapterTest.php',
|
||||
'YoastSEO_Vendor\\Sqlite3TableDefinitionTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/Sqlite3TableDefinitionTest.php',
|
||||
'YoastSEO_Vendor\\TaskManagerTest' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/tests/unit/TaskManagerTest.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Generate' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Generate.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Migrate' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Migrate.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Schema' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Schema.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Setup' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Setup.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Status' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Status.php',
|
||||
'YoastSEO_Vendor\\Task_Db_Version' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Version.php',
|
||||
'YoastSEO_Vendor\\Task_Hello_World' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Hello/World.php',
|
||||
'Yoast\\WP\\Free\\Config\\Admin' => __DIR__ . '/../..' . '/src/config/admin.php',
|
||||
'Yoast\\WP\\Free\\Config\\Database_Migration' => __DIR__ . '/../..' . '/src/config/database-migration.php',
|
||||
'Yoast\\WP\\Free\\Config\\Dependency_Management' => __DIR__ . '/../..' . '/src/config/dependency-management.php',
|
||||
'Yoast\\WP\\Free\\Config\\Frontend' => __DIR__ . '/../..' . '/src/config/frontend.php',
|
||||
'Yoast\\WP\\Free\\Config\\Plugin' => __DIR__ . '/../..' . '/src/config/plugin.php',
|
||||
'Yoast\\WP\\Free\\Config\\Upgrade' => __DIR__ . '/../..' . '/src/config/upgrade.php',
|
||||
'Yoast\\WP\\Free\\Exceptions\\Missing_Method' => __DIR__ . '/../..' . '/src/exceptions/missing-method.php',
|
||||
'Yoast\\WP\\Free\\Exceptions\\No_Indexable_Found' => __DIR__ . '/../..' . '/src/exceptions/no-indexable-found.php',
|
||||
'Yoast\\WP\\Free\\Formatters\\Indexable_Author_Formatter' => __DIR__ . '/../..' . '/src/formatters/indexable-author-formatter.php',
|
||||
'Yoast\\WP\\Free\\Formatters\\Indexable_Post_Formatter' => __DIR__ . '/../..' . '/src/formatters/indexable-post-formatter.php',
|
||||
'Yoast\\WP\\Free\\Formatters\\Indexable_Term_Formatter' => __DIR__ . '/../..' . '/src/formatters/indexable-term-formatter.php',
|
||||
'Yoast\\WP\\Free\\Loggers\\Logger' => __DIR__ . '/../..' . '/src/loggers/logger.php',
|
||||
'Yoast\\WP\\Free\\Loggers\\Migration_Logger' => __DIR__ . '/../..' . '/src/loggers/migration-logger.php',
|
||||
'Yoast\\WP\\Free\\Models\\Indexable' => __DIR__ . '/../..' . '/src/models/indexable.php',
|
||||
'Yoast\\WP\\Free\\Models\\Indexable_Meta' => __DIR__ . '/../..' . '/src/models/indexable-meta.php',
|
||||
'Yoast\\WP\\Free\\Models\\Primary_Term' => __DIR__ . '/../..' . '/src/models/primary-term.php',
|
||||
'Yoast\\WP\\Free\\Models\\SEO_Meta' => __DIR__ . '/../..' . '/src/models/seo-meta.php',
|
||||
'Yoast\\WP\\Free\\ORMWrapper' => __DIR__ . '/../..' . '/src/yoast-orm-wrapper.php',
|
||||
'Yoast\\WP\\Free\\Oauth\\Client' => __DIR__ . '/../..' . '/src/oauth/client.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Indexable_Author_Watcher' => __DIR__ . '/../..' . '/src/watchers/indexable-author-watcher.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Indexable_Post_Watcher' => __DIR__ . '/../..' . '/src/watchers/indexable-post-watcher.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Indexable_Term_Watcher' => __DIR__ . '/../..' . '/src/watchers/indexable-term-watcher.php',
|
||||
'Yoast\\WP\\Free\\Watchers\\Primary_Term_Watcher' => __DIR__ . '/../..' . '/src/watchers/primary-term-watcher.php',
|
||||
'Yoast\\WP\\Free\\WordPress\\Integration' => __DIR__ . '/../..' . '/src/wordpress/integration.php',
|
||||
'Yoast\\WP\\Free\\WordPress\\Integration_Group' => __DIR__ . '/../..' . '/src/wordpress/integration-group.php',
|
||||
'Yoast\\WP\\Free\\Yoast_Model' => __DIR__ . '/../..' . '/src/yoast-model.php',
|
||||
'Yoast_API_Request' => __DIR__ . '/..' . '/yoast/license-manager/class-api-request.php',
|
||||
'Yoast_Alerts' => __DIR__ . '/../..' . '/admin/class-yoast-alerts.php',
|
||||
'Yoast_Api_Libs' => __DIR__ . '/..' . '/yoast/api-libs/class-api-libs.php',
|
||||
'Yoast_Dashboard_Widget' => __DIR__ . '/../..' . '/admin/class-yoast-dashboard-widget.php',
|
||||
'Yoast_Dismissable_Notice_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-yoast-dismissable-notice.php',
|
||||
'Yoast_Feature_Toggle' => __DIR__ . '/../..' . '/admin/views/class-yoast-feature-toggle.php',
|
||||
'Yoast_Feature_Toggles' => __DIR__ . '/../..' . '/admin/views/class-yoast-feature-toggles.php',
|
||||
'Yoast_Form' => __DIR__ . '/../..' . '/admin/class-yoast-form.php',
|
||||
'Yoast_Form_Element' => __DIR__ . '/../..' . '/admin/views/interface-yoast-form-element.php',
|
||||
'Yoast_Form_Fieldset' => __DIR__ . '/../..' . '/admin/views/class-yoast-form-fieldset.php',
|
||||
'Yoast_I18n_WordPressOrg_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-module-wordpressorg.php',
|
||||
'Yoast_I18n_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-module.php',
|
||||
'Yoast_Input_Select' => __DIR__ . '/../..' . '/admin/views/class-yoast-input-select.php',
|
||||
'Yoast_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-license-manager.php',
|
||||
'Yoast_Modal' => __DIR__ . '/../..' . '/deprecated/class-yoast-modal.php',
|
||||
'Yoast_Network_Admin' => __DIR__ . '/../..' . '/admin/class-yoast-network-admin.php',
|
||||
'Yoast_Network_Settings_API' => __DIR__ . '/../..' . '/admin/class-yoast-network-settings-api.php',
|
||||
'Yoast_Notification' => __DIR__ . '/../..' . '/admin/class-yoast-notification.php',
|
||||
'Yoast_Notification_Center' => __DIR__ . '/../..' . '/admin/class-yoast-notification-center.php',
|
||||
'Yoast_OnPage_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-yoast-onpage-ajax.php',
|
||||
'Yoast_Plugin_Conflict' => __DIR__ . '/../..' . '/admin/class-yoast-plugin-conflict.php',
|
||||
'Yoast_Plugin_Conflict_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-yoast-plugin-conflict-ajax.php',
|
||||
'Yoast_Plugin_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-plugin-license-manager.php',
|
||||
'Yoast_Plugin_Update_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-plugin-update-manager.php',
|
||||
'Yoast_Product' => __DIR__ . '/..' . '/yoast/license-manager/class-product.php',
|
||||
'Yoast_Theme_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-theme-license-manager.php',
|
||||
'Yoast_Theme_Update_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-theme-update-manager.php',
|
||||
'Yoast_Update_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-update-manager.php',
|
||||
'Yoast_View_Utils' => __DIR__ . '/../..' . '/admin/views/class-view-utils.php',
|
||||
'iYoast_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-license-manager.php',
|
||||
'xrstf\\Composer52\\AutoloadGenerator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
||||
'xrstf\\Composer52\\Generator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitf22b8825991ccda35c7813f5b3928f77::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitf22b8825991ccda35c7813f5b3928f77::$prefixDirsPsr4;
|
||||
$loader->prefixesPsr0 = ComposerStaticInitf22b8825991ccda35c7813f5b3928f77::$prefixesPsr0;
|
||||
$loader->classMap = ComposerStaticInitf22b8825991ccda35c7813f5b3928f77::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
}
|
19
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/xrstf/composer-php52/LICENSE
vendored
Normal file
19
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/xrstf/composer-php52/LICENSE
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2013 Christoph Mewes
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
@ -0,0 +1,346 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 99% of this is copied as-is from the original Composer source code and is
|
||||
* released under MIT license as well. Copyright goes to:
|
||||
*
|
||||
* - Igor Wiedler <igor@wiedler.ch>
|
||||
* - Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
|
||||
namespace xrstf\Composer52;
|
||||
|
||||
use Composer\Autoload\AutoloadGenerator as BaseGenerator;
|
||||
use Composer\Autoload\ClassMapGenerator;
|
||||
use Composer\Config;
|
||||
use Composer\Installer\InstallationManager;
|
||||
use Composer\Package\AliasPackage;
|
||||
use Composer\Package\PackageInterface;
|
||||
use Composer\Repository\InstalledRepositoryInterface;
|
||||
use Composer\Util\Filesystem;
|
||||
|
||||
class AutoloadGenerator extends BaseGenerator {
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $classMapAuthoritative = false;
|
||||
|
||||
public function __construct() {
|
||||
// do nothing (but keep this constructor so we can build an instance without the need for an event dispatcher)
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not generated autoloader considers the class map
|
||||
* authoritative.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = (boolean) $classMapAuthoritative;
|
||||
}
|
||||
|
||||
public function dump(Config $config, InstalledRepositoryInterface $localRepo, PackageInterface $mainPackage, InstallationManager $installationManager, $targetDir, $scanPsr0Packages = false, $suffix = '') {
|
||||
if ($this->classMapAuthoritative) {
|
||||
// Force scanPsr0Packages when classmap is authoritative
|
||||
$scanPsr0Packages = true;
|
||||
}
|
||||
|
||||
$filesystem = new Filesystem();
|
||||
$filesystem->ensureDirectoryExists($config->get('vendor-dir'));
|
||||
|
||||
$cwd = getcwd();
|
||||
$basePath = $filesystem->normalizePath($cwd);
|
||||
$vendorPath = $filesystem->normalizePath(realpath($config->get('vendor-dir')));
|
||||
$targetDir = $vendorPath.'/'.$targetDir;
|
||||
$filesystem->ensureDirectoryExists($targetDir);
|
||||
|
||||
$useGlobalIncludePath = (bool) $config->get('use-include-path');
|
||||
$prependAutoloader = $config->get('prepend-autoloader') === false ? 'false' : 'true';
|
||||
$classMapAuthoritative = $config->get('classmap-authoritative');
|
||||
|
||||
$vendorPathCode = $filesystem->findShortestPathCode(realpath($targetDir), $vendorPath, true);
|
||||
$vendorPathToTargetDirCode = $filesystem->findShortestPathCode($vendorPath, realpath($targetDir), true);
|
||||
|
||||
$appBaseDirCode = $filesystem->findShortestPathCode($vendorPath, $basePath, true);
|
||||
$appBaseDirCode = str_replace('__DIR__', '$vendorDir', $appBaseDirCode);
|
||||
|
||||
// add 5.2 compat
|
||||
$vendorPathCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathCode);
|
||||
$vendorPathToTargetDirCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathToTargetDirCode);
|
||||
|
||||
$packageMap = $this->buildPackageMap($installationManager, $mainPackage, $localRepo->getCanonicalPackages());
|
||||
$autoloads = $this->parseAutoloads($packageMap, $mainPackage);
|
||||
|
||||
// add custom psr-0 autoloading if the root package has a target dir
|
||||
$targetDirLoader = null;
|
||||
$mainAutoload = $mainPackage->getAutoload();
|
||||
if ($mainPackage->getTargetDir() && !empty($mainAutoload['psr-0'])) {
|
||||
$levels = count(explode('/', $filesystem->normalizePath($mainPackage->getTargetDir())));
|
||||
$prefixes = implode(', ', array_map(function ($prefix) {
|
||||
return var_export($prefix, true);
|
||||
}, array_keys($mainAutoload['psr-0'])));
|
||||
|
||||
$baseDirFromTargetDirCode = $filesystem->findShortestPathCode($targetDir, $basePath, true);
|
||||
|
||||
$targetDirLoader = <<<EOF
|
||||
|
||||
public static function autoload(\$class) {
|
||||
\$dir = $baseDirFromTargetDirCode.'/';
|
||||
\$prefixes = array($prefixes);
|
||||
|
||||
foreach (\$prefixes as \$prefix) {
|
||||
if (0 !== strpos(\$class, \$prefix)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
\$path = explode(DIRECTORY_SEPARATOR, self::getClassPath(\$class));
|
||||
\$path = \$dir.implode('/', array_slice(\$path, $levels));
|
||||
|
||||
if (!\$path = self::resolveIncludePath(\$path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
require \$path;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
EOF;
|
||||
}
|
||||
|
||||
$filesCode = "";
|
||||
$autoloads['files'] = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($autoloads['files']));
|
||||
foreach ($autoloads['files'] as $functionFile) {
|
||||
// don't include file if it is using PHP 5.3+ syntax
|
||||
// https://bitbucket.org/xrstf/composer-php52/issue/4
|
||||
if ($this->isPHP53($functionFile)) {
|
||||
$filesCode .= '// require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile)."; // disabled because of PHP 5.3 syntax\n";
|
||||
}
|
||||
else {
|
||||
$filesCode .= ' require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile).";\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (!$suffix) {
|
||||
$suffix = md5(uniqid('', true));
|
||||
}
|
||||
|
||||
$includePathFile = $this->getIncludePathsFile($packageMap, $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode);
|
||||
|
||||
file_put_contents($vendorPath.'/autoload_52.php', $this->getAutoloadFile($vendorPathToTargetDirCode, $suffix));
|
||||
file_put_contents($targetDir.'/autoload_real_52.php', $this->getAutoloadRealFile(true, (bool) $includePathFile, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader));
|
||||
|
||||
// use stream_copy_to_stream instead of copy
|
||||
// to work around https://bugs.php.net/bug.php?id=64634
|
||||
$sourceLoader = fopen(__DIR__.'/ClassLoader.php', 'r');
|
||||
$targetLoader = fopen($targetDir.'/ClassLoader52.php', 'w+');
|
||||
stream_copy_to_stream($sourceLoader, $targetLoader);
|
||||
fclose($sourceLoader);
|
||||
fclose($targetLoader);
|
||||
unset($sourceLoader, $targetLoader);
|
||||
}
|
||||
|
||||
protected function isPHP53($file) {
|
||||
$tokens = token_get_all(file_get_contents($file));
|
||||
$php53 = array(T_DIR, T_GOTO, T_NAMESPACE, T_NS_C, T_NS_SEPARATOR, T_USE);
|
||||
|
||||
// PHP 5.4+
|
||||
if (defined('T_TRAIT')) {
|
||||
$php53[] = T_TRAIT;
|
||||
$php53[] = T_TRAIT_C;
|
||||
$php53[] = T_TRAIT_C;
|
||||
}
|
||||
|
||||
// PHP 5.5+
|
||||
if (defined('T_FINALLY')) {
|
||||
$php53[] = T_FINALLY;
|
||||
$php53[] = T_YIELD;
|
||||
}
|
||||
|
||||
foreach ($tokens as $token) {
|
||||
if (is_array($token) && in_array($token[0], $php53)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode) {
|
||||
$includePaths = array();
|
||||
|
||||
foreach ($packageMap as $item) {
|
||||
list($package, $installPath) = $item;
|
||||
|
||||
if (null !== $package->getTargetDir() && strlen($package->getTargetDir()) > 0) {
|
||||
$installPath = substr($installPath, 0, -strlen('/'.$package->getTargetDir()));
|
||||
}
|
||||
|
||||
foreach ($package->getIncludePaths() as $includePath) {
|
||||
$includePath = trim($includePath, '/');
|
||||
$includePaths[] = empty($installPath) ? $includePath : $installPath.'/'.$includePath;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$includePaths) {
|
||||
return;
|
||||
}
|
||||
|
||||
$includePathsFile = <<<EOF
|
||||
<?php
|
||||
|
||||
// include_paths_52.php generated by xrstf/composer-php52
|
||||
|
||||
\$vendorDir = $vendorPathCode;
|
||||
\$baseDir = $appBaseDirCode;
|
||||
|
||||
return array(
|
||||
|
||||
EOF;
|
||||
|
||||
foreach ($includePaths as $path) {
|
||||
$includePathsFile .= "\t" . $this->getPathCode($filesystem, $basePath, $vendorPath, $path) . ",\n";
|
||||
}
|
||||
|
||||
return $includePathsFile . ");\n";
|
||||
}
|
||||
|
||||
protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix) {
|
||||
return <<<AUTOLOAD
|
||||
<?php
|
||||
|
||||
// autoload_52.php generated by xrstf/composer-php52
|
||||
|
||||
require_once $vendorPathToTargetDirCode.'/autoload_real_52.php';
|
||||
|
||||
return ComposerAutoloaderInit$suffix::getLoader();
|
||||
|
||||
AUTOLOAD;
|
||||
}
|
||||
|
||||
protected function getAutoloadRealFile($useClassMap, $useIncludePath, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion = 70000) {
|
||||
// TODO the class ComposerAutoloaderInit should be revert to a closure
|
||||
// when APC has been fixed:
|
||||
// - https://github.com/composer/composer/issues/959
|
||||
// - https://bugs.php.net/bug.php?id=52144
|
||||
// - https://bugs.php.net/bug.php?id=61576
|
||||
// - https://bugs.php.net/bug.php?id=59298
|
||||
|
||||
if ($filesCode) {
|
||||
$filesCode = "\n\n".rtrim($filesCode);
|
||||
}
|
||||
|
||||
$file = <<<HEADER
|
||||
<?php
|
||||
|
||||
// autoload_real_52.php generated by xrstf/composer-php52
|
||||
|
||||
class ComposerAutoloaderInit$suffix {
|
||||
private static \$loader;
|
||||
|
||||
public static function loadClassLoader(\$class) {
|
||||
if ('xrstf_Composer52_ClassLoader' === \$class) {
|
||||
require dirname(__FILE__).'/ClassLoader52.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return xrstf_Composer52_ClassLoader
|
||||
*/
|
||||
public static function getLoader() {
|
||||
if (null !== self::\$loader) {
|
||||
return self::\$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'), true /*, true */);
|
||||
self::\$loader = \$loader = new xrstf_Composer52_ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'));
|
||||
|
||||
\$vendorDir = $vendorPathCode;
|
||||
\$baseDir = $appBaseDirCode;
|
||||
\$dir = dirname(__FILE__);
|
||||
|
||||
|
||||
HEADER;
|
||||
|
||||
if ($useIncludePath) {
|
||||
$file .= <<<'INCLUDE_PATH'
|
||||
$includePaths = require $dir.'/include_paths.php';
|
||||
array_push($includePaths, get_include_path());
|
||||
set_include_path(implode(PATH_SEPARATOR, $includePaths));
|
||||
|
||||
|
||||
INCLUDE_PATH;
|
||||
}
|
||||
|
||||
$file .= <<<'PSR0'
|
||||
$map = require $dir.'/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->add($namespace, $path);
|
||||
}
|
||||
|
||||
|
||||
PSR0;
|
||||
|
||||
if ($useClassMap) {
|
||||
$file .= <<<'CLASSMAP'
|
||||
$classMap = require $dir.'/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
|
||||
|
||||
CLASSMAP;
|
||||
}
|
||||
|
||||
if ($this->classMapAuthoritative) {
|
||||
$file .= <<<'CLASSMAPAUTHORITATIVE'
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
|
||||
CLASSMAPAUTHORITATIVE;
|
||||
}
|
||||
|
||||
if ($useGlobalIncludePath) {
|
||||
$file .= <<<'INCLUDEPATH'
|
||||
$loader->setUseIncludePath(true);
|
||||
|
||||
|
||||
INCLUDEPATH;
|
||||
}
|
||||
|
||||
if ($targetDirLoader) {
|
||||
$file .= <<<REGISTER_AUTOLOAD
|
||||
spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'autoload'), true);
|
||||
|
||||
|
||||
REGISTER_AUTOLOAD;
|
||||
|
||||
}
|
||||
|
||||
$file .= <<<METHOD_FOOTER
|
||||
\$loader->register($prependAutoloader);{$filesCode}
|
||||
|
||||
return \$loader;
|
||||
}
|
||||
|
||||
METHOD_FOOTER;
|
||||
|
||||
$file .= $targetDirLoader;
|
||||
|
||||
return $file . <<<FOOTER
|
||||
}
|
||||
|
||||
FOOTER;
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,271 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 99% of this is copied as-is from the original Composer source code and is
|
||||
* released under MIT license as well. Copyright goes to:
|
||||
*
|
||||
* - Fabien Potencier <fabien@symfony.com>
|
||||
* - Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
|
||||
class xrstf_Composer52_ClassLoader {
|
||||
private $prefixes = array();
|
||||
private $fallbackDirs = array();
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoratative = false;
|
||||
private $allowUnderscore = false;
|
||||
|
||||
/**
|
||||
* @param boolean $flag true to allow class names with a leading underscore, false to disable
|
||||
*/
|
||||
public function setAllowUnderscore($flag) {
|
||||
$this->allowUnderscore = (boolean) $flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getPrefixes() {
|
||||
return $this->prefixes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoratative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoratative) {
|
||||
$this->classMapAuthoratative = $classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getClassMapAuthoratative() {
|
||||
return $this->classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getFallbackDirs() {
|
||||
return $this->fallbackDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getClassMap() {
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap class to filename map
|
||||
*/
|
||||
public function addClassMap(array $classMap) {
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
}
|
||||
else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of classes, merging with any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
* @param bool $prepend prepend the location(s)
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false) {
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirs = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirs
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->fallbackDirs = array_merge(
|
||||
$this->fallbackDirs,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isset($this->prefixes[$prefix])) {
|
||||
$this->prefixes[$prefix] = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixes[$prefix]
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
$this->prefixes[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of classes, replacing any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
*/
|
||||
public function set($prefix, $paths) {
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirs = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
$this->prefixes[$prefix] = (array) $paths;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath) {
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath() {
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*/
|
||||
public function register() {
|
||||
spl_autoload_register(array($this, 'loadClass'), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*/
|
||||
public function unregister() {
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class the name of the class
|
||||
* @return bool|null true, if loaded
|
||||
*/
|
||||
public function loadClass($class) {
|
||||
if ($file = $this->findFile($class)) {
|
||||
include $file;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class the name of the class
|
||||
* @return string|null the path, if found
|
||||
*/
|
||||
public function findFile($class) {
|
||||
if ('\\' === $class[0]) {
|
||||
$class = substr($class, 1);
|
||||
}
|
||||
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
elseif ($this->classMapAuthoratative) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$classPath = $this->getClassPath($class);
|
||||
|
||||
foreach ($this->prefixes as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->fallbackDirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return $this->classMap[$class] = false;
|
||||
}
|
||||
|
||||
private function getClassPath($class) {
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
|
||||
$className = substr($class, $pos + 1);
|
||||
}
|
||||
else {
|
||||
// PEAR-like class name
|
||||
$classPath = null;
|
||||
$className = $class;
|
||||
}
|
||||
|
||||
$className = str_replace('_', DIRECTORY_SEPARATOR, $className);
|
||||
|
||||
// restore the prefix
|
||||
if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
|
||||
$className[0] = '_';
|
||||
}
|
||||
|
||||
$classPath .= $className.'.php';
|
||||
|
||||
return $classPath;
|
||||
}
|
||||
|
||||
public static function resolveIncludePath($classPath) {
|
||||
$paths = explode(PATH_SEPARATOR, get_include_path());
|
||||
|
||||
foreach ($paths as $path) {
|
||||
$path = rtrim($path, '/\\');
|
||||
|
||||
if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
namespace xrstf\Composer52;
|
||||
|
||||
use Composer\Repository\CompositeRepository;
|
||||
use Composer\Script\Event;
|
||||
|
||||
class Generator {
|
||||
public static function onPostInstallCmd(Event $event) {
|
||||
$composer = $event->getComposer();
|
||||
$installationManager = $composer->getInstallationManager();
|
||||
$repoManager = $composer->getRepositoryManager();
|
||||
$localRepo = $repoManager->getLocalRepository();
|
||||
$package = $composer->getPackage();
|
||||
$config = $composer->getConfig();
|
||||
|
||||
// We can't gain access to the Command's input object, so we have to look
|
||||
// for -o / --optimize-autoloader ourselves. Sadly, neither getopt() works
|
||||
// (always returns an empty array), nor does Symfony's Console Input, as
|
||||
// it expects a full definition of the current command line and we can't
|
||||
// provide that.
|
||||
|
||||
$args = $_SERVER['argv'];
|
||||
$optimize = in_array('-o', $args) || in_array('--optimize-autoloader', $args) || in_array('--optimize', $args);
|
||||
|
||||
$suffix = $config->get('autoloader-suffix');
|
||||
|
||||
$generator = new AutoloadGenerator();
|
||||
$generator->dump($config, $localRepo, $package, $installationManager, 'composer', $optimize, $suffix);
|
||||
}
|
||||
}
|
269
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/class-api-google-client.php
vendored
Normal file
269
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/class-api-google-client.php
vendored
Normal file
@ -0,0 +1,269 @@
|
||||
<?php
|
||||
/**
|
||||
* Class Yoast_Api_Google_Client
|
||||
*/
|
||||
class Yoast_Api_Google_Client extends Yoast_Google_Client {
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $option_refresh_token;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $option_access_token;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $api_url;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $http_response_code;
|
||||
|
||||
/**
|
||||
* Initialize the config and refresh the token
|
||||
*
|
||||
* @param array $config
|
||||
* @param string $option_prefix
|
||||
* @param string $api_url
|
||||
*/
|
||||
public function __construct( $config, $option_prefix, $api_url = '' ) {
|
||||
|
||||
parent::__construct();
|
||||
|
||||
$this->option_refresh_token = $option_prefix . '-refresh_token';
|
||||
$this->option_access_token = $option_prefix . '-access_token';
|
||||
|
||||
$this->api_url = $api_url;
|
||||
|
||||
// Initialize the config to set all properties properly.
|
||||
$this->init_config( $config );
|
||||
|
||||
// Let's get an access token if we've got a refresh token.
|
||||
$this->refresh_tokens();
|
||||
}
|
||||
|
||||
/**
|
||||
* Authenticate the client. If $authorization_code is empty it will lead the user through the validation process of
|
||||
* Google. If set it will be get the access token for current session and save the refresh_token for future use
|
||||
*
|
||||
* @param mixed $authorization_code
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authenticate_client( $authorization_code = null ) {
|
||||
static $has_retried;
|
||||
|
||||
// Authenticate client.
|
||||
try {
|
||||
$this->authenticate( $authorization_code );
|
||||
|
||||
// Get access response.
|
||||
$response = $this->getAccessToken();
|
||||
|
||||
// Check if there is a response body.
|
||||
if ( ! empty( $response ) ) {
|
||||
$response = json_decode( $response );
|
||||
|
||||
if ( is_object( $response ) ) {
|
||||
// Save the refresh token.
|
||||
$this->save_refresh_token( $response->refresh_token );
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch ( Yoast_Google_AuthException $exception ) {
|
||||
// If there aren't any attempts before, try again and set attempts on true, to prevent further attempts.
|
||||
if ( empty( $has_retried ) ) {
|
||||
$has_retried = true;
|
||||
|
||||
return $this->authenticate_client( $authorization_code );
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Doing a request to the API
|
||||
*
|
||||
* @param string $target_request_url
|
||||
* @param bool $decode_response
|
||||
* @param string $request_method
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function do_request( $target_request_url, $decode_response = false, $request_method = 'GET' ) {
|
||||
// Get response.
|
||||
$response = $this->getIo()->authenticatedRequest(
|
||||
new Yoast_Google_HttpRequest( $this->api_url . $target_request_url, $request_method )
|
||||
);
|
||||
|
||||
// Storing the response code.
|
||||
$this->http_response_code = $response->getResponseHttpCode();
|
||||
|
||||
if ( $decode_response ) {
|
||||
return $this->decode_response( $response );
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode the JSON response
|
||||
*
|
||||
* @param object $response
|
||||
* @param int $accepted_response_code
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function decode_response( $response, $accepted_response_code = 200 ) {
|
||||
if ( $accepted_response_code === $response->getResponseHttpCode() ) {
|
||||
return json_decode( $response->getResponseBody() );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Getting the response code, saved from latest request to Google
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_http_response_code() {
|
||||
return $this->http_response_code;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the options and revokes the token
|
||||
*/
|
||||
public function clear_data() {
|
||||
$this->revokeToken();
|
||||
|
||||
delete_option( $this->option_access_token );
|
||||
delete_option( $this->option_refresh_token );
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if user is authenticated
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function is_authenticated() {
|
||||
$has_refresh_token = ( $this->get_refresh_token() !== '' );
|
||||
$access_token_expired = $this->access_token_expired();
|
||||
|
||||
return $has_refresh_token && ! $access_token_expired;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the config, will merge given config with default config to be sure all settings are available
|
||||
*
|
||||
* @param array $config
|
||||
*/
|
||||
protected function init_config( array $config ) {
|
||||
if ( ! empty( $config['application_name'] ) ) {
|
||||
$this->setApplicationName( $config['application_name'] );
|
||||
}
|
||||
|
||||
if ( ! empty( $config['client_id'] ) ) {
|
||||
$this->setClientId( $config['client_id'] );
|
||||
}
|
||||
|
||||
if ( ! empty( $config['client_secret'] ) ) {
|
||||
$this->setClientSecret( $config['client_secret'] );
|
||||
}
|
||||
|
||||
// Set our settings.
|
||||
$this->setRedirectUri( $config['redirect_uri'] );
|
||||
$this->setScopes( $config['scopes'] );
|
||||
$this->setAccessType( 'offline' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Refreshing the tokens
|
||||
*/
|
||||
protected function refresh_tokens() {
|
||||
if ( ( $refresh_token = $this->get_refresh_token() ) !== '' && $this->access_token_expired() ) {
|
||||
try {
|
||||
// Refresh the token.
|
||||
$this->refreshToken( $refresh_token );
|
||||
|
||||
$response = $this->getAuth()->token;
|
||||
|
||||
// Check response and if there is an access_token.
|
||||
if ( ! empty( $response ) && ! empty ( $response['access_token'] ) ) {
|
||||
$this->save_access_token( $response );
|
||||
}
|
||||
}
|
||||
catch ( Exception $e ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the refresh token
|
||||
*
|
||||
* @param string $refresh_token
|
||||
*/
|
||||
protected function save_refresh_token( $refresh_token ) {
|
||||
update_option( $this->option_refresh_token, trim( $refresh_token ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return refresh token
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_refresh_token() {
|
||||
return get_option( $this->option_refresh_token, '' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Saving the access token as an option for further use till it expires.
|
||||
*
|
||||
* @param array $response
|
||||
*/
|
||||
protected function save_access_token( $response ) {
|
||||
update_option(
|
||||
$this->option_access_token,
|
||||
array(
|
||||
'refresh_token' => $this->get_refresh_token(),
|
||||
'access_token' => $response['access_token'],
|
||||
'expires' => current_time( 'timestamp' ) + $response['expires_in'],
|
||||
'expires_in' => $response['expires_in'],
|
||||
'created' => $response['created'],
|
||||
)
|
||||
);
|
||||
|
||||
$this->setAccessToken( json_encode( $response ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if current access token is expired.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function access_token_expired() {
|
||||
$access_token = $this->get_access_token();
|
||||
|
||||
if ( current_time( 'timestamp' ) >= $access_token['expires'] ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->setAccessToken( json_encode( $access_token ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Getting the current access token from the options
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
private function get_access_token() {
|
||||
return get_option( $this->option_access_token, array( 'access_token' => false, 'expires' => 0 ) );
|
||||
}
|
||||
|
||||
}
|
64
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/class-api-google.php
vendored
Normal file
64
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/class-api-google.php
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
class Yoast_Api_Google {
|
||||
|
||||
/**
|
||||
* This class will be loaded when someone calls the API library with the Google analytics module
|
||||
*/
|
||||
public function __construct() {
|
||||
spl_autoload_register( array( $this, 'autoload_api_google_files' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Autoload the API Google class
|
||||
*
|
||||
* @param string $class_name - The class that should be loaded
|
||||
*/
|
||||
private function autoload_api_google_files( $class_name ) {
|
||||
$path = dirname( __FILE__ );
|
||||
$class_name = strtolower( $class_name );
|
||||
$oauth_files = array(
|
||||
// Main requires
|
||||
'yoast_google_client' => 'google/Google_Client',
|
||||
'yoast_api_google_client' => 'class-api-google-client',
|
||||
|
||||
// Requires in classes
|
||||
'yoast_google_auth' => 'google/auth/Google_Auth',
|
||||
'yoast_google_assertion' => 'google/auth/Google_AssertionCredentials',
|
||||
'yoast_google_signer' => 'google/auth/Google_Signer',
|
||||
'yoast_google_p12signer' => 'google/auth/Google_P12Signer',
|
||||
'yoast_google_authnone' => 'google/auth/Google_AuthNone',
|
||||
'yoast_google_oauth2' => 'google/auth/Google_OAuth2',
|
||||
'yoast_google_verifier' => 'google/auth/Google_Verifier',
|
||||
'yoast_google_loginticket' => 'google/auth/Google_LoginTicket',
|
||||
'yoast_google_pemverifier' => 'google/auth/Google_PemVerifier',
|
||||
'yoast_google_model' => 'google/service/Google_Model',
|
||||
'yoast_google_service' => 'google/service/Google_Service',
|
||||
'yoast_google_serviceresource' => 'google/service/Google_ServiceResource',
|
||||
'yoast_google_utils' => 'google/service/Google_Utils',
|
||||
'yoast_google_batchrequest' => 'google/service/Google_BatchRequest',
|
||||
'yoast_google_mediafileupload' => 'google/service/Google_MediaFileUpload',
|
||||
'yoast_google_uritemplate' => 'google/external/URITemplateParser',
|
||||
'yoast_google_cache' => 'google/cache/Google_Cache',
|
||||
|
||||
// Requests
|
||||
'yoast_google_cacheparser' => 'google/io/Google_CacheParser',
|
||||
'yoast_google_io' => 'google/io/Google_IO',
|
||||
'yoast_google_httprequest' => 'google/io/Google_HttpRequest',
|
||||
'yoast_google_rest' => 'google/io/Google_REST',
|
||||
|
||||
// Wordpress
|
||||
'yoast_google_wpio' => 'google/io/Google_WPIO',
|
||||
'yoast_google_wpcache' => 'google/cache/Google_WPCache',
|
||||
);
|
||||
|
||||
if ( ! empty( $oauth_files[$class_name] ) ) {
|
||||
if ( file_exists( $path . '/' . $oauth_files[$class_name] . '.php' ) ) {
|
||||
require_once( $path . '/' . $oauth_files[$class_name] . '.php' );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
49
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/class-api-libs.php
vendored
Normal file
49
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/class-api-libs.php
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Include this class to use the Yoast_Api_Libs, you can include this as a submodule in your project
|
||||
* and you just have to autoload this class
|
||||
*
|
||||
*
|
||||
* NAMING CONVENTIONS
|
||||
* - Register 'oauth' by using $this->register_api_library()
|
||||
* - Create folder 'oauth'
|
||||
* - Create file 'class-api-oauth.php'
|
||||
* - Class name should be 'Yoast_Api_Oauth'
|
||||
*/
|
||||
class Yoast_Api_Libs {
|
||||
|
||||
/**
|
||||
* Current version number of the API-libs
|
||||
*/
|
||||
const version = '2.0';
|
||||
|
||||
/**
|
||||
* Check if minimal required version is met.
|
||||
*
|
||||
* @param string $minimal_required_version
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public function __construct( $minimal_required_version ) {
|
||||
$this->load_google();
|
||||
|
||||
if ( ! version_compare( self::version, $minimal_required_version, '>=' )) {
|
||||
throw new Exception( 'required_version' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loading the google api library which will set the autoloader
|
||||
*/
|
||||
private function load_google() {
|
||||
if ( ! class_exists('Yoast_Api_Google', false) ) {
|
||||
// Require the file
|
||||
require_once dirname( __FILE__ ) . '/' . 'class-api-google.php';
|
||||
|
||||
// Initialize the Google API Class to set the autoloader
|
||||
new Yoast_Api_Google();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
457
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/Google_Client.php
vendored
Normal file
457
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/Google_Client.php
vendored
Normal file
@ -0,0 +1,457 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
// Check for the json extension, the Google APIs PHP Client won't function
|
||||
// without it.
|
||||
if (! function_exists('json_decode')) {
|
||||
throw new Exception('Google PHP API Client requires the JSON PHP extension');
|
||||
}
|
||||
|
||||
if (! function_exists('http_build_query')) {
|
||||
throw new Exception('Google PHP API Client requires http_build_query()');
|
||||
}
|
||||
|
||||
if (! ini_get('date.timezone') && function_exists('date_default_timezone_set')) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
|
||||
// hack around with the include paths a bit so the library 'just works'
|
||||
set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path());
|
||||
|
||||
require_once "config.php";
|
||||
// If a local configuration file is found, merge it's values with the default configuration
|
||||
if (file_exists(dirname(__FILE__) . '/local_config.php')) {
|
||||
$defaultConfig = $apiConfig;
|
||||
require_once( dirname( __FILE__ ) . '/local_config.php' );
|
||||
$apiConfig = array_merge( $defaultConfig, $apiConfig );
|
||||
}
|
||||
|
||||
/**
|
||||
* The Google API Client
|
||||
* http://code.google.com/p/google-api-php-client/
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_Client {
|
||||
/**
|
||||
* @static
|
||||
* @var Yoast_Google_Auth $auth
|
||||
*/
|
||||
static $auth;
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @var Yoast_Google_IO $io
|
||||
*/
|
||||
static $io;
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @var Yoast_Google_Cache $cache
|
||||
*/
|
||||
static $cache;
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @var boolean $useBatch
|
||||
*/
|
||||
static $useBatch = false;
|
||||
|
||||
/** @var array $scopes */
|
||||
protected $scopes = array();
|
||||
|
||||
/** @var bool $useObjects */
|
||||
protected $useObjects = false;
|
||||
|
||||
// definitions of services that are discovered.
|
||||
protected $services = array();
|
||||
|
||||
// Used to track authenticated state, can't discover services after doing authenticate()
|
||||
private $authenticated = false;
|
||||
|
||||
public function __construct($config = array()) {
|
||||
global $apiConfig;
|
||||
$apiConfig = array_merge($apiConfig, $config);
|
||||
self::$cache = new $apiConfig['cacheClass']();
|
||||
self::$auth = new $apiConfig['authClass']();
|
||||
self::$io = new $apiConfig['ioClass']();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a service
|
||||
*/
|
||||
public function addService($service, $version = false) {
|
||||
global $apiConfig;
|
||||
if ($this->authenticated) {
|
||||
throw new Yoast_Google_Exception('Cant add services after having authenticated');
|
||||
}
|
||||
$this->services[$service] = array();
|
||||
if (isset($apiConfig['services'][$service])) {
|
||||
// Merge the service descriptor with the default values
|
||||
$this->services[$service] = array_merge($this->services[$service], $apiConfig['services'][$service]);
|
||||
}
|
||||
}
|
||||
|
||||
public function authenticate($code = null) {
|
||||
$service = $this->prepareService();
|
||||
$this->authenticated = true;
|
||||
return self::$auth->authenticate($service, $code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @visible For Testing
|
||||
*/
|
||||
public function prepareService() {
|
||||
$service = array();
|
||||
$scopes = array();
|
||||
if ($this->scopes) {
|
||||
$scopes = $this->scopes;
|
||||
} else {
|
||||
foreach ($this->services as $key => $val) {
|
||||
if (isset($val['scope'])) {
|
||||
if (is_array($val['scope'])) {
|
||||
$scopes = array_merge($val['scope'], $scopes);
|
||||
} else {
|
||||
$scopes[] = $val['scope'];
|
||||
}
|
||||
} else {
|
||||
$scopes[] = 'https://www.googleapis.com/auth/' . $key;
|
||||
}
|
||||
unset($val['discoveryURI']);
|
||||
unset($val['scope']);
|
||||
$service = array_merge($service, $val);
|
||||
}
|
||||
}
|
||||
$service['scope'] = implode(' ', $scopes);
|
||||
return $service;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 access token using the string that resulted from calling authenticate()
|
||||
* or Yoast_Google_Client#getAccessToken().
|
||||
* @param string $accessToken JSON encoded string containing in the following format:
|
||||
* {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
|
||||
* "expires_in":3600, "id_token":"TOKEN", "created":1320790426}
|
||||
*/
|
||||
public function setAccessToken($accessToken) {
|
||||
if ($accessToken == null || 'null' == $accessToken) {
|
||||
$accessToken = null;
|
||||
}
|
||||
self::$auth->setAccessToken($accessToken);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the type of Auth class the client should use.
|
||||
* @param string $authClassName
|
||||
*/
|
||||
public function setAuthClass($authClassName) {
|
||||
self::$auth = new $authClassName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct the OAuth 2.0 authorization request URI.
|
||||
* @return string
|
||||
*/
|
||||
public function createAuthUrl() {
|
||||
$service = $this->prepareService();
|
||||
return self::$auth->createAuthUrl($service['scope']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 access token.
|
||||
* @return string $accessToken JSON encoded string in the following format:
|
||||
* {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
|
||||
* "expires_in":3600,"id_token":"TOKEN", "created":1320790426}
|
||||
*/
|
||||
public function getAccessToken() {
|
||||
$token = self::$auth->getAccessToken();
|
||||
return (null == $token || 'null' == $token) ? null : $token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the access_token is expired.
|
||||
* @return bool Returns True if the access_token is expired.
|
||||
*/
|
||||
public function isAccessTokenExpired() {
|
||||
return self::$auth->isAccessTokenExpired();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the developer key to use, these are obtained through the API Console.
|
||||
* @see http://code.google.com/apis/console-help/#generatingdevkeys
|
||||
* @param string $developerKey
|
||||
*/
|
||||
public function setDeveloperKey($developerKey) {
|
||||
self::$auth->setDeveloperKey($developerKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set OAuth 2.0 "state" parameter to achieve per-request customization.
|
||||
* @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2
|
||||
* @param string $state
|
||||
*/
|
||||
public function setState($state) {
|
||||
self::$auth->setState($state);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $accessType Possible values for access_type include:
|
||||
* {@code "offline"} to request offline access from the user. (This is the default value)
|
||||
* {@code "online"} to request online access from the user.
|
||||
*/
|
||||
public function setAccessType($accessType) {
|
||||
self::$auth->setAccessType($accessType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $approvalPrompt Possible values for approval_prompt include:
|
||||
* {@code "force"} to force the approval UI to appear. (This is the default value)
|
||||
* {@code "auto"} to request auto-approval when possible.
|
||||
*/
|
||||
public function setApprovalPrompt($approvalPrompt) {
|
||||
self::$auth->setApprovalPrompt($approvalPrompt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the application name, this is included in the User-Agent HTTP header.
|
||||
* @param string $applicationName
|
||||
*/
|
||||
public function setApplicationName($applicationName) {
|
||||
global $apiConfig;
|
||||
$apiConfig['application_name'] = $applicationName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 Client ID.
|
||||
* @param string $clientId
|
||||
*/
|
||||
public function setClientId($clientId) {
|
||||
global $apiConfig;
|
||||
$apiConfig['oauth2_client_id'] = $clientId;
|
||||
self::$auth->clientId = $clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 Client ID.
|
||||
*/
|
||||
public function getClientId() {
|
||||
return self::$auth->clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 Client Secret.
|
||||
* @param string $clientSecret
|
||||
*/
|
||||
public function setClientSecret($clientSecret) {
|
||||
global $apiConfig;
|
||||
$apiConfig['oauth2_client_secret'] = $clientSecret;
|
||||
self::$auth->clientSecret = $clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 Client Secret.
|
||||
*/
|
||||
public function getClientSecret() {
|
||||
return self::$auth->clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OAuth 2.0 Redirect URI.
|
||||
* @param string $redirectUri
|
||||
*/
|
||||
public function setRedirectUri($redirectUri) {
|
||||
global $apiConfig;
|
||||
$apiConfig['oauth2_redirect_uri'] = $redirectUri;
|
||||
self::$auth->redirectUri = $redirectUri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the OAuth 2.0 Redirect URI.
|
||||
*/
|
||||
public function getRedirectUri() {
|
||||
return self::$auth->redirectUri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a fresh OAuth 2.0 access token with the given refresh token.
|
||||
* @param string $refreshToken
|
||||
* @return void
|
||||
*/
|
||||
public function refreshToken($refreshToken) {
|
||||
self::$auth->refreshToken($refreshToken);
|
||||
}
|
||||
|
||||
/**
|
||||
* Revoke an OAuth2 access token or refresh token. This method will revoke the current access
|
||||
* token, if a token isn't provided.
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @param string|null $token The token (access token or a refresh token) that should be revoked.
|
||||
* @return boolean Returns True if the revocation was successful, otherwise False.
|
||||
*/
|
||||
public function revokeToken($token = null) {
|
||||
self::$auth->revokeToken($token);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify an id_token. This method will verify the current id_token, if one
|
||||
* isn't provided.
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @param string|null $token The token (id_token) that should be verified.
|
||||
* @return Yoast_Google_LoginTicket Returns an apiLoginTicket if the verification was
|
||||
* successful.
|
||||
*/
|
||||
public function verifyIdToken($token = null) {
|
||||
return self::$auth->verifyIdToken($token);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Yoast_Google_AssertionCredentials $creds
|
||||
* @return void
|
||||
*/
|
||||
public function setAssertionCredentials(Yoast_Google_AssertionCredentials $creds) {
|
||||
self::$auth->setAssertionCredentials($creds);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function allows you to overrule the automatically generated scopes,
|
||||
* so that you can ask for more or less permission in the auth flow
|
||||
* Set this before you call authenticate() though!
|
||||
* @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/moderator')
|
||||
*/
|
||||
public function setScopes($scopes) {
|
||||
$this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of scopes set on the client
|
||||
* @return array the list of scopes
|
||||
*
|
||||
*/
|
||||
public function getScopes() {
|
||||
return $this->scopes;
|
||||
}
|
||||
|
||||
/**
|
||||
* If 'plus.login' is included in the list of requested scopes, you can use
|
||||
* this method to define types of app activities that your app will write.
|
||||
* You can find a list of available types here:
|
||||
* @link https://developers.google.com/+/api/moment-types
|
||||
*
|
||||
* @param array $requestVisibleActions Array of app activity types
|
||||
*/
|
||||
public function setRequestVisibleActions($requestVisibleActions) {
|
||||
self::$auth->requestVisibleActions =
|
||||
join(" ", $requestVisibleActions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Declare if objects should be returned by the api service classes.
|
||||
*
|
||||
* @param boolean $useObjects True if objects should be returned by the service classes.
|
||||
* False if associative arrays should be returned (default behavior).
|
||||
* @experimental
|
||||
*/
|
||||
public function setUseObjects($useObjects) {
|
||||
global $apiConfig;
|
||||
$apiConfig['use_objects'] = $useObjects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Declare if objects should be returned by the api service classes.
|
||||
*
|
||||
* @param boolean $useBatch True if the experimental batch support should
|
||||
* be enabled. Defaults to False.
|
||||
* @experimental
|
||||
*/
|
||||
public function setUseBatch($useBatch) {
|
||||
self::$useBatch = $useBatch;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @return Yoast_Google_Auth the implementation of apiAuth.
|
||||
*/
|
||||
public static function getAuth() {
|
||||
return Yoast_Google_Client::$auth;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @return Yoast_Google_IO the implementation of apiIo.
|
||||
*/
|
||||
public static function getIo() {
|
||||
return Yoast_Google_Client::$io;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Yoast_Google_Cache the implementation of apiCache.
|
||||
*/
|
||||
public function getCache() {
|
||||
return Yoast_Google_Client::$cache;
|
||||
}
|
||||
}
|
||||
|
||||
// Exceptions that the Google PHP API Library can throw
|
||||
class Yoast_Google_Exception extends Exception {}
|
||||
class Yoast_Google_AuthException extends Yoast_Google_Exception {}
|
||||
class Yoast_Google_CacheException extends Yoast_Google_Exception {}
|
||||
class Yoast_Google_IOException extends Yoast_Google_Exception {}
|
||||
class Yoast_Google_ServiceException extends Yoast_Google_Exception {
|
||||
/**
|
||||
* Optional list of errors returned in a JSON body of an HTTP error response.
|
||||
*/
|
||||
protected $errors = array();
|
||||
|
||||
/**
|
||||
* Override default constructor to add ability to set $errors.
|
||||
*
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Exception|null $previous
|
||||
* @param [{string, string}] errors List of errors returned in an HTTP
|
||||
* response. Defaults to [].
|
||||
*/
|
||||
public function __construct($message, $code = 0, Exception $previous = null,
|
||||
$errors = array()) {
|
||||
if(version_compare(PHP_VERSION, '5.3.0') >= 0) {
|
||||
parent::__construct($message, $code, $previous);
|
||||
} else {
|
||||
parent::__construct($message, $code);
|
||||
}
|
||||
|
||||
$this->errors = $errors;
|
||||
}
|
||||
|
||||
/**
|
||||
* An example of the possible errors returned.
|
||||
*
|
||||
* {
|
||||
* "domain": "global",
|
||||
* "reason": "authError",
|
||||
* "message": "Invalid Credentials",
|
||||
* "locationType": "header",
|
||||
* "location": "Authorization",
|
||||
* }
|
||||
*
|
||||
* @return [{string, string}] List of errors return in an HTTP response or [].
|
||||
*/
|
||||
public function getErrors() {
|
||||
return $this->errors;
|
||||
}
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Credentials object used for OAuth 2.0 Signed JWT assertion grants.
|
||||
*
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_AssertionCredentials {
|
||||
const MAX_TOKEN_LIFETIME_SECS = 3600;
|
||||
|
||||
public $serviceAccountName;
|
||||
public $scopes;
|
||||
public $privateKey;
|
||||
public $privateKeyPassword;
|
||||
public $assertionType;
|
||||
public $sub;
|
||||
/**
|
||||
* @deprecated
|
||||
* @link http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06
|
||||
*/
|
||||
public $prn;
|
||||
|
||||
/**
|
||||
* @param $serviceAccountName
|
||||
* @param $scopes array List of scopes
|
||||
* @param $privateKey
|
||||
* @param string $privateKeyPassword
|
||||
* @param string $assertionType
|
||||
* @param bool|string $sub The email address of the user for which the
|
||||
* application is requesting delegated access.
|
||||
*/
|
||||
public function __construct(
|
||||
$serviceAccountName,
|
||||
$scopes,
|
||||
$privateKey,
|
||||
$privateKeyPassword = 'notasecret',
|
||||
$assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer',
|
||||
$sub = false) {
|
||||
$this->serviceAccountName = $serviceAccountName;
|
||||
$this->scopes = is_string($scopes) ? $scopes : implode(' ', $scopes);
|
||||
$this->privateKey = $privateKey;
|
||||
$this->privateKeyPassword = $privateKeyPassword;
|
||||
$this->assertionType = $assertionType;
|
||||
$this->sub = $sub;
|
||||
$this->prn = $sub;
|
||||
}
|
||||
|
||||
public function generateAssertion() {
|
||||
$now = time();
|
||||
|
||||
$jwtParams = array(
|
||||
'aud' => Yoast_Google_OAuth2::OAUTH2_TOKEN_URI,
|
||||
'scope' => $this->scopes,
|
||||
'iat' => $now,
|
||||
'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS,
|
||||
'iss' => $this->serviceAccountName,
|
||||
);
|
||||
|
||||
if ($this->sub !== false) {
|
||||
$jwtParams['sub'] = $this->sub;
|
||||
} else if ($this->prn !== false) {
|
||||
$jwtParams['prn'] = $this->prn;
|
||||
}
|
||||
|
||||
return $this->makeSignedJwt($jwtParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a signed JWT.
|
||||
* @param array $payload
|
||||
* @return string The signed JWT.
|
||||
*/
|
||||
private function makeSignedJwt($payload) {
|
||||
$header = array('typ' => 'JWT', 'alg' => 'RS256');
|
||||
|
||||
$segments = array(
|
||||
Yoast_Google_Utils::urlSafeB64Encode(json_encode($header)),
|
||||
Yoast_Google_Utils::urlSafeB64Encode(json_encode($payload))
|
||||
);
|
||||
|
||||
$signingInput = implode('.', $segments);
|
||||
$signer = new Yoast_Google_P12Signer($this->privateKey, $this->privateKeyPassword);
|
||||
$signature = $signer->sign($signingInput);
|
||||
$segments[] = Yoast_Google_Utils::urlSafeB64Encode($signature);
|
||||
|
||||
return implode(".", $segments);
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Abstract class for the Authentication in the API client
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
*
|
||||
*/
|
||||
abstract class Yoast_Google_Auth {
|
||||
abstract public function authenticate($service);
|
||||
abstract public function sign(Yoast_Google_HttpRequest $request);
|
||||
abstract public function createAuthUrl($scope);
|
||||
|
||||
abstract public function getAccessToken();
|
||||
abstract public function setAccessToken($accessToken);
|
||||
abstract public function setDeveloperKey($developerKey);
|
||||
abstract public function refreshToken($refreshToken);
|
||||
abstract public function revokeToken();
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Do-nothing authentication implementation, use this if you want to make un-authenticated calls
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_AuthNone extends Yoast_Google_Auth {
|
||||
public $key = null;
|
||||
|
||||
public function __construct() {
|
||||
global $apiConfig;
|
||||
if (!empty($apiConfig['developer_key'])) {
|
||||
$this->setDeveloperKey($apiConfig['developer_key']);
|
||||
}
|
||||
}
|
||||
|
||||
public function setDeveloperKey($key) {$this->key = $key;}
|
||||
public function authenticate($service) {/*noop*/}
|
||||
public function setAccessToken($accessToken) {/* noop*/}
|
||||
public function getAccessToken() {return null;}
|
||||
public function createAuthUrl($scope) {return null;}
|
||||
public function refreshToken($refreshToken) {/* noop*/}
|
||||
public function revokeToken() {/* noop*/}
|
||||
|
||||
public function sign(Yoast_Google_HttpRequest $request) {
|
||||
if ($this->key) {
|
||||
$request->setUrl($request->getUrl() . ((strpos($request->getUrl(), '?') === false) ? '?' : '&')
|
||||
. 'key='.urlencode($this->key));
|
||||
}
|
||||
return $request;
|
||||
}
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class to hold information about an authenticated login.
|
||||
*
|
||||
* @author Brian Eaton <beaton@google.com>
|
||||
*/
|
||||
class Yoast_Google_LoginTicket {
|
||||
const USER_ATTR = "id";
|
||||
|
||||
// Information from id token envelope.
|
||||
private $envelope;
|
||||
|
||||
// Information from id token payload.
|
||||
private $payload;
|
||||
|
||||
/**
|
||||
* Creates a user based on the supplied token.
|
||||
*
|
||||
* @param string $envelope Header from a verified authentication token.
|
||||
* @param string $payload Information from a verified authentication token.
|
||||
*/
|
||||
public function __construct($envelope, $payload) {
|
||||
$this->envelope = $envelope;
|
||||
$this->payload = $payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the numeric identifier for the user.
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @return
|
||||
*/
|
||||
public function getUserId() {
|
||||
if (array_key_exists(self::USER_ATTR, $this->payload)) {
|
||||
return $this->payload[self::USER_ATTR];
|
||||
}
|
||||
throw new Yoast_Google_AuthException("No user_id in token");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns attributes from the login ticket. This can contain
|
||||
* various information about the user session.
|
||||
* @return array
|
||||
*/
|
||||
public function getAttributes() {
|
||||
return array("envelope" => $this->envelope, "payload" => $this->payload);
|
||||
}
|
||||
}
|
451
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/auth/Google_OAuth2.php
vendored
Normal file
451
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/auth/Google_OAuth2.php
vendored
Normal file
@ -0,0 +1,451 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2008 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Authentication class that deals with the OAuth 2 web-server authentication flow
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*
|
||||
*/
|
||||
class Yoast_Google_OAuth2 extends Yoast_Google_Auth {
|
||||
public $clientId;
|
||||
public $clientSecret;
|
||||
public $developerKey;
|
||||
public $token;
|
||||
public $redirectUri;
|
||||
public $state;
|
||||
public $accessType = 'offline';
|
||||
public $approvalPrompt = 'force';
|
||||
public $requestVisibleActions;
|
||||
|
||||
/** @var Yoast_Google_AssertionCredentials $assertionCredentials */
|
||||
public $assertionCredentials;
|
||||
|
||||
const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke';
|
||||
const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token';
|
||||
const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth';
|
||||
const OAUTH2_FEDERATED_SIGNON_CERTS_URL = 'https://www.googleapis.com/oauth2/v1/certs';
|
||||
const CLOCK_SKEW_SECS = 300; // five minutes in seconds
|
||||
const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds
|
||||
const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds
|
||||
|
||||
/**
|
||||
* Instantiates the class, but does not initiate the login flow, leaving it
|
||||
* to the discretion of the caller (which is done by calling authenticate()).
|
||||
*/
|
||||
public function __construct() {
|
||||
global $apiConfig;
|
||||
|
||||
if (! empty($apiConfig['developer_key'])) {
|
||||
$this->developerKey = $apiConfig['developer_key'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_client_id'])) {
|
||||
$this->clientId = $apiConfig['oauth2_client_id'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_client_secret'])) {
|
||||
$this->clientSecret = $apiConfig['oauth2_client_secret'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_redirect_uri'])) {
|
||||
$this->redirectUri = $apiConfig['oauth2_redirect_uri'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_access_type'])) {
|
||||
$this->accessType = $apiConfig['oauth2_access_type'];
|
||||
}
|
||||
|
||||
if (! empty($apiConfig['oauth2_approval_prompt'])) {
|
||||
$this->approvalPrompt = $apiConfig['oauth2_approval_prompt'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $service
|
||||
* @param string|null $code
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @return string
|
||||
*/
|
||||
public function authenticate($service, $code = null) {
|
||||
if (!$code && isset($_GET['code'])) {
|
||||
$code = $_GET['code'];
|
||||
}
|
||||
|
||||
|
||||
if ($code) {
|
||||
// We got here from the redirect from a successful authorization grant, fetch the access token
|
||||
$request = Yoast_Google_Client::$io->makeRequest(new Yoast_Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), array(
|
||||
'code' => $code,
|
||||
'grant_type' => 'authorization_code',
|
||||
'redirect_uri' => $this->redirectUri,
|
||||
'client_id' => $this->clientId,
|
||||
'client_secret' => $this->clientSecret
|
||||
)));
|
||||
|
||||
|
||||
if ($request->getResponseHttpCode() == 200) {
|
||||
$this->setAccessToken($request->getResponseBody());
|
||||
$this->token['created'] = time();
|
||||
return $this->getAccessToken();
|
||||
} else {
|
||||
$response = $request->getResponseBody();
|
||||
$decodedResponse = json_decode($response, true);
|
||||
if ($decodedResponse != null && $decodedResponse['error']) {
|
||||
$response = $decodedResponse['error'];
|
||||
}
|
||||
throw new Yoast_Google_AuthException("Error fetching OAuth2 access token, message: '$response'", $request->getResponseHttpCode());
|
||||
}
|
||||
}
|
||||
|
||||
$authUrl = $this->createAuthUrl($service['scope']);
|
||||
header('Location: ' . $authUrl);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a URL to obtain user authorization.
|
||||
* The authorization endpoint allows the user to first
|
||||
* authenticate, and then grant/deny the access request.
|
||||
* @param string $scope The scope is expressed as a list of space-delimited strings.
|
||||
* @return string
|
||||
*/
|
||||
public function createAuthUrl($scope) {
|
||||
$params = array(
|
||||
'response_type=code',
|
||||
'redirect_uri=' . urlencode($this->redirectUri),
|
||||
'client_id=' . urlencode($this->clientId),
|
||||
'scope=' . urlencode($scope),
|
||||
'access_type=' . urlencode($this->accessType),
|
||||
'approval_prompt=' . urlencode($this->approvalPrompt),
|
||||
);
|
||||
|
||||
// if the list of scopes contains plus.login, add request_visible_actions
|
||||
// to auth URL
|
||||
if(strpos($scope, 'plus.login') && count($this->requestVisibleActions) > 0) {
|
||||
$params[] = 'request_visible_actions=' .
|
||||
urlencode($this->requestVisibleActions);
|
||||
}
|
||||
|
||||
if (isset($this->state)) {
|
||||
$params[] = 'state=' . urlencode($this->state);
|
||||
}
|
||||
$params = implode('&', $params);
|
||||
return self::OAUTH2_AUTH_URL . "?$params";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $token
|
||||
* @throws Yoast_Google_AuthException
|
||||
*/
|
||||
public function setAccessToken($token) {
|
||||
$token = json_decode($token, true);
|
||||
if ($token == null) {
|
||||
throw new Yoast_Google_AuthException('Could not json decode the token');
|
||||
}
|
||||
if (! isset($token['access_token'])) {
|
||||
throw new Yoast_Google_AuthException("Invalid token format");
|
||||
}
|
||||
$this->token = $token;
|
||||
}
|
||||
|
||||
public function getAccessToken() {
|
||||
return json_encode($this->token);
|
||||
}
|
||||
|
||||
public function setDeveloperKey($developerKey) {
|
||||
$this->developerKey = $developerKey;
|
||||
}
|
||||
|
||||
public function setState($state) {
|
||||
$this->state = $state;
|
||||
}
|
||||
|
||||
public function setAccessType($accessType) {
|
||||
$this->accessType = $accessType;
|
||||
}
|
||||
|
||||
public function setApprovalPrompt($approvalPrompt) {
|
||||
$this->approvalPrompt = $approvalPrompt;
|
||||
}
|
||||
|
||||
public function setAssertionCredentials(Yoast_Google_AssertionCredentials $creds) {
|
||||
$this->assertionCredentials = $creds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Include an accessToken in a given apiHttpRequest.
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return Yoast_Google_HttpRequest
|
||||
* @throws Yoast_Google_AuthException
|
||||
*/
|
||||
public function sign(Yoast_Google_HttpRequest $request) {
|
||||
// add the developer key to the request before signing it
|
||||
if ($this->developerKey) {
|
||||
$requestUrl = $request->getUrl();
|
||||
$requestUrl .= (strpos($request->getUrl(), '?') === false) ? '?' : '&';
|
||||
$requestUrl .= 'key=' . urlencode($this->developerKey);
|
||||
$request->setUrl($requestUrl);
|
||||
}
|
||||
|
||||
// Cannot sign the request without an OAuth access token.
|
||||
if (null == $this->token && null == $this->assertionCredentials) {
|
||||
return $request;
|
||||
}
|
||||
|
||||
// Check if the token is set to expire in the next 30 seconds
|
||||
// (or has already expired).
|
||||
if ($this->isAccessTokenExpired()) {
|
||||
if ($this->assertionCredentials) {
|
||||
$this->refreshTokenWithAssertion();
|
||||
} else {
|
||||
if (! array_key_exists('refresh_token', $this->token)) {
|
||||
throw new Yoast_Google_AuthException("The OAuth 2.0 access token has expired, "
|
||||
. "and a refresh token is not available. Refresh tokens are not "
|
||||
. "returned for responses that were auto-approved.");
|
||||
}
|
||||
$this->refreshToken($this->token['refresh_token']);
|
||||
}
|
||||
}
|
||||
|
||||
// Add the OAuth2 header to the request
|
||||
$request->setRequestHeaders(
|
||||
array('Authorization' => 'Bearer ' . $this->token['access_token'])
|
||||
);
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a fresh access token with the given refresh token.
|
||||
* @param string $refreshToken
|
||||
* @return void
|
||||
*/
|
||||
public function refreshToken($refreshToken) {
|
||||
$this->refreshTokenRequest(array(
|
||||
'client_id' => $this->clientId,
|
||||
'client_secret' => $this->clientSecret,
|
||||
'refresh_token' => $refreshToken,
|
||||
'grant_type' => 'refresh_token'
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a fresh access token with a given assertion token.
|
||||
* @param Yoast_Google_AssertionCredentials $assertionCredentials optional.
|
||||
* @return void
|
||||
*/
|
||||
public function refreshTokenWithAssertion($assertionCredentials = null) {
|
||||
if (!$assertionCredentials) {
|
||||
$assertionCredentials = $this->assertionCredentials;
|
||||
}
|
||||
|
||||
$this->refreshTokenRequest(array(
|
||||
'grant_type' => 'assertion',
|
||||
'assertion_type' => $assertionCredentials->assertionType,
|
||||
'assertion' => $assertionCredentials->generateAssertion(),
|
||||
));
|
||||
}
|
||||
|
||||
private function refreshTokenRequest($params) {
|
||||
$http = new Yoast_Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), $params);
|
||||
$request = Yoast_Google_Client::$io->makeRequest($http);
|
||||
|
||||
$code = $request->getResponseHttpCode();
|
||||
$body = $request->getResponseBody();
|
||||
if (200 == $code) {
|
||||
$token = json_decode($body, true);
|
||||
if ($token == null) {
|
||||
throw new Yoast_Google_AuthException("Could not json decode the access token");
|
||||
}
|
||||
|
||||
if (! isset($token['access_token']) || ! isset($token['expires_in'])) {
|
||||
throw new Yoast_Google_AuthException("Invalid token format");
|
||||
}
|
||||
|
||||
$this->token['access_token'] = $token['access_token'];
|
||||
$this->token['expires_in'] = $token['expires_in'];
|
||||
$this->token['created'] = time();
|
||||
} else {
|
||||
throw new Yoast_Google_AuthException("Error refreshing the OAuth2 token, message: '$body'", $code);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Revoke an OAuth2 access token or refresh token. This method will revoke the current access
|
||||
* token, if a token isn't provided.
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @param string|null $token The token (access token or a refresh token) that should be revoked.
|
||||
* @return boolean Returns True if the revocation was successful, otherwise False.
|
||||
*/
|
||||
public function revokeToken($token = null) {
|
||||
if (!$token) {
|
||||
$token = $this->token['access_token'];
|
||||
}
|
||||
$request = new Yoast_Google_HttpRequest(self::OAUTH2_REVOKE_URI, 'POST', array(), "token=$token");
|
||||
$response = Yoast_Google_Client::$io->makeRequest($request);
|
||||
$code = $response->getResponseHttpCode();
|
||||
if ($code == 200) {
|
||||
$this->token = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the access_token is expired.
|
||||
* @return bool Returns True if the access_token is expired.
|
||||
*/
|
||||
public function isAccessTokenExpired() {
|
||||
if (null == $this->token) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the token is set to expire in the next 30 seconds.
|
||||
$expired = ($this->token['created']
|
||||
+ ($this->token['expires_in'] - 30)) < time();
|
||||
|
||||
return $expired;
|
||||
}
|
||||
|
||||
// Gets federated sign-on certificates to use for verifying identity tokens.
|
||||
// Returns certs as array structure, where keys are key ids, and values
|
||||
// are PEM encoded certificates.
|
||||
private function getFederatedSignOnCerts() {
|
||||
// This relies on makeRequest caching certificate responses.
|
||||
$request = Yoast_Google_Client::$io->makeRequest(new Yoast_Google_HttpRequest(
|
||||
self::OAUTH2_FEDERATED_SIGNON_CERTS_URL));
|
||||
if ($request->getResponseHttpCode() == 200) {
|
||||
$certs = json_decode($request->getResponseBody(), true);
|
||||
if ($certs) {
|
||||
return $certs;
|
||||
}
|
||||
}
|
||||
throw new Yoast_Google_AuthException(
|
||||
"Failed to retrieve verification certificates: '" .
|
||||
$request->getResponseBody() . "'.",
|
||||
$request->getResponseHttpCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies an id token and returns the authenticated apiLoginTicket.
|
||||
* Throws an exception if the id token is not valid.
|
||||
* The audience parameter can be used to control which id tokens are
|
||||
* accepted. By default, the id token must have been issued to this OAuth2 client.
|
||||
*
|
||||
* @param $id_token
|
||||
* @param $audience
|
||||
* @return Yoast_Google_LoginTicket
|
||||
*/
|
||||
public function verifyIdToken($id_token = null, $audience = null) {
|
||||
if (!$id_token) {
|
||||
$id_token = $this->token['id_token'];
|
||||
}
|
||||
|
||||
$certs = $this->getFederatedSignonCerts();
|
||||
if (!$audience) {
|
||||
$audience = $this->clientId;
|
||||
}
|
||||
return $this->verifySignedJwtWithCerts($id_token, $certs, $audience);
|
||||
}
|
||||
|
||||
// Verifies the id token, returns the verified token contents.
|
||||
// Visible for testing.
|
||||
function verifySignedJwtWithCerts($jwt, $certs, $required_audience) {
|
||||
$segments = explode(".", $jwt);
|
||||
if (count($segments) != 3) {
|
||||
throw new Yoast_Google_AuthException("Wrong number of segments in token: $jwt");
|
||||
}
|
||||
$signed = $segments[0] . "." . $segments[1];
|
||||
$signature = Yoast_Google_Utils::urlSafeB64Decode($segments[2]);
|
||||
|
||||
// Parse envelope.
|
||||
$envelope = json_decode(Yoast_Google_Utils::urlSafeB64Decode($segments[0]), true);
|
||||
if (!$envelope) {
|
||||
throw new Yoast_Google_AuthException("Can't parse token envelope: " . $segments[0]);
|
||||
}
|
||||
|
||||
// Parse token
|
||||
$json_body = Yoast_Google_Utils::urlSafeB64Decode($segments[1]);
|
||||
$payload = json_decode($json_body, true);
|
||||
if (!$payload) {
|
||||
throw new Yoast_Google_AuthException("Can't parse token payload: " . $segments[1]);
|
||||
}
|
||||
|
||||
// Check signature
|
||||
$verified = false;
|
||||
foreach ($certs as $keyName => $pem) {
|
||||
$public_key = new Yoast_Google_PemVerifier($pem);
|
||||
if ($public_key->verify($signed, $signature)) {
|
||||
$verified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$verified) {
|
||||
throw new Yoast_Google_AuthException("Invalid token signature: $jwt");
|
||||
}
|
||||
|
||||
// Check issued-at timestamp
|
||||
$iat = 0;
|
||||
if (array_key_exists("iat", $payload)) {
|
||||
$iat = $payload["iat"];
|
||||
}
|
||||
if (!$iat) {
|
||||
throw new Yoast_Google_AuthException("No issue time in token: $json_body");
|
||||
}
|
||||
$earliest = $iat - self::CLOCK_SKEW_SECS;
|
||||
|
||||
// Check expiration timestamp
|
||||
$now = time();
|
||||
$exp = 0;
|
||||
if (array_key_exists("exp", $payload)) {
|
||||
$exp = $payload["exp"];
|
||||
}
|
||||
if (!$exp) {
|
||||
throw new Yoast_Google_AuthException("No expiration time in token: $json_body");
|
||||
}
|
||||
if ($exp >= $now + self::MAX_TOKEN_LIFETIME_SECS) {
|
||||
throw new Yoast_Google_AuthException(
|
||||
"Expiration time too far in future: $json_body");
|
||||
}
|
||||
|
||||
$latest = $exp + self::CLOCK_SKEW_SECS;
|
||||
if ($now < $earliest) {
|
||||
throw new Yoast_Google_AuthException(
|
||||
"Token used too early, $now < $earliest: $json_body");
|
||||
}
|
||||
if ($now > $latest) {
|
||||
throw new Yoast_Google_AuthException(
|
||||
"Token used too late, $now > $latest: $json_body");
|
||||
}
|
||||
|
||||
// TODO(beaton): check issuer field?
|
||||
|
||||
// Check audience
|
||||
$aud = $payload["aud"];
|
||||
if ($aud != $required_audience) {
|
||||
throw new Yoast_Google_AuthException("Wrong recipient, $aud != $required_audience: $json_body");
|
||||
}
|
||||
|
||||
// All good.
|
||||
return new Yoast_Google_LoginTicket($envelope, $payload);
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Signs data.
|
||||
*
|
||||
* Only used for testing.
|
||||
*
|
||||
* @author Brian Eaton <beaton@google.com>
|
||||
*/
|
||||
class Yoast_Google_P12Signer extends Yoast_Google_Signer {
|
||||
// OpenSSL private key resource
|
||||
private $privateKey;
|
||||
|
||||
// Creates a new signer from a .p12 file.
|
||||
function __construct($p12, $password) {
|
||||
if (!function_exists('openssl_x509_read')) {
|
||||
throw new Exception(
|
||||
'The Google PHP API library needs the openssl PHP extension');
|
||||
}
|
||||
|
||||
// This throws on error
|
||||
$certs = array();
|
||||
if (!openssl_pkcs12_read($p12, $certs, $password)) {
|
||||
throw new Yoast_Google_AuthException("Unable to parse the p12 file. " .
|
||||
"Is this a .p12 file? Is the password correct? OpenSSL error: " .
|
||||
openssl_error_string());
|
||||
}
|
||||
// TODO(beaton): is this part of the contract for the openssl_pkcs12_read
|
||||
// method? What happens if there are multiple private keys? Do we care?
|
||||
if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) {
|
||||
throw new Yoast_Google_AuthException("No private key found in p12 file.");
|
||||
}
|
||||
$this->privateKey = openssl_pkey_get_private($certs["pkey"]);
|
||||
if (!$this->privateKey) {
|
||||
throw new Yoast_Google_AuthException("Unable to load private key in ");
|
||||
}
|
||||
}
|
||||
|
||||
function __destruct() {
|
||||
if ($this->privateKey) {
|
||||
openssl_pkey_free($this->privateKey);
|
||||
}
|
||||
}
|
||||
|
||||
function sign($data) {
|
||||
if(version_compare(PHP_VERSION, '5.3.0') < 0) {
|
||||
throw new Yoast_Google_AuthException(
|
||||
"PHP 5.3.0 or higher is required to use service accounts.");
|
||||
}
|
||||
if (!openssl_sign($data, $signature, $this->privateKey, "sha256")) {
|
||||
throw new Yoast_Google_AuthException("Unable to sign data");
|
||||
}
|
||||
return $signature;
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Verifies signatures using PEM encoded certificates.
|
||||
*
|
||||
* @author Brian Eaton <beaton@google.com>
|
||||
*/
|
||||
class Yoast_Google_PemVerifier extends Yoast_Google_Verifier {
|
||||
private $publicKey;
|
||||
|
||||
/**
|
||||
* Constructs a verifier from the supplied PEM-encoded certificate.
|
||||
*
|
||||
* $pem: a PEM encoded certificate (not a file).
|
||||
* @param $pem
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @throws Yoast_Google_Exception
|
||||
*/
|
||||
function __construct($pem) {
|
||||
if (!function_exists('openssl_x509_read')) {
|
||||
throw new Yoast_Google_Exception('Google API PHP client needs the openssl PHP extension');
|
||||
}
|
||||
$this->publicKey = openssl_x509_read($pem);
|
||||
if (!$this->publicKey) {
|
||||
throw new Yoast_Google_AuthException("Unable to parse PEM: $pem");
|
||||
}
|
||||
}
|
||||
|
||||
function __destruct() {
|
||||
if ($this->publicKey) {
|
||||
openssl_x509_free($this->publicKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies the signature on data.
|
||||
*
|
||||
* Returns true if the signature is valid, false otherwise.
|
||||
* @param $data
|
||||
* @param $signature
|
||||
* @throws Yoast_Google_AuthException
|
||||
* @return bool
|
||||
*/
|
||||
function verify($data, $signature) {
|
||||
$status = openssl_verify($data, $signature, $this->publicKey, "sha256");
|
||||
if ($status === -1) {
|
||||
throw new Yoast_Google_AuthException('Signature verification error: ' . openssl_error_string());
|
||||
}
|
||||
return $status === 1;
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Signs data.
|
||||
*
|
||||
* @author Brian Eaton <beaton@google.com>
|
||||
*/
|
||||
abstract class Yoast_Google_Signer {
|
||||
/**
|
||||
* Signs data, returns the signature as binary data.
|
||||
*/
|
||||
abstract public function sign($data);
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Verifies signatures.
|
||||
*
|
||||
* @author Brian Eaton <beaton@google.com>
|
||||
*/
|
||||
abstract class Yoast_Google_Verifier {
|
||||
/**
|
||||
* Checks a signature, returns true if the signature is correct,
|
||||
* false otherwise.
|
||||
*/
|
||||
abstract public function verify($data, $signature);
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2008 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Abstract storage class
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
*/
|
||||
abstract class Yoast_Google_Cache {
|
||||
|
||||
/**
|
||||
* Retrieves the data for the given key, or false if they
|
||||
* key is unknown or expired
|
||||
*
|
||||
* @param String $key The key who's data to retrieve
|
||||
* @param boolean|int $expiration Expiration time in seconds
|
||||
*
|
||||
*/
|
||||
abstract function get($key, $expiration = false);
|
||||
|
||||
/**
|
||||
* Store the key => $value set. The $value is serialized
|
||||
* by this function so can be of any type
|
||||
*
|
||||
* @param string $key Key of the data
|
||||
* @param string $value data
|
||||
*/
|
||||
abstract function set($key, $value);
|
||||
|
||||
/**
|
||||
* Removes the key/data pair for the given $key
|
||||
*
|
||||
* @param String $key
|
||||
*/
|
||||
abstract function delete($key);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/*
|
||||
* This class implements the caching mechanism for WordPress
|
||||
*/
|
||||
class Yoast_Google_WPCache extends Yoast_Google_Cache {
|
||||
|
||||
/**
|
||||
* If wp_cache_get doesn't exists, include the file
|
||||
*
|
||||
*/
|
||||
public function __construct() {
|
||||
|
||||
if( ! function_exists('wp_cache_get') ) {
|
||||
require_once( ABSPATH . 'wp-includes/cache.php' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the data for the given key, or false if they
|
||||
* key is unknown or expired
|
||||
*
|
||||
* @param String $key The key who's data to retrieve
|
||||
* @param boolean|int $expiration - Expiration time in seconds
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
*/
|
||||
public function get($key, $expiration = false) {
|
||||
return wp_cache_get( $key );
|
||||
}
|
||||
|
||||
/**
|
||||
* Store the key => $value set. The $value is serialized
|
||||
* by this function so can be of any type
|
||||
*
|
||||
* @param string $key Key of the data
|
||||
* @param string $value data
|
||||
*/
|
||||
public function set($key, $value) {
|
||||
wp_cache_set( $key, $value ) ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the key/data pair for the given $key
|
||||
*
|
||||
* @param String $key
|
||||
*/
|
||||
public function delete($key) {
|
||||
wp_cache_delete( $key );
|
||||
}
|
||||
|
||||
|
||||
}
|
83
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/config.php
vendored
Normal file
83
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/config.php
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
global $apiConfig;
|
||||
$apiConfig = array(
|
||||
// True if objects should be returned by the service classes.
|
||||
// False if associative arrays should be returned (default behavior).
|
||||
'use_objects' => false,
|
||||
|
||||
// The application_name is included in the User-Agent HTTP header.
|
||||
'application_name' => '',
|
||||
|
||||
// OAuth2 Settings, you can get these keys at https://code.google.com/apis/console
|
||||
'oauth2_client_id' => '',
|
||||
'oauth2_client_secret' => '',
|
||||
'oauth2_redirect_uri' => '',
|
||||
|
||||
// The developer key, you get this at https://code.google.com/apis/console
|
||||
'developer_key' => '',
|
||||
|
||||
// Site name to show in the Google's OAuth 1 authentication screen.
|
||||
'site_name' => 'www.example.org',
|
||||
|
||||
// Which Authentication, Storage and HTTP IO classes to use.
|
||||
'authClass' => 'Yoast_Google_OAuth2',
|
||||
'ioClass' => 'Yoast_Google_WPIO',
|
||||
'cacheClass' => 'Yoast_Google_WPCache',
|
||||
|
||||
// Don't change these unless you're working against a special development or testing environment.
|
||||
'basePath' => 'https://www.googleapis.com',
|
||||
|
||||
// IO Class dependent configuration, you only have to configure the values
|
||||
// for the class that was configured as the ioClass above
|
||||
'ioFileCache_directory' =>
|
||||
(function_exists('sys_get_temp_dir') ?
|
||||
sys_get_temp_dir() . '/Google_Client' :
|
||||
'/tmp/Google_Client'),
|
||||
|
||||
// Definition of service specific values like scopes, oauth token URLs, etc
|
||||
/*
|
||||
'services' => array(
|
||||
'analytics' => array('scope' => 'https://www.googleapis.com/auth/analytics.readonly'),
|
||||
'calendar' => array(
|
||||
'scope' => array(
|
||||
"https://www.googleapis.com/auth/calendar",
|
||||
"https://www.googleapis.com/auth/calendar.readonly",
|
||||
)
|
||||
),
|
||||
'books' => array('scope' => 'https://www.googleapis.com/auth/books'),
|
||||
'latitude' => array(
|
||||
'scope' => array(
|
||||
'https://www.googleapis.com/auth/latitude.all.best',
|
||||
'https://www.googleapis.com/auth/latitude.all.city',
|
||||
)
|
||||
),
|
||||
'moderator' => array('scope' => 'https://www.googleapis.com/auth/moderator'),
|
||||
'oauth2' => array(
|
||||
'scope' => array(
|
||||
'https://www.googleapis.com/auth/userinfo.profile',
|
||||
'https://www.googleapis.com/auth/userinfo.email',
|
||||
)
|
||||
),
|
||||
'plus' => array('scope' => 'https://www.googleapis.com/auth/plus.login'),
|
||||
'siteVerification' => array('scope' => 'https://www.googleapis.com/auth/siteverification'),
|
||||
'tasks' => array('scope' => 'https://www.googleapis.com/auth/tasks'),
|
||||
'urlshortener' => array('scope' => 'https://www.googleapis.com/auth/urlshortener')
|
||||
)
|
||||
*/
|
||||
);
|
@ -0,0 +1,209 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (c) 2010 Kevin M Burns Jr, http://kevburnsjr.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* A URI Template Parser which is used by the apiREST class to resolve the REST requests
|
||||
* Blogpost: http://lab.kevburnsjr.com/php-uri-template-parser
|
||||
* Source: http://github.com/KevBurnsJr/php-uri-template-parser
|
||||
*/
|
||||
class URI_Template_Parser {
|
||||
|
||||
public static $operators = array('+', ';', '?', '/', '.');
|
||||
public static $reserved_operators = array('|', '!', '@');
|
||||
public static $explode_modifiers = array('+', '*');
|
||||
public static $partial_modifiers = array(':', '^');
|
||||
|
||||
public static $gen_delims = array(':', '/', '?', '#', '[', ']', '@');
|
||||
public static $gen_delims_pct = array('%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40');
|
||||
public static $sub_delims = array('!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=');
|
||||
public static $sub_delims_pct = array('%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D');
|
||||
public static $reserved;
|
||||
public static $reserved_pct;
|
||||
|
||||
public function __construct($template) {
|
||||
self::$reserved = array_merge(self::$gen_delims, self::$sub_delims);
|
||||
self::$reserved_pct = array_merge(self::$gen_delims_pct, self::$sub_delims_pct);
|
||||
$this->template = $template;
|
||||
}
|
||||
|
||||
public function expand($data) {
|
||||
// Modification to make this a bit more performant (since gettype is very slow)
|
||||
if (! is_array($data)) {
|
||||
$data = (array)$data;
|
||||
}
|
||||
/*
|
||||
// Original code, which uses a slow gettype() statement, kept in place for if the assumption that is_array always works here is incorrect
|
||||
switch (gettype($data)) {
|
||||
case "boolean":
|
||||
case "integer":
|
||||
case "double":
|
||||
case "string":
|
||||
case "object":
|
||||
$data = (array)$data;
|
||||
break;
|
||||
}
|
||||
*/
|
||||
|
||||
// Resolve template vars
|
||||
preg_match_all('/\{([^\}]*)\}/', $this->template, $em);
|
||||
|
||||
foreach ($em[1] as $i => $bare_expression) {
|
||||
preg_match('/^([\+\;\?\/\.]{1})?(.*)$/', $bare_expression, $lm);
|
||||
$exp = new StdClass();
|
||||
$exp->expression = $em[0][$i];
|
||||
$exp->operator = $lm[1];
|
||||
$exp->variable_list = $lm[2];
|
||||
$exp->varspecs = explode(',', $exp->variable_list);
|
||||
$exp->vars = array();
|
||||
foreach ($exp->varspecs as $varspec) {
|
||||
preg_match('/^([a-zA-Z0-9_]+)([\*\+]{1})?([\:\^][0-9-]+)?(\=[^,]+)?$/', $varspec, $vm);
|
||||
$var = new StdClass();
|
||||
$var->name = $vm[1];
|
||||
$var->modifier = isset($vm[2]) && $vm[2] ? $vm[2] : null;
|
||||
$var->modifier = isset($vm[3]) && $vm[3] ? $vm[3] : $var->modifier;
|
||||
$var->default = isset($vm[4]) ? substr($vm[4], 1) : null;
|
||||
$exp->vars[] = $var;
|
||||
}
|
||||
|
||||
// Add processing flags
|
||||
$exp->reserved = false;
|
||||
$exp->prefix = '';
|
||||
$exp->delimiter = ',';
|
||||
switch ($exp->operator) {
|
||||
case '+':
|
||||
$exp->reserved = 'true';
|
||||
break;
|
||||
case ';':
|
||||
$exp->prefix = ';';
|
||||
$exp->delimiter = ';';
|
||||
break;
|
||||
case '?':
|
||||
$exp->prefix = '?';
|
||||
$exp->delimiter = '&';
|
||||
break;
|
||||
case '/':
|
||||
$exp->prefix = '/';
|
||||
$exp->delimiter = '/';
|
||||
break;
|
||||
case '.':
|
||||
$exp->prefix = '.';
|
||||
$exp->delimiter = '.';
|
||||
break;
|
||||
}
|
||||
$expressions[] = $exp;
|
||||
}
|
||||
|
||||
// Expansion
|
||||
$this->expansion = $this->template;
|
||||
|
||||
foreach ($expressions as $exp) {
|
||||
$part = $exp->prefix;
|
||||
$exp->one_var_defined = false;
|
||||
foreach ($exp->vars as $var) {
|
||||
$val = '';
|
||||
if ($exp->one_var_defined && isset($data[$var->name])) {
|
||||
$part .= $exp->delimiter;
|
||||
}
|
||||
// Variable present
|
||||
if (isset($data[$var->name])) {
|
||||
$exp->one_var_defined = true;
|
||||
$var->data = $data[$var->name];
|
||||
|
||||
$val = self::val_from_var($var, $exp);
|
||||
|
||||
// Variable missing
|
||||
} else {
|
||||
if ($var->default) {
|
||||
$exp->one_var_defined = true;
|
||||
$val = $var->default;
|
||||
}
|
||||
}
|
||||
$part .= $val;
|
||||
}
|
||||
if (! $exp->one_var_defined) $part = '';
|
||||
$this->expansion = str_replace($exp->expression, $part, $this->expansion);
|
||||
}
|
||||
|
||||
return $this->expansion;
|
||||
}
|
||||
|
||||
private function val_from_var($var, $exp) {
|
||||
$val = '';
|
||||
if (is_array($var->data)) {
|
||||
$i = 0;
|
||||
if ($exp->operator == '?' && ! $var->modifier) {
|
||||
$val .= $var->name . '=';
|
||||
}
|
||||
foreach ($var->data as $k => $v) {
|
||||
$del = $var->modifier ? $exp->delimiter : ',';
|
||||
$ek = rawurlencode($k);
|
||||
$ev = rawurlencode($v);
|
||||
|
||||
// Array
|
||||
if ($k !== $i) {
|
||||
if ($var->modifier == '+') {
|
||||
$val .= $var->name . '.';
|
||||
}
|
||||
if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') {
|
||||
$val .= $ek . '=';
|
||||
} else {
|
||||
$val .= $ek . $del;
|
||||
}
|
||||
|
||||
// List
|
||||
} else {
|
||||
if ($var->modifier == '+') {
|
||||
if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') {
|
||||
$val .= $var->name . '=';
|
||||
} else {
|
||||
$val .= $var->name . '.';
|
||||
}
|
||||
}
|
||||
}
|
||||
$val .= $ev . $del;
|
||||
$i ++;
|
||||
}
|
||||
$val = trim($val, $del);
|
||||
|
||||
// Strings, numbers, etc.
|
||||
} else {
|
||||
if ($exp->operator == '?') {
|
||||
$val = $var->name . (isset($var->data) ? '=' : '');
|
||||
} else if ($exp->operator == ';') {
|
||||
$val = $var->name . ($var->data ? '=' : '');
|
||||
}
|
||||
$val .= rawurlencode($var->data);
|
||||
if ($exp->operator == '+') {
|
||||
$val = str_replace(self::$reserved_pct, self::$reserved, $val);
|
||||
}
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
public function match($uri) {}
|
||||
|
||||
public function __toString() {
|
||||
return $this->template;
|
||||
}
|
||||
}
|
@ -0,0 +1,173 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/**
|
||||
* Implement the caching directives specified in rfc2616. This
|
||||
* implementation is guided by the guidance offered in rfc2616-sec13.
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_CacheParser {
|
||||
public static $CACHEABLE_HTTP_METHODS = array('GET', 'HEAD');
|
||||
public static $CACHEABLE_STATUS_CODES = array('200', '203', '300', '301');
|
||||
|
||||
private function __construct() {}
|
||||
|
||||
/**
|
||||
* Check if an HTTP request can be cached by a private local cache.
|
||||
*
|
||||
* @static
|
||||
* @param Yoast_Google_HttpRequest $resp
|
||||
* @return bool True if the request is cacheable.
|
||||
* False if the request is uncacheable.
|
||||
*/
|
||||
public static function isRequestCacheable (Yoast_Google_HttpRequest $resp) {
|
||||
$method = $resp->getRequestMethod();
|
||||
if (! in_array($method, self::$CACHEABLE_HTTP_METHODS)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Don't cache authorized requests/responses.
|
||||
// [rfc2616-14.8] When a shared cache receives a request containing an
|
||||
// Authorization field, it MUST NOT return the corresponding response
|
||||
// as a reply to any other request...
|
||||
if ($resp->getRequestHeader("authorization")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an HTTP response can be cached by a private local cache.
|
||||
*
|
||||
* @static
|
||||
* @param Yoast_Google_HttpRequest $resp
|
||||
* @return bool True if the response is cacheable.
|
||||
* False if the response is un-cacheable.
|
||||
*/
|
||||
public static function isResponseCacheable (Yoast_Google_HttpRequest $resp) {
|
||||
// First, check if the HTTP request was cacheable before inspecting the
|
||||
// HTTP response.
|
||||
if (false == self::isRequestCacheable($resp)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$code = $resp->getResponseHttpCode();
|
||||
if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// The resource is uncacheable if the resource is already expired and
|
||||
// the resource doesn't have an ETag for revalidation.
|
||||
$etag = $resp->getResponseHeader("etag");
|
||||
if (self::isExpired($resp) && $etag == false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT
|
||||
// store any part of either this response or the request that elicited it.
|
||||
$cacheControl = $resp->getParsedCacheControl();
|
||||
if (isset($cacheControl['no-store'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Pragma: no-cache is an http request directive, but is occasionally
|
||||
// used as a response header incorrectly.
|
||||
$pragma = $resp->getResponseHeader('pragma');
|
||||
if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that
|
||||
// a cache cannot determine from the request headers of a subsequent request
|
||||
// whether this response is the appropriate representation."
|
||||
// Given this, we deem responses with the Vary header as uncacheable.
|
||||
$vary = $resp->getResponseHeader('vary');
|
||||
if ($vary) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @param Yoast_Google_HttpRequest $resp
|
||||
* @return bool True if the HTTP response is considered to be expired.
|
||||
* False if it is considered to be fresh.
|
||||
*/
|
||||
public static function isExpired(Yoast_Google_HttpRequest $resp) {
|
||||
// HTTP/1.1 clients and caches MUST treat other invalid date formats,
|
||||
// especially including the value “0”, as in the past.
|
||||
$parsedExpires = false;
|
||||
$responseHeaders = $resp->getResponseHeaders();
|
||||
if (isset($responseHeaders['expires'])) {
|
||||
$rawExpires = $responseHeaders['expires'];
|
||||
// Check for a malformed expires header first.
|
||||
if (empty($rawExpires) || (is_numeric($rawExpires) && $rawExpires <= 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// See if we can parse the expires header.
|
||||
$parsedExpires = strtotime($rawExpires);
|
||||
if (false == $parsedExpires || $parsedExpires <= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate the freshness of an http response.
|
||||
$freshnessLifetime = false;
|
||||
$cacheControl = $resp->getParsedCacheControl();
|
||||
if (isset($cacheControl['max-age'])) {
|
||||
$freshnessLifetime = $cacheControl['max-age'];
|
||||
}
|
||||
|
||||
$rawDate = $resp->getResponseHeader('date');
|
||||
$parsedDate = strtotime($rawDate);
|
||||
|
||||
if (empty($rawDate) || false == $parsedDate) {
|
||||
$parsedDate = time();
|
||||
}
|
||||
if (false == $freshnessLifetime && isset($responseHeaders['expires'])) {
|
||||
$freshnessLifetime = $parsedExpires - $parsedDate;
|
||||
}
|
||||
|
||||
if (false == $freshnessLifetime) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Calculate the age of an http response.
|
||||
$age = max(0, time() - $parsedDate);
|
||||
if (isset($responseHeaders['age'])) {
|
||||
$age = max($age, strtotime($responseHeaders['age']));
|
||||
}
|
||||
|
||||
return $freshnessLifetime <= $age;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a cache entry should be revalidated with by the origin.
|
||||
*
|
||||
* @param Yoast_Google_HttpRequest $response
|
||||
* @return bool True if the entry is expired, else return false.
|
||||
*/
|
||||
public static function mustRevalidate(Yoast_Google_HttpRequest $response) {
|
||||
// [13.3] When a cache has a stale entry that it would like to use as a
|
||||
// response to a client's request, it first has to check with the origin
|
||||
// server to see if its cached entry is still usable.
|
||||
return self::isExpired($response);
|
||||
}
|
||||
}
|
196
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_CurlIO.php
vendored
Normal file
196
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_CurlIO.php
vendored
Normal file
@ -0,0 +1,196 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Curl based implementation of apiIO.
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
|
||||
class Yoast_Google_CurlIO extends Yoast_Google_IO {
|
||||
private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null);
|
||||
private static $HOP_BY_HOP = array(
|
||||
'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization',
|
||||
'te', 'trailers', 'transfer-encoding', 'upgrade');
|
||||
|
||||
private $curlParams = array (
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_FOLLOWLOCATION => 0,
|
||||
CURLOPT_FAILONERROR => false,
|
||||
CURLOPT_SSL_VERIFYPEER => true,
|
||||
CURLOPT_HEADER => true,
|
||||
CURLOPT_VERBOSE => false,
|
||||
);
|
||||
|
||||
/**
|
||||
* Check for cURL availability.
|
||||
*/
|
||||
public function __construct() {
|
||||
if (! function_exists('curl_init')) {
|
||||
throw new Exception(
|
||||
'Google CurlIO client requires the CURL PHP extension');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform an authenticated / signed apiHttpRequest.
|
||||
* This function takes the apiHttpRequest, calls apiAuth->sign on it
|
||||
* (which can modify the request in what ever way fits the auth mechanism)
|
||||
* and then calls apiCurlIO::makeRequest on the signed request
|
||||
*
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return Yoast_Google_HttpRequest The resulting HTTP response including the
|
||||
* responseHttpCode, responseHeaders and responseBody.
|
||||
*/
|
||||
public function authenticatedRequest(Yoast_Google_HttpRequest $request) {
|
||||
$request = Yoast_Google_Client::$auth->sign($request);
|
||||
return $this->makeRequest($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a apiHttpRequest
|
||||
*
|
||||
* @param Yoast_Google_HttpRequest $request the http request to be executed
|
||||
* @return Yoast_Google_HttpRequest http request with the response http code, response
|
||||
* headers and response body filled in
|
||||
* @throws Yoast_Google_IOException on curl or IO error
|
||||
*/
|
||||
public function makeRequest(Yoast_Google_HttpRequest $request) {
|
||||
// First, check to see if we have a valid cached version.
|
||||
$cached = $this->getCachedRequest($request);
|
||||
if ($cached !== false) {
|
||||
if (!$this->checkMustRevaliadateCachedRequest($cached, $request)) {
|
||||
return $cached;
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists($request->getRequestMethod(),
|
||||
self::$ENTITY_HTTP_METHODS)) {
|
||||
$request = $this->processEntityRequest($request);
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt_array($ch, $this->curlParams);
|
||||
curl_setopt($ch, CURLOPT_URL, $request->getUrl());
|
||||
if ($request->getPostBody()) {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getPostBody());
|
||||
}
|
||||
|
||||
$requestHeaders = $request->getRequestHeaders();
|
||||
if ($requestHeaders && is_array($requestHeaders)) {
|
||||
$parsed = array();
|
||||
foreach ($requestHeaders as $k => $v) {
|
||||
$parsed[] = "$k: $v";
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $parsed);
|
||||
}
|
||||
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod());
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, $request->getUserAgent());
|
||||
$respData = curl_exec($ch);
|
||||
|
||||
// Retry if certificates are missing.
|
||||
if (curl_errno($ch) == CURLE_SSL_CACERT) {
|
||||
error_log('SSL certificate problem, verify that the CA cert is OK.'
|
||||
. ' Retrying with the CA cert bundle from google-api-php-client.');
|
||||
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem');
|
||||
$respData = curl_exec($ch);
|
||||
}
|
||||
|
||||
$respHeaderSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
$respHttpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
$curlErrorNum = curl_errno($ch);
|
||||
$curlError = curl_error($ch);
|
||||
curl_close($ch);
|
||||
if ($curlErrorNum != CURLE_OK) {
|
||||
throw new Yoast_Google_IOException("HTTP Error: ($respHttpCode) $curlError");
|
||||
}
|
||||
|
||||
// Parse out the raw response into usable bits
|
||||
list($responseHeaders, $responseBody) =
|
||||
self::parseHttpResponse($respData, $respHeaderSize);
|
||||
|
||||
if ($respHttpCode == 304 && $cached) {
|
||||
// If the server responded NOT_MODIFIED, return the cached request.
|
||||
$this->updateCachedRequest($cached, $responseHeaders);
|
||||
return $cached;
|
||||
}
|
||||
|
||||
// Fill in the apiHttpRequest with the response values
|
||||
$request->setResponseHttpCode($respHttpCode);
|
||||
$request->setResponseHeaders($responseHeaders);
|
||||
$request->setResponseBody($responseBody);
|
||||
// Store the request in cache (the function checks to see if the request
|
||||
// can actually be cached)
|
||||
$this->setCachedRequest($request);
|
||||
// And finally return it
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set options that update cURL's default behavior.
|
||||
* The list of accepted options are:
|
||||
* {@link http://php.net/manual/en/function.curl-setopt.php]
|
||||
*
|
||||
* @param array $optCurlParams Multiple options used by a cURL session.
|
||||
*/
|
||||
public function setOptions($optCurlParams) {
|
||||
foreach ($optCurlParams as $key => $val) {
|
||||
$this->curlParams[$key] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $respData
|
||||
* @param $headerSize
|
||||
* @return array
|
||||
*/
|
||||
public static function parseHttpResponse($respData, $headerSize) {
|
||||
if (stripos($respData, parent::CONNECTION_ESTABLISHED) !== false) {
|
||||
$respData = str_ireplace(parent::CONNECTION_ESTABLISHED, '', $respData);
|
||||
}
|
||||
|
||||
if ($headerSize) {
|
||||
$responseBody = substr($respData, $headerSize);
|
||||
$responseHeaders = substr($respData, 0, $headerSize);
|
||||
} else {
|
||||
list($responseHeaders, $responseBody) = explode("\r\n\r\n", $respData, 2);
|
||||
}
|
||||
|
||||
$responseHeaders = self::parseResponseHeaders($responseHeaders);
|
||||
return array($responseHeaders, $responseBody);
|
||||
}
|
||||
|
||||
public static function parseResponseHeaders($rawHeaders) {
|
||||
$responseHeaders = array();
|
||||
|
||||
$responseHeaderLines = explode("\r\n", $rawHeaders);
|
||||
foreach ($responseHeaderLines as $headerLine) {
|
||||
if ($headerLine && strpos($headerLine, ':') !== false) {
|
||||
list($header, $value) = explode(': ', $headerLine, 2);
|
||||
$header = strtolower($header);
|
||||
if (isset($responseHeaders[$header])) {
|
||||
$responseHeaders[$header] .= "\n" . $value;
|
||||
} else {
|
||||
$responseHeaders[$header] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $responseHeaders;
|
||||
}
|
||||
}
|
@ -0,0 +1,304 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* HTTP Request to be executed by apiIO classes. Upon execution, the
|
||||
* responseHttpCode, responseHeaders and responseBody will be filled in.
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*
|
||||
*/
|
||||
class Yoast_Google_HttpRequest {
|
||||
const USER_AGENT_SUFFIX = "google-api-php-client/0.6.5";
|
||||
private $batchHeaders = array(
|
||||
'Content-Type' => 'application/http',
|
||||
'Content-Transfer-Encoding' => 'binary',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Length' => ''
|
||||
);
|
||||
|
||||
protected $url;
|
||||
protected $requestMethod;
|
||||
protected $requestHeaders;
|
||||
protected $postBody;
|
||||
protected $userAgent;
|
||||
|
||||
protected $responseHttpCode;
|
||||
protected $responseHeaders;
|
||||
protected $responseBody;
|
||||
|
||||
public $accessKey;
|
||||
|
||||
public function __construct($url, $method = 'GET', $headers = array(), $postBody = null) {
|
||||
$this->setUrl($url);
|
||||
$this->setRequestMethod($method);
|
||||
$this->setRequestHeaders($headers);
|
||||
$this->setPostBody($postBody);
|
||||
|
||||
global $apiConfig;
|
||||
if (empty($apiConfig['application_name'])) {
|
||||
$this->userAgent = self::USER_AGENT_SUFFIX;
|
||||
} else {
|
||||
$this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Misc function that returns the base url component of the $url
|
||||
* used by the OAuth signing class to calculate the base string
|
||||
* @return string The base url component of the $url.
|
||||
* @see http://oauth.net/core/1.0a/#anchor13
|
||||
*/
|
||||
public function getBaseUrl() {
|
||||
if ($pos = strpos($this->url, '?')) {
|
||||
return substr($this->url, 0, $pos);
|
||||
}
|
||||
return $this->url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Misc function that returns an array of the query parameters of the current
|
||||
* url used by the OAuth signing class to calculate the signature
|
||||
* @return array Query parameters in the query string.
|
||||
*/
|
||||
public function getQueryParams() {
|
||||
if ($pos = strpos($this->url, '?')) {
|
||||
$queryStr = substr($this->url, $pos + 1);
|
||||
$params = array();
|
||||
parse_str($queryStr, $params);
|
||||
return $params;
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string HTTP Response Code.
|
||||
*/
|
||||
public function getResponseHttpCode() {
|
||||
return (int) $this->responseHttpCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $responseHttpCode HTTP Response Code.
|
||||
*/
|
||||
public function setResponseHttpCode($responseHttpCode) {
|
||||
$this->responseHttpCode = $responseHttpCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return $responseHeaders (array) HTTP Response Headers.
|
||||
*/
|
||||
public function getResponseHeaders() {
|
||||
return $this->responseHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string HTTP Response Body
|
||||
*/
|
||||
public function getResponseBody() {
|
||||
return $this->responseBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $headers The HTTP response headers
|
||||
* to be normalized.
|
||||
*/
|
||||
public function setResponseHeaders($headers) {
|
||||
$headers = Yoast_Google_Utils::normalize($headers);
|
||||
if ($this->responseHeaders) {
|
||||
$headers = array_merge($this->responseHeaders, $headers);
|
||||
}
|
||||
|
||||
$this->responseHeaders = $headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @return array|boolean Returns the requested HTTP header or
|
||||
* false if unavailable.
|
||||
*/
|
||||
public function getResponseHeader($key) {
|
||||
return isset($this->responseHeaders[$key])
|
||||
? $this->responseHeaders[$key]
|
||||
: false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $responseBody The HTTP response body.
|
||||
*/
|
||||
public function setResponseBody($responseBody) {
|
||||
$this->responseBody = $responseBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string $url The request URL.
|
||||
*/
|
||||
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string $method HTTP Request Method.
|
||||
*/
|
||||
public function getRequestMethod() {
|
||||
return $this->requestMethod;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array $headers HTTP Request Headers.
|
||||
*/
|
||||
public function getRequestHeaders() {
|
||||
return $this->requestHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @return array|boolean Returns the requested HTTP header or
|
||||
* false if unavailable.
|
||||
*/
|
||||
public function getRequestHeader($key) {
|
||||
return isset($this->requestHeaders[$key])
|
||||
? $this->requestHeaders[$key]
|
||||
: false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string $postBody HTTP Request Body.
|
||||
*/
|
||||
public function getPostBody() {
|
||||
return $this->postBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url the url to set
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
if (substr($url, 0, 4) == 'http') {
|
||||
$this->url = $url;
|
||||
} else {
|
||||
// Force the path become relative.
|
||||
if (substr($url, 0, 1) !== '/') {
|
||||
$url = '/' . $url;
|
||||
}
|
||||
global $apiConfig;
|
||||
$this->url = $apiConfig['basePath'] . $url;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $method Set he HTTP Method and normalize
|
||||
* it to upper-case, as required by HTTP.
|
||||
*
|
||||
*/
|
||||
public function setRequestMethod($method) {
|
||||
$this->requestMethod = strtoupper($method);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $headers The HTTP request headers
|
||||
* to be set and normalized.
|
||||
*/
|
||||
public function setRequestHeaders($headers) {
|
||||
$headers = Yoast_Google_Utils::normalize($headers);
|
||||
if ($this->requestHeaders) {
|
||||
$headers = array_merge($this->requestHeaders, $headers);
|
||||
}
|
||||
$this->requestHeaders = $headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $postBody the postBody to set
|
||||
*/
|
||||
public function setPostBody($postBody) {
|
||||
$this->postBody = $postBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the User-Agent Header.
|
||||
* @param string $userAgent The User-Agent.
|
||||
*/
|
||||
public function setUserAgent($userAgent) {
|
||||
$this->userAgent = $userAgent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string The User-Agent.
|
||||
*/
|
||||
public function getUserAgent() {
|
||||
return $this->userAgent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a cache key depending on if this was an OAuth signed request
|
||||
* in which case it will use the non-signed url and access key to make this
|
||||
* cache key unique per authenticated user, else use the plain request url
|
||||
* @return string The md5 hash of the request cache key.
|
||||
*/
|
||||
public function getCacheKey() {
|
||||
$key = $this->getUrl();
|
||||
|
||||
if (isset($this->accessKey)) {
|
||||
$key .= $this->accessKey;
|
||||
}
|
||||
|
||||
if (isset($this->requestHeaders['authorization'])) {
|
||||
$key .= $this->requestHeaders['authorization'];
|
||||
}
|
||||
|
||||
return md5($key);
|
||||
}
|
||||
|
||||
public function getParsedCacheControl() {
|
||||
$parsed = array();
|
||||
$rawCacheControl = $this->getResponseHeader('cache-control');
|
||||
if ($rawCacheControl) {
|
||||
$rawCacheControl = str_replace(', ', '&', $rawCacheControl);
|
||||
parse_str($rawCacheControl, $parsed);
|
||||
}
|
||||
|
||||
return $parsed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id
|
||||
* @return string A string representation of the HTTP Request.
|
||||
*/
|
||||
public function toBatchString($id) {
|
||||
$str = '';
|
||||
foreach($this->batchHeaders as $key => $val) {
|
||||
$str .= $key . ': ' . $val . "\n";
|
||||
}
|
||||
|
||||
$str .= "Content-ID: $id\n";
|
||||
$str .= "\n";
|
||||
|
||||
$path = parse_url($this->getUrl(), PHP_URL_PATH);
|
||||
$str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n";
|
||||
foreach($this->getRequestHeaders() as $key => $val) {
|
||||
$str .= $key . ': ' . $val . "\n";
|
||||
}
|
||||
|
||||
if ($this->getPostBody()) {
|
||||
$str .= "\n";
|
||||
$str .= $this->getPostBody();
|
||||
}
|
||||
|
||||
return $str;
|
||||
}
|
||||
}
|
156
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_IO.php
vendored
Normal file
156
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_IO.php
vendored
Normal file
@ -0,0 +1,156 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Abstract IO class
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
*/
|
||||
abstract class Yoast_Google_IO {
|
||||
const CONNECTION_ESTABLISHED = "HTTP/1.0 200 Connection established\r\n\r\n";
|
||||
const FORM_URLENCODED = 'application/x-www-form-urlencoded';
|
||||
/**
|
||||
* An utility function that first calls $this->auth->sign($request) and then executes makeRequest()
|
||||
* on that signed request. Used for when a request should be authenticated
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return Yoast_Google_HttpRequest $request
|
||||
*/
|
||||
abstract function authenticatedRequest(Yoast_Google_HttpRequest $request);
|
||||
|
||||
/**
|
||||
* Executes a apIHttpRequest and returns the resulting populated httpRequest
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return Yoast_Google_HttpRequest $request
|
||||
*/
|
||||
abstract function makeRequest(Yoast_Google_HttpRequest $request);
|
||||
|
||||
/**
|
||||
* Set options that update the transport implementation's behavior.
|
||||
* @param $options
|
||||
*/
|
||||
abstract function setOptions($options);
|
||||
|
||||
/**
|
||||
* @visible for testing.
|
||||
* Cache the response to an HTTP request if it is cacheable.
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return bool Returns true if the insertion was successful.
|
||||
* Otherwise, return false.
|
||||
*/
|
||||
protected function setCachedRequest(Yoast_Google_HttpRequest $request) {
|
||||
// Determine if the request is cacheable.
|
||||
if (Yoast_Google_CacheParser::isResponseCacheable($request)) {
|
||||
Yoast_Google_Client::$cache->set($request->getCacheKey(), $request);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @visible for testing.
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return Yoast_Google_HttpRequest|bool Returns the cached object or
|
||||
* false if the operation was unsuccessful.
|
||||
*/
|
||||
protected function getCachedRequest(Yoast_Google_HttpRequest $request) {
|
||||
if (false == Yoast_Google_CacheParser::isRequestCacheable($request)) {
|
||||
false;
|
||||
}
|
||||
|
||||
return Yoast_Google_Client::$cache->get($request->getCacheKey());
|
||||
}
|
||||
|
||||
/**
|
||||
* @visible for testing
|
||||
* Process an http request that contains an enclosed entity.
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
* @return Yoast_Google_HttpRequest Processed request with the enclosed entity.
|
||||
*/
|
||||
protected function processEntityRequest(Yoast_Google_HttpRequest $request) {
|
||||
$postBody = $request->getPostBody();
|
||||
$contentType = $request->getRequestHeader("content-type");
|
||||
|
||||
// Set the default content-type as application/x-www-form-urlencoded.
|
||||
if (false == $contentType) {
|
||||
$contentType = self::FORM_URLENCODED;
|
||||
$request->setRequestHeaders(array('content-type' => $contentType));
|
||||
}
|
||||
|
||||
// Force the payload to match the content-type asserted in the header.
|
||||
if ($contentType == self::FORM_URLENCODED && is_array($postBody)) {
|
||||
$postBody = http_build_query($postBody, '', '&');
|
||||
$request->setPostBody($postBody);
|
||||
}
|
||||
|
||||
// Make sure the content-length header is set.
|
||||
if (!$postBody || is_string($postBody)) {
|
||||
$postsLength = strlen($postBody);
|
||||
$request->setRequestHeaders(array('content-length' => $postsLength));
|
||||
}
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an already cached request must be revalidated, and if so update
|
||||
* the request with the correct ETag headers.
|
||||
* @param Yoast_Google_HttpRequest $cached A previously cached response.
|
||||
* @param Yoast_Google_HttpRequest $request The outbound request.
|
||||
* return bool If the cached object needs to be revalidated, false if it is
|
||||
* still current and can be re-used.
|
||||
*/
|
||||
protected function checkMustRevaliadateCachedRequest($cached, $request) {
|
||||
if (Yoast_Google_CacheParser::mustRevalidate($cached)) {
|
||||
$addHeaders = array();
|
||||
if ($cached->getResponseHeader('etag')) {
|
||||
// [13.3.4] If an entity tag has been provided by the origin server,
|
||||
// we must use that entity tag in any cache-conditional request.
|
||||
$addHeaders['If-None-Match'] = $cached->getResponseHeader('etag');
|
||||
} elseif ($cached->getResponseHeader('date')) {
|
||||
$addHeaders['If-Modified-Since'] = $cached->getResponseHeader('date');
|
||||
}
|
||||
|
||||
$request->setRequestHeaders($addHeaders);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a cached request, using the headers from the last response.
|
||||
* @param Yoast_Google_HttpRequest $cached A previously cached response.
|
||||
* @param mixed Associative array of response headers from the last request.
|
||||
*/
|
||||
protected function updateCachedRequest($cached, $responseHeaders) {
|
||||
if (isset($responseHeaders['connection'])) {
|
||||
$hopByHop = array_merge(
|
||||
self::$HOP_BY_HOP,
|
||||
explode(',', $responseHeaders['connection'])
|
||||
);
|
||||
|
||||
$endToEnd = array();
|
||||
foreach($hopByHop as $key) {
|
||||
if (isset($responseHeaders[$key])) {
|
||||
$endToEnd[$key] = $responseHeaders[$key];
|
||||
}
|
||||
}
|
||||
$cached->setResponseHeaders($endToEnd);
|
||||
}
|
||||
}
|
||||
}
|
128
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_REST.php
vendored
Normal file
128
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_REST.php
vendored
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This class implements the RESTful transport of apiServiceRequest()'s
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_REST {
|
||||
/**
|
||||
* Executes a apiServiceRequest using a RESTful call by transforming it into
|
||||
* an apiHttpRequest, and executed via apiIO::authenticatedRequest().
|
||||
*
|
||||
* @param Yoast_Google_HttpRequest $req
|
||||
* @return array decoded result
|
||||
* @throws Yoast_Google_ServiceException on server side error (ie: not authenticated,
|
||||
* invalid or malformed post body, invalid url)
|
||||
*/
|
||||
static public function execute(Yoast_Google_HttpRequest $req) {
|
||||
$httpRequest = Yoast_Google_Client::$io->makeRequest($req);
|
||||
$decodedResponse = self::decodeHttpResponse($httpRequest);
|
||||
$ret = isset($decodedResponse['data'])
|
||||
? $decodedResponse['data'] : $decodedResponse;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Decode an HTTP Response.
|
||||
* @static
|
||||
* @throws Yoast_Google_ServiceException
|
||||
* @param Yoast_Google_HttpRequest $response The http response to be decoded.
|
||||
* @return mixed|null
|
||||
*/
|
||||
public static function decodeHttpResponse($response) {
|
||||
$code = $response->getResponseHttpCode();
|
||||
$body = $response->getResponseBody();
|
||||
$decoded = null;
|
||||
|
||||
if ((intVal($code)) >= 300) {
|
||||
$decoded = json_decode($body, true);
|
||||
$err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl();
|
||||
if ($decoded != null && isset($decoded['error']['message']) && isset($decoded['error']['code'])) {
|
||||
// if we're getting a json encoded error definition, use that instead of the raw response
|
||||
// body for improved readability
|
||||
$err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}";
|
||||
} else {
|
||||
$err .= ": ($code) $body";
|
||||
}
|
||||
|
||||
throw new Yoast_Google_ServiceException($err, $code, null, $decoded['error']['errors']);
|
||||
}
|
||||
|
||||
// Only attempt to decode the response, if the response code wasn't (204) 'no content'
|
||||
if ($code != '204') {
|
||||
$decoded = json_decode($body, true);
|
||||
if ($decoded === null || $decoded === "") {
|
||||
throw new Yoast_Google_ServiceException("Invalid json in service response: $body");
|
||||
}
|
||||
}
|
||||
return $decoded;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse/expand request parameters and create a fully qualified
|
||||
* request uri.
|
||||
* @static
|
||||
* @param string $servicePath
|
||||
* @param string $restPath
|
||||
* @param array $params
|
||||
* @return string $requestUrl
|
||||
*/
|
||||
static function createRequestUri($servicePath, $restPath, $params) {
|
||||
$requestUrl = $servicePath . $restPath;
|
||||
$uriTemplateVars = array();
|
||||
$queryVars = array();
|
||||
foreach ($params as $paramName => $paramSpec) {
|
||||
// Discovery v1.0 puts the canonical location under the 'location' field.
|
||||
if (! isset($paramSpec['location'])) {
|
||||
$paramSpec['location'] = $paramSpec['restParameterType'];
|
||||
}
|
||||
|
||||
if ($paramSpec['type'] == 'boolean') {
|
||||
$paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false';
|
||||
}
|
||||
if ($paramSpec['location'] == 'path') {
|
||||
$uriTemplateVars[$paramName] = $paramSpec['value'];
|
||||
} else {
|
||||
if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) {
|
||||
foreach ($paramSpec['value'] as $value) {
|
||||
$queryVars[] = $paramName . '=' . rawurlencode($value);
|
||||
}
|
||||
} else {
|
||||
$queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($uriTemplateVars)) {
|
||||
$uriTemplateParser = new URI_Template_Parser($requestUrl);
|
||||
$requestUrl = $uriTemplateParser->expand($uriTemplateVars);
|
||||
}
|
||||
//FIXME work around for the the uri template lib which url encodes
|
||||
// the @'s & confuses our servers.
|
||||
$requestUrl = str_replace('%40', '@', $requestUrl);
|
||||
|
||||
if (count($queryVars)) {
|
||||
$requestUrl .= '?' . implode($queryVars, '&');
|
||||
}
|
||||
|
||||
return $requestUrl;
|
||||
}
|
||||
}
|
170
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_WPIO.php
vendored
Normal file
170
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/Google_WPIO.php
vendored
Normal file
@ -0,0 +1,170 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* WP based implementation of apiIO.
|
||||
*
|
||||
*/
|
||||
class Yoast_Google_WPIO extends Yoast_Google_IO {
|
||||
private static $ENTITY_HTTP_METHODS = array( "POST" => null, "PUT" => null, "DELETE" => null );
|
||||
private static $HOP_BY_HOP = array(
|
||||
'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization',
|
||||
'te', 'trailers', 'transfer-encoding', 'upgrade' );
|
||||
|
||||
/**
|
||||
* Perform an authenticated / signed apiHttpRequest.
|
||||
* This function takes the apiHttpRequest, calls apiAuth->sign on it
|
||||
* (which can modify the request in what ever way fits the auth mechanism)
|
||||
* and then calls apiWPIO::makeRequest on the signed request
|
||||
*
|
||||
* @param Yoast_Google_HttpRequest $request
|
||||
*
|
||||
* @return Yoast_Google_HttpRequest The resulting HTTP response including the
|
||||
* responseHttpCode, responseHeaders and responseBody.
|
||||
*/
|
||||
public function authenticatedRequest( Yoast_Google_HttpRequest $request ) {
|
||||
$request = Yoast_Google_Client::$auth->sign( $request );
|
||||
|
||||
return $this->makeRequest( $request );
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a apiHttpRequest
|
||||
*
|
||||
* @param Yoast_Google_HttpRequest $request the http request to be executed
|
||||
*
|
||||
* @return Yoast_Google_HttpRequest http request with the response http code, response
|
||||
* headers and response body filled in
|
||||
*/
|
||||
public function makeRequest( Yoast_Google_HttpRequest $request ) {
|
||||
|
||||
// First, check to see if we have a valid cached version.
|
||||
$cached = $this->getCachedRequest( $request );
|
||||
if ( $cached !== false ) {
|
||||
if ( ! $this->checkMustRevaliadateCachedRequest( $cached, $request ) ) {
|
||||
return $cached;
|
||||
}
|
||||
}
|
||||
|
||||
if ( array_key_exists( $request->getRequestMethod(), self::$ENTITY_HTTP_METHODS ) ) {
|
||||
$request = $this->processEntityRequest( $request );
|
||||
}
|
||||
|
||||
$params = array(
|
||||
'user-agent' => $request->getUserAgent(),
|
||||
'timeout' => 30,
|
||||
'sslverify' => false,
|
||||
);
|
||||
|
||||
$curl_version = $this->get_curl_version();
|
||||
if ( $curl_version !== false ) {
|
||||
if ( version_compare( $curl_version, '7.19.0', '<=' ) && version_compare( $curl_version, '7.19.8', '>' ) ) {
|
||||
add_filter( 'http_api_transports', array( $this, 'filter_curl_from_transports' ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( $request->getPostBody() ) {
|
||||
$params['body'] = $request->getPostBody();
|
||||
}
|
||||
|
||||
$requestHeaders = $request->getRequestHeaders();
|
||||
if ( $requestHeaders && is_array( $requestHeaders ) ) {
|
||||
$params['headers'] = $requestHeaders;
|
||||
}
|
||||
|
||||
// There might be some problems with decompressing, so we prevent this by setting the param to false
|
||||
$params['decompress'] = false;
|
||||
|
||||
|
||||
switch ( $request->getRequestMethod() ) {
|
||||
case 'POST' :
|
||||
$response = wp_remote_post( $request->getUrl(), $params );
|
||||
break;
|
||||
|
||||
case 'GET' :
|
||||
$response = wp_remote_get( $request->getUrl(), $params );
|
||||
break;
|
||||
case 'DELETE' :
|
||||
$params['method'] = 'DELETE';
|
||||
$response = wp_remote_get( $request->getUrl(), $params );
|
||||
break;
|
||||
}
|
||||
|
||||
$responseBody = wp_remote_retrieve_body( $response );
|
||||
$respHttpCode = wp_remote_retrieve_response_code( $response );
|
||||
$responseHeaders = wp_remote_retrieve_headers( $response );
|
||||
|
||||
if ( $respHttpCode == 304 && $cached ) {
|
||||
// If the server responded NOT_MODIFIED, return the cached request.
|
||||
$this->updateCachedRequest( $cached, $responseHeaders );
|
||||
|
||||
return $cached;
|
||||
}
|
||||
|
||||
// Fill in the apiHttpRequest with the response values
|
||||
$request->setResponseHttpCode( $respHttpCode );
|
||||
$request->setResponseHeaders( $responseHeaders );
|
||||
|
||||
$request->setResponseBody( $responseBody );
|
||||
// Store the request in cache (the function checks to see if the request
|
||||
// can actually be cached)
|
||||
$this->setCachedRequest( $request );
|
||||
|
||||
// And finally return it
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove Curl from the transport
|
||||
*
|
||||
* @param $transports
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function filter_curl_from_transports( $transports ) {
|
||||
unset( $transports['curl'] );
|
||||
|
||||
return $transports;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set options that update default behavior.
|
||||
*
|
||||
* @param array $optParams Multiple options used by a session.
|
||||
*/
|
||||
public function setOptions( $optParams ) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current curl verison if curl is installed
|
||||
*
|
||||
* @return bool|string
|
||||
*/
|
||||
public function get_curl_version() {
|
||||
if ( function_exists( 'curl_version' ) ) {
|
||||
$curl = curl_version();
|
||||
|
||||
if ( isset( $curl['version'] ) ) {
|
||||
return $curl['version'];
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
738
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/cacerts.pem
vendored
Normal file
738
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/api-libs/google/io/cacerts.pem
vendored
Normal file
@ -0,0 +1,738 @@
|
||||
# Certifcate Authority certificates for validating SSL connections.
|
||||
#
|
||||
# This file contains PEM format certificates generated from
|
||||
# http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is the Netscape security libraries.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1994-2000
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
Verisign/RSA Secure Server CA
|
||||
=============================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
|
||||
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
|
||||
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
|
||||
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
|
||||
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
|
||||
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
|
||||
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
|
||||
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
|
||||
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
|
||||
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Personal Basic CA
|
||||
========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
||||
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
||||
ZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBlcnNvbmFsIEJhc2lj
|
||||
IENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0aGF3dGUuY29tMB4X
|
||||
DTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpBMRUw
|
||||
EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
|
||||
ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
||||
dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBD
|
||||
QTEoMCYGCSqGSIb3DQEJARYZcGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzAN
|
||||
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53
|
||||
dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdK
|
||||
wPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7
|
||||
G1sY0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
|
||||
AAOBgQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
|
||||
c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P
|
||||
9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Personal Premium CA
|
||||
==========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
||||
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
||||
ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p
|
||||
dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv
|
||||
bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa
|
||||
QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY
|
||||
BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u
|
||||
IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl
|
||||
bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu
|
||||
Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs
|
||||
Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI
|
||||
Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD
|
||||
ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
||||
SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
|
||||
b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh
|
||||
KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Personal Freemail CA
|
||||
===========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
||||
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
||||
ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt
|
||||
YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu
|
||||
Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT
|
||||
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa
|
||||
MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
||||
b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG
|
||||
cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh
|
||||
d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY
|
||||
DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E
|
||||
rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq
|
||||
uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN
|
||||
BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
|
||||
MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa
|
||||
/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei
|
||||
gQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Server CA
|
||||
================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
||||
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
||||
biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
|
||||
MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
|
||||
MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
||||
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
|
||||
dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
|
||||
cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
|
||||
DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
|
||||
gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
|
||||
yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
|
||||
L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
|
||||
EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
|
||||
7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
|
||||
QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
|
||||
qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Premium Server CA
|
||||
========================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
||||
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
||||
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
||||
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
||||
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
||||
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
||||
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
||||
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
||||
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
||||
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
||||
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
||||
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
||||
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
||||
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
||||
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
||||
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure CA
|
||||
=================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
||||
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
||||
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
||||
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
||||
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
||||
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
||||
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
||||
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
||||
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
||||
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
||||
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
||||
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
||||
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
||||
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
||||
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
||||
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
||||
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 1 Public Primary Certification Authority
|
||||
=======================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
||||
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
||||
NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
||||
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJp
|
||||
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
||||
jQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0N
|
||||
H8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR
|
||||
4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATAN
|
||||
BgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZo
|
||||
EWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5
|
||||
FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89Fx
|
||||
lA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 2 Public Primary Certification Authority
|
||||
=======================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
||||
cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
||||
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
||||
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt
|
||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||
ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh
|
||||
YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7
|
||||
FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G
|
||||
CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg
|
||||
J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc
|
||||
r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority
|
||||
=======================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
||||
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
||||
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
||||
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
||||
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
||||
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
||||
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
||||
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
||||
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
||||
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
||||
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 1 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
||||
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
||||
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
||||
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
||||
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
||||
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
||||
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
||||
AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK
|
||||
VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm
|
||||
Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID
|
||||
AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J
|
||||
h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
|
||||
uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68
|
||||
DzFc6PLZ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 2 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
|
||||
YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
|
||||
MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
|
||||
aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
|
||||
Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
|
||||
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
|
||||
IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
|
||||
KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
||||
eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
|
||||
AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
|
||||
HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
|
||||
DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
|
||||
AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
|
||||
nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
|
||||
rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
|
||||
jBJ7xUS0rg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
||||
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
||||
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
||||
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
||||
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
||||
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
||||
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
||||
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
|
||||
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
|
||||
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
|
||||
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
|
||||
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
|
||||
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
|
||||
oJ2daZH9
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 4 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
||||
c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
||||
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
||||
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
||||
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg
|
||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
||||
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
||||
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
||||
AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM
|
||||
HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK
|
||||
qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID
|
||||
AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj
|
||||
cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
|
||||
cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP
|
||||
T8qAkbYp
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 1 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
||||
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
||||
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
||||
aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
||||
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
||||
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
||||
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
||||
IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
||||
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4
|
||||
nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO
|
||||
8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV
|
||||
ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb
|
||||
PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
|
||||
6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr
|
||||
n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a
|
||||
qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4
|
||||
wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
|
||||
ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs
|
||||
pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4
|
||||
E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 2 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
|
||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
|
||||
aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
|
||||
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
|
||||
Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
||||
eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
|
||||
BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
|
||||
Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
|
||||
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
|
||||
Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
||||
IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
|
||||
J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
|
||||
JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
|
||||
wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
|
||||
koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
|
||||
qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
|
||||
Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
|
||||
xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
|
||||
7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
|
||||
sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
|
||||
sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
|
||||
cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
||||
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
||||
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
||||
aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
||||
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
||||
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
||||
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
||||
IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
||||
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
|
||||
N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
|
||||
KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
|
||||
kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
|
||||
CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
|
||||
Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
|
||||
imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
|
||||
2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
|
||||
DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
||||
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
|
||||
F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
|
||||
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 4 Public Primary Certification Authority - G3
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
||||
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
||||
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
||||
aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
||||
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
||||
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
||||
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
||||
IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
||||
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
|
||||
GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
|
||||
+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
|
||||
U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
|
||||
NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
|
||||
ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
|
||||
ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
|
||||
CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
|
||||
g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
||||
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
|
||||
2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
|
||||
bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure Global eBusiness CA
|
||||
==================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
|
||||
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
|
||||
ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
|
||||
MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
|
||||
dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
|
||||
c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
|
||||
UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
|
||||
58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
|
||||
o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
|
||||
MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
|
||||
aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
|
||||
A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
|
||||
Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
|
||||
8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure eBusiness CA 1
|
||||
=============================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
|
||||
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
|
||||
ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
|
||||
MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
|
||||
LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
|
||||
RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
|
||||
WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
|
||||
Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
|
||||
AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
|
||||
eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
|
||||
zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
|
||||
WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
|
||||
/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Equifax Secure eBusiness CA 2
|
||||
=============================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
||||
UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
|
||||
dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
|
||||
NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
|
||||
VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
|
||||
AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
|
||||
vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
|
||||
BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
|
||||
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
|
||||
MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
|
||||
IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
|
||||
NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
|
||||
y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
|
||||
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
||||
A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
|
||||
0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
|
||||
E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Thawte Time Stamping CA
|
||||
=======================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx
|
||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
|
||||
BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd
|
||||
BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN
|
||||
MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g
|
||||
Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
|
||||
A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l
|
||||
c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT
|
||||
6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa
|
||||
Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL
|
||||
8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC
|
||||
9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ
|
||||
pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ
|
||||
CayJSdM=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
thawte Primary Root CA
|
||||
======================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
|
||||
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
||||
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
||||
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
|
||||
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
|
||||
NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
|
||||
LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
|
||||
A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
||||
IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
|
||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
|
||||
W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
|
||||
3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
|
||||
6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
|
||||
Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
|
||||
NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
|
||||
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
|
||||
r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
|
||||
DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
|
||||
YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
||||
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
|
||||
/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
|
||||
LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
|
||||
jVaMaA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
VeriSign Class 3 Public Primary Certification Authority - G5
|
||||
============================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Entrust.net Secure Server Certification Authority
|
||||
=================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
|
||||
VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
|
||||
ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
|
||||
KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
|
||||
ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
|
||||
MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
|
||||
ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
|
||||
b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
||||
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
|
||||
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
|
||||
A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
|
||||
I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
|
||||
wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
|
||||
AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
|
||||
oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
|
||||
BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
|
||||
dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
|
||||
MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
|
||||
b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
||||
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
|
||||
MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
|
||||
E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
|
||||
MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
|
||||
hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
|
||||
95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
|
||||
2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Go Daddy Certification Authority Root Certificate Bundle
|
||||
========================================================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx
|
||||
ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
||||
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw
|
||||
MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH
|
||||
QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j
|
||||
b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j
|
||||
b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj
|
||||
YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN
|
||||
AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H
|
||||
KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm
|
||||
VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR
|
||||
SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT
|
||||
cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ
|
||||
6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu
|
||||
MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS
|
||||
kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB
|
||||
BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f
|
||||
BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv
|
||||
c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH
|
||||
AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO
|
||||
BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG
|
||||
OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU
|
||||
A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o
|
||||
0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX
|
||||
RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH
|
||||
qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV
|
||||
U+4=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh
|
||||
bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
|
||||
Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g
|
||||
QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe
|
||||
BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX
|
||||
DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE
|
||||
YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0
|
||||
aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC
|
||||
ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
||||
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q
|
||||
N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO
|
||||
r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN
|
||||
f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH
|
||||
U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU
|
||||
TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb
|
||||
VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg
|
||||
SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv
|
||||
biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg
|
||||
MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw
|
||||
AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv
|
||||
ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu
|
||||
Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd
|
||||
IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv
|
||||
bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1
|
||||
QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O
|
||||
WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf
|
||||
SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
||||
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
||||
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
||||
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
||||
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
|
||||
NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
||||
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
||||
YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
||||
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
||||
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
|
||||
dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
|
||||
WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
|
||||
v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
|
||||
UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
|
||||
IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
|
||||
W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
GeoTrust Global CA
|
||||
==================
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
|
||||
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
|
||||
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
|
||||
WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
|
||||
AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
|
||||
OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
|
||||
T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
|
||||
JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
|
||||
Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
|
||||
PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
|
||||
aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
|
||||
TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
|
||||
LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
|
||||
BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
|
||||
dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
|
||||
AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
|
||||
NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
|
||||
b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
|
||||
-----END CERTIFICATE-----
|
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_BatchRequest {
|
||||
/** @var string Multipart Boundary. */
|
||||
private $boundary;
|
||||
|
||||
/** @var array service requests to be executed. */
|
||||
private $requests = array();
|
||||
|
||||
public function __construct($boundary = false) {
|
||||
$boundary = (false == $boundary) ? mt_rand() : $boundary;
|
||||
$this->boundary = str_replace('"', '', $boundary);
|
||||
}
|
||||
|
||||
public function add(Yoast_Google_HttpRequest $request, $key = false) {
|
||||
if (false == $key) {
|
||||
$key = mt_rand();
|
||||
}
|
||||
|
||||
$this->requests[$key] = $request;
|
||||
}
|
||||
|
||||
public function execute() {
|
||||
$body = '';
|
||||
|
||||
/** @var Yoast_Google_HttpRequest $req */
|
||||
foreach($this->requests as $key => $req) {
|
||||
$body .= "--{$this->boundary}\n";
|
||||
$body .= $req->toBatchString($key) . "\n";
|
||||
}
|
||||
|
||||
$body = rtrim($body);
|
||||
$body .= "\n--{$this->boundary}--";
|
||||
|
||||
global $apiConfig;
|
||||
$url = $apiConfig['basePath'] . '/batch';
|
||||
$httpRequest = new Yoast_Google_HttpRequest($url, 'POST');
|
||||
$httpRequest->setRequestHeaders(array(
|
||||
'Content-Type' => 'multipart/mixed; boundary=' . $this->boundary));
|
||||
|
||||
$httpRequest->setPostBody($body);
|
||||
$response = Yoast_Google_Client::$io->makeRequest($httpRequest);
|
||||
|
||||
$response = $this->parseResponse($response);
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function parseResponse(Yoast_Google_HttpRequest $response) {
|
||||
$contentType = $response->getResponseHeader('content-type');
|
||||
$contentType = explode(';', $contentType);
|
||||
$boundary = false;
|
||||
foreach($contentType as $part) {
|
||||
$part = (explode('=', $part, 2));
|
||||
if (isset($part[0]) && 'boundary' == trim($part[0])) {
|
||||
$boundary = $part[1];
|
||||
}
|
||||
}
|
||||
|
||||
$body = $response->getResponseBody();
|
||||
if ($body) {
|
||||
$body = str_replace("--$boundary--", "--$boundary", $body);
|
||||
$parts = explode("--$boundary", $body);
|
||||
$responses = array();
|
||||
|
||||
foreach($parts as $part) {
|
||||
$part = trim($part);
|
||||
if (!empty($part)) {
|
||||
list($metaHeaders, $part) = explode("\r\n\r\n", $part, 2);
|
||||
$metaHeaders = Yoast_Google_CurlIO::parseResponseHeaders($metaHeaders);
|
||||
|
||||
$status = substr($part, 0, strpos($part, "\n"));
|
||||
$status = explode(" ", $status);
|
||||
$status = $status[1];
|
||||
|
||||
list($partHeaders, $partBody) = Yoast_Google_CurlIO::parseHttpResponse($part, false);
|
||||
$response = new Yoast_Google_HttpRequest("");
|
||||
$response->setResponseHttpCode($status);
|
||||
$response->setResponseHeaders($partHeaders);
|
||||
$response->setResponseBody($partBody);
|
||||
$response = Yoast_Google_REST::decodeHttpResponse($response);
|
||||
|
||||
// Need content id.
|
||||
$responses[$metaHeaders['content-id']] = $response;
|
||||
}
|
||||
}
|
||||
|
||||
return $responses;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,262 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*
|
||||
*/
|
||||
class Yoast_Google_MediaFileUpload {
|
||||
const UPLOAD_MEDIA_TYPE = 'media';
|
||||
const UPLOAD_MULTIPART_TYPE = 'multipart';
|
||||
const UPLOAD_RESUMABLE_TYPE = 'resumable';
|
||||
|
||||
/** @var string $mimeType */
|
||||
public $mimeType;
|
||||
|
||||
/** @var string $data */
|
||||
public $data;
|
||||
|
||||
/** @var bool $resumable */
|
||||
public $resumable;
|
||||
|
||||
/** @var int $chunkSize */
|
||||
public $chunkSize;
|
||||
|
||||
/** @var int $size */
|
||||
public $size;
|
||||
|
||||
/** @var string $resumeUri */
|
||||
public $resumeUri;
|
||||
|
||||
/** @var int $progress */
|
||||
public $progress;
|
||||
|
||||
/**
|
||||
* @param $mimeType string
|
||||
* @param $data string The bytes you want to upload.
|
||||
* @param $resumable bool
|
||||
* @param bool $chunkSize File will be uploaded in chunks of this many bytes.
|
||||
* only used if resumable=True
|
||||
*/
|
||||
public function __construct($mimeType, $data, $resumable=false, $chunkSize=false) {
|
||||
$this->mimeType = $mimeType;
|
||||
$this->data = $data;
|
||||
$this->size = strlen($this->data);
|
||||
$this->resumable = $resumable;
|
||||
if(!$chunkSize) {
|
||||
$chunkSize = 256 * 1024;
|
||||
}
|
||||
$this->chunkSize = $chunkSize;
|
||||
$this->progress = 0;
|
||||
}
|
||||
|
||||
public function setFileSize($size) {
|
||||
$this->size = $size;
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* @param $meta
|
||||
* @param $params
|
||||
* @return array|bool
|
||||
*/
|
||||
public static function process($meta, &$params) {
|
||||
$payload = array();
|
||||
$meta = is_string($meta) ? json_decode($meta, true) : $meta;
|
||||
$uploadType = self::getUploadType($meta, $payload, $params);
|
||||
if (!$uploadType) {
|
||||
// Process as a normal API request.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Process as a media upload request.
|
||||
$params['uploadType'] = array(
|
||||
'type' => 'string',
|
||||
'location' => 'query',
|
||||
'value' => $uploadType,
|
||||
);
|
||||
|
||||
$mimeType = isset($params['mimeType'])
|
||||
? $params['mimeType']['value']
|
||||
: false;
|
||||
unset($params['mimeType']);
|
||||
|
||||
if (!$mimeType) {
|
||||
$mimeType = $payload['content-type'];
|
||||
}
|
||||
|
||||
if (isset($params['file'])) {
|
||||
// This is a standard file upload with curl.
|
||||
$file = $params['file']['value'];
|
||||
unset($params['file']);
|
||||
return self::processFileUpload($file, $mimeType);
|
||||
}
|
||||
|
||||
$data = isset($params['data'])
|
||||
? $params['data']['value']
|
||||
: false;
|
||||
unset($params['data']);
|
||||
|
||||
if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) {
|
||||
$payload['content-type'] = $mimeType;
|
||||
$payload['postBody'] = is_string($meta) ? $meta : json_encode($meta);
|
||||
|
||||
} elseif (self::UPLOAD_MEDIA_TYPE == $uploadType) {
|
||||
// This is a simple media upload.
|
||||
$payload['content-type'] = $mimeType;
|
||||
$payload['postBody'] = $data;
|
||||
}
|
||||
|
||||
elseif (self::UPLOAD_MULTIPART_TYPE == $uploadType) {
|
||||
// This is a multipart/related upload.
|
||||
$boundary = isset($params['boundary']['value']) ? $params['boundary']['value'] : mt_rand();
|
||||
$boundary = str_replace('"', '', $boundary);
|
||||
$payload['content-type'] = 'multipart/related; boundary=' . $boundary;
|
||||
$related = "--$boundary\r\n";
|
||||
$related .= "Content-Type: application/json; charset=UTF-8\r\n";
|
||||
$related .= "\r\n" . json_encode($meta) . "\r\n";
|
||||
$related .= "--$boundary\r\n";
|
||||
$related .= "Content-Type: $mimeType\r\n";
|
||||
$related .= "Content-Transfer-Encoding: base64\r\n";
|
||||
$related .= "\r\n" . base64_encode($data) . "\r\n";
|
||||
$related .= "--$boundary--";
|
||||
$payload['postBody'] = $related;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares a standard file upload via cURL.
|
||||
* @param $file
|
||||
* @param $mime
|
||||
* @return array Includes the processed file name.
|
||||
* @visible For testing.
|
||||
*/
|
||||
public static function processFileUpload($file, $mime) {
|
||||
if (!$file) return array();
|
||||
if (substr($file, 0, 1) != '@') {
|
||||
$file = '@' . $file;
|
||||
}
|
||||
|
||||
// This is a standard file upload with curl.
|
||||
$params = array('postBody' => array('file' => $file));
|
||||
if ($mime) {
|
||||
$params['content-type'] = $mime;
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
/**
|
||||
* Valid upload types:
|
||||
* - resumable (UPLOAD_RESUMABLE_TYPE)
|
||||
* - media (UPLOAD_MEDIA_TYPE)
|
||||
* - multipart (UPLOAD_MULTIPART_TYPE)
|
||||
* - none (false)
|
||||
* @param $meta
|
||||
* @param $payload
|
||||
* @param $params
|
||||
* @return bool|string
|
||||
*/
|
||||
public static function getUploadType($meta, &$payload, &$params) {
|
||||
if (isset($params['mediaUpload'])
|
||||
&& get_class($params['mediaUpload']['value']) == 'Google_MediaFileUpload') {
|
||||
$upload = $params['mediaUpload']['value'];
|
||||
unset($params['mediaUpload']);
|
||||
$payload['content-type'] = $upload->mimeType;
|
||||
if (isset($upload->resumable) && $upload->resumable) {
|
||||
return self::UPLOAD_RESUMABLE_TYPE;
|
||||
}
|
||||
}
|
||||
|
||||
// Allow the developer to override the upload type.
|
||||
if (isset($params['uploadType'])) {
|
||||
return $params['uploadType']['value'];
|
||||
}
|
||||
|
||||
$data = isset($params['data']['value'])
|
||||
? $params['data']['value'] : false;
|
||||
|
||||
if (false == $data && false == isset($params['file'])) {
|
||||
// No upload data available.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset($params['file'])) {
|
||||
return self::UPLOAD_MEDIA_TYPE;
|
||||
}
|
||||
|
||||
if (false == $meta) {
|
||||
return self::UPLOAD_MEDIA_TYPE;
|
||||
}
|
||||
|
||||
return self::UPLOAD_MULTIPART_TYPE;
|
||||
}
|
||||
|
||||
|
||||
public function nextChunk(Yoast_Google_HttpRequest $req, $chunk=false) {
|
||||
if (false == $this->resumeUri) {
|
||||
$this->resumeUri = $this->getResumeUri($req);
|
||||
}
|
||||
|
||||
if (false == $chunk) {
|
||||
$chunk = substr($this->data, $this->progress, $this->chunkSize);
|
||||
}
|
||||
|
||||
$lastBytePos = $this->progress + strlen($chunk) - 1;
|
||||
$headers = array(
|
||||
'content-range' => "bytes $this->progress-$lastBytePos/$this->size",
|
||||
'content-type' => $req->getRequestHeader('content-type'),
|
||||
'content-length' => $this->chunkSize,
|
||||
'expect' => '',
|
||||
);
|
||||
|
||||
$httpRequest = new Yoast_Google_HttpRequest($this->resumeUri, 'PUT', $headers, $chunk);
|
||||
$response = Yoast_Google_Client::$io->authenticatedRequest($httpRequest);
|
||||
$code = $response->getResponseHttpCode();
|
||||
if (308 == $code) {
|
||||
$range = explode('-', $response->getResponseHeader('range'));
|
||||
$this->progress = $range[1] + 1;
|
||||
return false;
|
||||
} else {
|
||||
return Yoast_Google_REST::decodeHttpResponse($response);
|
||||
}
|
||||
}
|
||||
|
||||
private function getResumeUri(Yoast_Google_HttpRequest $httpRequest) {
|
||||
$result = null;
|
||||
$body = $httpRequest->getPostBody();
|
||||
if ($body) {
|
||||
$httpRequest->setRequestHeaders(array(
|
||||
'content-type' => 'application/json; charset=UTF-8',
|
||||
'content-length' => Yoast_Google_Utils::getStrLen($body),
|
||||
'x-upload-content-type' => $this->mimeType,
|
||||
'x-upload-content-length' => $this->size,
|
||||
'expect' => '',
|
||||
));
|
||||
}
|
||||
|
||||
$response = Yoast_Google_Client::$io->makeRequest($httpRequest);
|
||||
$location = $response->getResponseHeader('location');
|
||||
$code = $response->getResponseHttpCode();
|
||||
if (200 == $code && true == $location) {
|
||||
return $location;
|
||||
}
|
||||
throw new Yoast_Google_Exception("Failed to start the resumable upload");
|
||||
}
|
||||
}
|
@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This class defines attributes, valid values, and usage which is generated from
|
||||
* a given json schema. http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5
|
||||
*
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*
|
||||
*/
|
||||
class Yoast_Google_Model {
|
||||
public function __construct( /* polymorphic */ ) {
|
||||
if (func_num_args() == 1 && is_array(func_get_arg(0))) {
|
||||
// Initialize the model with the array's contents.
|
||||
$array = func_get_arg(0);
|
||||
$this->mapTypes($array);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize this object's properties from an array.
|
||||
*
|
||||
* @param array $array Used to seed this object's properties.
|
||||
* @return void
|
||||
*/
|
||||
protected function mapTypes($array) {
|
||||
foreach ($array as $key => $val) {
|
||||
$this->$key = $val;
|
||||
|
||||
$keyTypeName = "__$key" . 'Type';
|
||||
$keyDataType = "__$key" . 'DataType';
|
||||
if ($this->useObjects() && property_exists($this, $keyTypeName)) {
|
||||
if ($this->isAssociativeArray($val)) {
|
||||
if (isset($this->$keyDataType) && 'map' == $this->$keyDataType) {
|
||||
foreach($val as $arrayKey => $arrayItem) {
|
||||
$val[$arrayKey] = $this->createObjectFromName($keyTypeName, $arrayItem);
|
||||
}
|
||||
$this->$key = $val;
|
||||
} else {
|
||||
$this->$key = $this->createObjectFromName($keyTypeName, $val);
|
||||
}
|
||||
} else if (is_array($val)) {
|
||||
$arrayObject = array();
|
||||
foreach ($val as $arrayIndex => $arrayItem) {
|
||||
$arrayObject[$arrayIndex] = $this->createObjectFromName($keyTypeName, $arrayItem);
|
||||
}
|
||||
$this->$key = $arrayObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true only if the array is associative.
|
||||
* @param array $array
|
||||
* @return bool True if the array is associative.
|
||||
*/
|
||||
protected function isAssociativeArray($array) {
|
||||
if (!is_array($array)) {
|
||||
return false;
|
||||
}
|
||||
$keys = array_keys($array);
|
||||
foreach($keys as $key) {
|
||||
if (is_string($key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a variable name, discover its type.
|
||||
*
|
||||
* @param $name
|
||||
* @param $item
|
||||
* @return object The object from the item.
|
||||
*/
|
||||
private function createObjectFromName($name, $item) {
|
||||
$type = $this->$name;
|
||||
return new $type($item);
|
||||
}
|
||||
|
||||
protected function useObjects() {
|
||||
global $apiConfig;
|
||||
return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if $obj is an array.
|
||||
* @throws Yoast_Google_Exception Thrown if $obj isn't an array.
|
||||
* @param array $obj Items that should be validated.
|
||||
* @param string $type Array items should be of this type.
|
||||
* @param string $method Method expecting an array as an argument.
|
||||
*/
|
||||
public function assertIsArray($obj, $type, $method) {
|
||||
if ($obj && !is_array($obj)) {
|
||||
throw new Yoast_Google_Exception("Incorrect parameter type passed to $method(), expected an"
|
||||
. " array containing items of type $type.");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
class Yoast_Google_Service {
|
||||
public $version;
|
||||
public $servicePath;
|
||||
public $resource;
|
||||
}
|
@ -0,0 +1,205 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements the actual methods/resources of the discovered Google API using magic function
|
||||
* calling overloading (__call()), which on call will see if the method name (plus.activities.list)
|
||||
* is available in this service, and if so construct an apiHttpRequest representing it.
|
||||
*
|
||||
* @author Chris Chabot <chabotc@google.com>
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*
|
||||
*/
|
||||
class Yoast_Google_ServiceResource {
|
||||
// Valid query parameters that work, but don't appear in discovery.
|
||||
private $stackParameters = array(
|
||||
'alt' => array('type' => 'string', 'location' => 'query'),
|
||||
'boundary' => array('type' => 'string', 'location' => 'query'),
|
||||
'fields' => array('type' => 'string', 'location' => 'query'),
|
||||
'trace' => array('type' => 'string', 'location' => 'query'),
|
||||
'userIp' => array('type' => 'string', 'location' => 'query'),
|
||||
'userip' => array('type' => 'string', 'location' => 'query'),
|
||||
'quotaUser' => array('type' => 'string', 'location' => 'query'),
|
||||
'file' => array('type' => 'complex', 'location' => 'body'),
|
||||
'data' => array('type' => 'string', 'location' => 'body'),
|
||||
'mimeType' => array('type' => 'string', 'location' => 'header'),
|
||||
'uploadType' => array('type' => 'string', 'location' => 'query'),
|
||||
'mediaUpload' => array('type' => 'complex', 'location' => 'query'),
|
||||
);
|
||||
|
||||
/** @var Yoast_Google_Service $service */
|
||||
private $service;
|
||||
|
||||
/** @var string $serviceName */
|
||||
private $serviceName;
|
||||
|
||||
/** @var string $resourceName */
|
||||
private $resourceName;
|
||||
|
||||
/** @var array $methods */
|
||||
private $methods;
|
||||
|
||||
public function __construct($service, $serviceName, $resourceName, $resource) {
|
||||
$this->service = $service;
|
||||
$this->serviceName = $serviceName;
|
||||
$this->resourceName = $resourceName;
|
||||
$this->methods = isset($resource['methods']) ? $resource['methods'] : array($resourceName => $resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param $arguments
|
||||
* @return Yoast_Google_HttpRequest|array
|
||||
* @throws Yoast_Google_Exception
|
||||
*/
|
||||
public function __call($name, $arguments) {
|
||||
if (! isset($this->methods[$name])) {
|
||||
throw new Yoast_Google_Exception("Unknown function: {$this->serviceName}->{$this->resourceName}->{$name}()");
|
||||
}
|
||||
$method = $this->methods[$name];
|
||||
$parameters = $arguments[0];
|
||||
|
||||
// postBody is a special case since it's not defined in the discovery document as parameter, but we abuse the param entry for storing it
|
||||
$postBody = null;
|
||||
if (isset($parameters['postBody'])) {
|
||||
if (is_object($parameters['postBody'])) {
|
||||
$this->stripNull($parameters['postBody']);
|
||||
}
|
||||
|
||||
// Some APIs require the postBody to be set under the data key.
|
||||
if (is_array($parameters['postBody']) && 'latitude' == $this->serviceName) {
|
||||
if (!isset($parameters['postBody']['data'])) {
|
||||
$rawBody = $parameters['postBody'];
|
||||
unset($parameters['postBody']);
|
||||
$parameters['postBody']['data'] = $rawBody;
|
||||
}
|
||||
}
|
||||
|
||||
$postBody = is_array($parameters['postBody']) || is_object($parameters['postBody'])
|
||||
? json_encode($parameters['postBody'])
|
||||
: $parameters['postBody'];
|
||||
unset($parameters['postBody']);
|
||||
|
||||
if (isset($parameters['optParams'])) {
|
||||
$optParams = $parameters['optParams'];
|
||||
unset($parameters['optParams']);
|
||||
$parameters = array_merge($parameters, $optParams);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($method['parameters'])) {
|
||||
$method['parameters'] = array();
|
||||
}
|
||||
|
||||
$method['parameters'] = array_merge($method['parameters'], $this->stackParameters);
|
||||
foreach ($parameters as $key => $val) {
|
||||
if ($key != 'postBody' && ! isset($method['parameters'][$key])) {
|
||||
throw new Yoast_Google_Exception("($name) unknown parameter: '$key'");
|
||||
}
|
||||
}
|
||||
if (isset($method['parameters'])) {
|
||||
foreach ($method['parameters'] as $paramName => $paramSpec) {
|
||||
if (isset($paramSpec['required']) && $paramSpec['required'] && ! isset($parameters[$paramName])) {
|
||||
throw new Yoast_Google_Exception("($name) missing required param: '$paramName'");
|
||||
}
|
||||
if (isset($parameters[$paramName])) {
|
||||
$value = $parameters[$paramName];
|
||||
$parameters[$paramName] = $paramSpec;
|
||||
$parameters[$paramName]['value'] = $value;
|
||||
unset($parameters[$paramName]['required']);
|
||||
} else {
|
||||
unset($parameters[$paramName]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Discovery v1.0 puts the canonical method id under the 'id' field.
|
||||
if (! isset($method['id'])) {
|
||||
$method['id'] = $method['rpcMethod'];
|
||||
}
|
||||
|
||||
// Discovery v1.0 puts the canonical path under the 'path' field.
|
||||
if (! isset($method['path'])) {
|
||||
$method['path'] = $method['restPath'];
|
||||
}
|
||||
|
||||
$servicePath = $this->service->servicePath;
|
||||
|
||||
// Process Media Request
|
||||
$contentType = false;
|
||||
if (isset($method['mediaUpload'])) {
|
||||
$media = Yoast_Google_MediaFileUpload::process($postBody, $parameters);
|
||||
if ($media) {
|
||||
$contentType = isset($media['content-type']) ? $media['content-type']: null;
|
||||
$postBody = isset($media['postBody']) ? $media['postBody'] : null;
|
||||
$servicePath = $method['mediaUpload']['protocols']['simple']['path'];
|
||||
$method['path'] = '';
|
||||
}
|
||||
}
|
||||
|
||||
$url = Yoast_Google_REST::createRequestUri($servicePath, $method['path'], $parameters);
|
||||
$httpRequest = new Yoast_Google_HttpRequest($url, $method['httpMethod'], null, $postBody);
|
||||
if ($postBody) {
|
||||
$contentTypeHeader = array();
|
||||
if (isset($contentType) && $contentType) {
|
||||
$contentTypeHeader['content-type'] = $contentType;
|
||||
} else {
|
||||
$contentTypeHeader['content-type'] = 'application/json; charset=UTF-8';
|
||||
$contentTypeHeader['content-length'] = Yoast_Google_Utils::getStrLen($postBody);
|
||||
}
|
||||
$httpRequest->setRequestHeaders($contentTypeHeader);
|
||||
}
|
||||
|
||||
$httpRequest = Yoast_Google_Client::$auth->sign($httpRequest);
|
||||
if (Yoast_Google_Client::$useBatch) {
|
||||
return $httpRequest;
|
||||
}
|
||||
|
||||
// Terminate immediately if this is a resumable request.
|
||||
if (isset($parameters['uploadType']['value'])
|
||||
&& Yoast_Google_MediaFileUpload::UPLOAD_RESUMABLE_TYPE == $parameters['uploadType']['value']) {
|
||||
$contentTypeHeader = array();
|
||||
if (isset($contentType) && $contentType) {
|
||||
$contentTypeHeader['content-type'] = $contentType;
|
||||
}
|
||||
$httpRequest->setRequestHeaders($contentTypeHeader);
|
||||
if ($postBody) {
|
||||
$httpRequest->setPostBody($postBody);
|
||||
}
|
||||
return $httpRequest;
|
||||
}
|
||||
|
||||
return Yoast_Google_REST::execute($httpRequest);
|
||||
}
|
||||
|
||||
public function useObjects() {
|
||||
global $apiConfig;
|
||||
return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']);
|
||||
}
|
||||
|
||||
protected function stripNull(&$o) {
|
||||
$o = (array) $o;
|
||||
foreach ($o as $k => $v) {
|
||||
if ($v === null || strstr($k, "\0*\0__")) {
|
||||
unset($o[$k]);
|
||||
}
|
||||
elseif (is_object($v) || is_array($v)) {
|
||||
$this->stripNull($o[$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2011 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Collection of static utility methods used for convenience across
|
||||
* the client library.
|
||||
*
|
||||
* @author Chirag Shah <chirags@google.com>
|
||||
*/
|
||||
class Yoast_Google_Utils {
|
||||
public static function urlSafeB64Encode($data) {
|
||||
$b64 = base64_encode($data);
|
||||
$b64 = str_replace(array('+', '/', '\r', '\n', '='),
|
||||
array('-', '_'),
|
||||
$b64);
|
||||
return $b64;
|
||||
}
|
||||
|
||||
public static function urlSafeB64Decode($b64) {
|
||||
$b64 = str_replace(array('-', '_'),
|
||||
array('+', '/'),
|
||||
$b64);
|
||||
return base64_decode($b64);
|
||||
}
|
||||
|
||||
/**
|
||||
* Misc function used to count the number of bytes in a post body, in the world of multi-byte chars
|
||||
* and the unpredictability of strlen/mb_strlen/sizeof, this is the only way to do that in a sane
|
||||
* manner at the moment.
|
||||
*
|
||||
* This algorithm was originally developed for the
|
||||
* Solar Framework by Paul M. Jones
|
||||
*
|
||||
* @link http://solarphp.com/
|
||||
* @link http://svn.solarphp.com/core/trunk/Solar/Json.php
|
||||
* @link http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php
|
||||
* @param string $str
|
||||
* @return int The number of bytes in a string.
|
||||
*/
|
||||
static public function getStrLen($str) {
|
||||
$strlenVar = strlen($str);
|
||||
$d = $ret = 0;
|
||||
for ($count = 0; $count < $strlenVar; ++ $count) {
|
||||
$ordinalValue = ord($str{$ret});
|
||||
switch (true) {
|
||||
case (($ordinalValue >= 0x20) && ($ordinalValue <= 0x7F)):
|
||||
// characters U-00000000 - U-0000007F (same as ASCII)
|
||||
$ret ++;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xE0) == 0xC0):
|
||||
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 2;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xF0) == 0xE0):
|
||||
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 3;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xF8) == 0xF0):
|
||||
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 4;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xFC) == 0xF8):
|
||||
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 5;
|
||||
break;
|
||||
|
||||
case (($ordinalValue & 0xFE) == 0xFC):
|
||||
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$ret += 6;
|
||||
break;
|
||||
default:
|
||||
$ret ++;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalize all keys in an array to lower-case.
|
||||
* @param array $arr
|
||||
* @return array Normalized array.
|
||||
*/
|
||||
public static function normalize($arr) {
|
||||
if (!is_array($arr)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$normalized = array();
|
||||
foreach ($arr as $key => $val) {
|
||||
$normalized[strtolower($key)] = $val;
|
||||
}
|
||||
return $normalized;
|
||||
}
|
||||
}
|
47
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/i18n-module/CHANGELOG.md
vendored
Normal file
47
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/i18n-module/CHANGELOG.md
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
# Change Log
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## 3.0.0
|
||||
|
||||
### Added
|
||||
- Added functionality to handle how the i18n-promobox notification is displayed.
|
||||
|
||||
### Changed
|
||||
- [DEPRECATION] Postfix all classes with _v3. This prevents autoload collisions with 2.0 versions.
|
||||
|
||||
## 2.0.0
|
||||
|
||||
### Added
|
||||
- Add native support for WordPress.org
|
||||
|
||||
### Changed
|
||||
- [DEPRECATION] Postfix all classes with _v2. This prevents autoload collisions with 1.0 versions.
|
||||
|
||||
## 1.2.1
|
||||
|
||||
### Removed
|
||||
- Remove backwards incompatible changes. These are only backwards incompatible in a WordPress context, but this is the target audience.
|
||||
|
||||
## 1.2.0
|
||||
|
||||
### Added
|
||||
- Add native support for WordPress.org
|
||||
|
||||
## 1.1.0
|
||||
|
||||
### Changed
|
||||
- Use the user locale for deciding whether to display the message to the user.
|
||||
|
||||
## 1.0.1
|
||||
|
||||
### Fixed
|
||||
- Fix issue where a notice would be shown if the API response had no wp_locale.
|
||||
|
||||
## 1.0.0
|
||||
|
||||
### Added
|
||||
- Initial release of the i18n module to show the user a notice about their
|
||||
language not having been translated to 100%.
|
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* The Yoast i18n module with a connection to WordPress.org.
|
||||
*/
|
||||
class Yoast_I18n_WordPressOrg_v3 {
|
||||
|
||||
/**
|
||||
* The i18n object that presents the user with the notification.
|
||||
*
|
||||
* @var yoast_i18n_v3
|
||||
*/
|
||||
protected $i18n;
|
||||
|
||||
/**
|
||||
* Constructs the i18n module for wordpress.org. Required fields are the 'textdomain', 'plugin_name' and 'hook'
|
||||
*
|
||||
* @param array $args The settings for the i18n module.
|
||||
* @param bool $show_translation_box Whether the translation box should be shown.
|
||||
*/
|
||||
public function __construct( $args, $show_translation_box = true ) {
|
||||
$args = $this->set_defaults( $args );
|
||||
|
||||
$this->i18n = new Yoast_I18n_v3( $args, $show_translation_box );
|
||||
$this->set_api_url( $args['textdomain'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the i18n_promo message from the i18n_module. Returns en empty string if the promo shouldn't be shown.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @return string The i18n promo message.
|
||||
*/
|
||||
public function get_promo_message() {
|
||||
return $this->i18n->get_promo_message();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a button that can be used to dismiss the i18n-message.
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_dismiss_i18n_message_button() {
|
||||
return $this->i18n->get_dismiss_i18n_message_button();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default values for wordpress.org
|
||||
*
|
||||
* @param array $args The arguments to set defaults for.
|
||||
*
|
||||
* @return array The arguments with the arguments set.
|
||||
*/
|
||||
private function set_defaults( $args ) {
|
||||
|
||||
if ( ! isset( $args['glotpress_logo'] ) ) {
|
||||
$args['glotpress_logo'] = 'https://plugins.svn.wordpress.org/' . $args['textdomain'] . '/assets/icon-128x128.png';
|
||||
}
|
||||
|
||||
if ( ! isset( $args['register_url'] ) ) {
|
||||
$args['register_url'] = 'https://translate.wordpress.org/projects/wp-plugins/' . $args['textdomain'] . '/';
|
||||
}
|
||||
|
||||
if ( ! isset( $args['glotpress_name'] ) ) {
|
||||
$args['glotpress_name'] = 'Translating WordPress';
|
||||
}
|
||||
|
||||
if ( ! isset( $args['project_slug'] ) ) {
|
||||
$args['project_slug'] = $args['textdomain'];
|
||||
}
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the API URL on the i18n object.
|
||||
*
|
||||
* @param string $textdomain The textdomain to use for the API URL.
|
||||
*/
|
||||
private function set_api_url( $textdomain ) {
|
||||
$this->i18n->set_api_url( 'https://translate.wordpress.org/api/projects/wp-plugins/' . $textdomain . '/stable/' );
|
||||
}
|
||||
}
|
388
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/i18n-module/src/i18n-module.php
vendored
Normal file
388
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/i18n-module/src/i18n-module.php
vendored
Normal file
@ -0,0 +1,388 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This class defines a promo box and checks your translation site's API for stats about it, then shows them to the user.
|
||||
*/
|
||||
class Yoast_I18n_v3 {
|
||||
|
||||
/**
|
||||
* Your translation site's logo
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $glotpress_logo;
|
||||
|
||||
/**
|
||||
* Your translation site's name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $glotpress_name;
|
||||
|
||||
/**
|
||||
* Your translation site's URL
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $glotpress_url;
|
||||
|
||||
/**
|
||||
* The URL to actually do the API request to
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $api_url;
|
||||
|
||||
/**
|
||||
* Hook where you want to show the promo box
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $hook;
|
||||
|
||||
/**
|
||||
* Will contain the site's locale
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
private $locale;
|
||||
|
||||
/**
|
||||
* Will contain the locale's name, obtained from your translation site
|
||||
*
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
private $locale_name;
|
||||
|
||||
/**
|
||||
* Will contain the percentage translated for the plugin translation project in the locale
|
||||
*
|
||||
* @access private
|
||||
* @var int
|
||||
*/
|
||||
private $percent_translated;
|
||||
|
||||
/**
|
||||
* Name of your plugin
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $plugin_name;
|
||||
|
||||
/**
|
||||
* Project slug for the project on your translation site
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $project_slug;
|
||||
|
||||
/**
|
||||
* URL to point to for registration links
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $register_url;
|
||||
|
||||
/**
|
||||
* Your plugins textdomain
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $textdomain;
|
||||
|
||||
/**
|
||||
* Indicates whether there's a translation available at all.
|
||||
*
|
||||
* @access private
|
||||
* @var bool
|
||||
*/
|
||||
private $translation_exists;
|
||||
|
||||
/**
|
||||
* Indicates whether the translation's loaded.
|
||||
*
|
||||
* @access private
|
||||
* @var bool
|
||||
*/
|
||||
private $translation_loaded;
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
*
|
||||
* @param array $args Contains the settings for the class.
|
||||
* @param bool $show_translation_box Whether the translation box should be shown.
|
||||
*/
|
||||
public function __construct( $args, $show_translation_box = true ) {
|
||||
if ( ! is_admin() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->locale = $this->get_admin_locale();
|
||||
|
||||
if ( $this->is_default_language( $this->locale ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->init( $args );
|
||||
|
||||
if ( $show_translation_box ) {
|
||||
add_action( $this->hook, array( $this, 'promo' ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the language is en_US.
|
||||
*
|
||||
* @param string $language The language to check.
|
||||
*
|
||||
* @return bool Returns true if the language is en_US.
|
||||
*/
|
||||
protected function is_default_language( $language ) {
|
||||
return 'en_US' === $language;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the locale used in the admin.
|
||||
*
|
||||
* WordPress 4.7 introduced the ability for users to specify an Admin language
|
||||
* different from the language used on the front end. This checks if the feature
|
||||
* is available and returns the user's language, with a fallback to the site's language.
|
||||
* Can be removed when support for WordPress 4.6 will be dropped, in favor
|
||||
* of WordPress get_user_locale() that already fallbacks to the site’s locale.
|
||||
*
|
||||
* @returns string The locale.
|
||||
*/
|
||||
private function get_admin_locale() {
|
||||
if ( function_exists( 'get_user_locale' ) ) {
|
||||
return get_user_locale();
|
||||
}
|
||||
|
||||
return get_locale();
|
||||
}
|
||||
|
||||
/**
|
||||
* This is where you decide where to display the messages and where you set the plugin specific variables.
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @param array $args
|
||||
*/
|
||||
private function init( $args ) {
|
||||
foreach ( $args as $key => $arg ) {
|
||||
$this->$key = $arg;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the promo should be hidden or not
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function hide_promo() {
|
||||
$hide_promo = get_transient( 'yoast_i18n_' . $this->project_slug . '_promo_hide' );
|
||||
if ( ! $hide_promo ) {
|
||||
if ( filter_input( INPUT_GET, 'remove_i18n_promo', FILTER_VALIDATE_INT ) === 1 ) {
|
||||
// No expiration time, so this would normally not expire, but it wouldn't be copied to other sites etc.
|
||||
set_transient( 'yoast_i18n_' . $this->project_slug . '_promo_hide', true );
|
||||
$hide_promo = true;
|
||||
}
|
||||
}
|
||||
return $hide_promo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the i18n_promo message from the i18n_module. Returns en empty string if the promo shouldn't be shown.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @return string The i18n promo message.
|
||||
*/
|
||||
public function get_promo_message() {
|
||||
if ( ! $this->is_default_language( $this->locale ) && ! $this->hide_promo() ) {
|
||||
return $this->promo_message();
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a promo message
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return bool|string $message
|
||||
*/
|
||||
private function promo_message() {
|
||||
|
||||
$this->translation_details();
|
||||
|
||||
$message = false;
|
||||
|
||||
if ( $this->translation_exists && $this->translation_loaded && $this->percent_translated < 90 ) {
|
||||
$message = __( 'As you can see, there is a translation of this plugin in %1$s. This translation is currently %3$d%% complete. We need your help to make it complete and to fix any errors. Please register at %4$s to help complete the translation to %1$s!', $this->textdomain );
|
||||
} else if ( ! $this->translation_loaded && $this->translation_exists ) {
|
||||
$message = __( 'You\'re using WordPress in %1$s. While %2$s has been translated to %1$s for %3$d%%, it\'s not been shipped with the plugin yet. You can help! Register at %4$s to help complete the translation to %1$s!', $this->textdomain );
|
||||
} else if ( ! $this->translation_exists ) {
|
||||
$message = __( 'You\'re using WordPress in a language we don\'t support yet. We\'d love for %2$s to be translated in that language too, but unfortunately, it isn\'t right now. You can change that! Register at %4$s to help translate it!', $this->textdomain );
|
||||
}
|
||||
|
||||
$registration_link = sprintf( '<a href="%1$s">%2$s</a>', esc_url( $this->register_url ), esc_html( $this->glotpress_name ) );
|
||||
$message = sprintf( $message, esc_html( $this->locale_name ), esc_html( $this->plugin_name ), $this->percent_translated, $registration_link );
|
||||
|
||||
if ( $message ) {
|
||||
$message = '<p>' . $message . '</p>' . '<p><a href="' . esc_url( $this->register_url ) . '">' . __( 'Register now »', $this->textdomain ) . '</a></p>';
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a button that can be used to dismiss the i18n-message.
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_dismiss_i18n_message_button() {
|
||||
return sprintf(
|
||||
/* translators: %1$s is the notification dismissal link start tag, %2$s is the link closing tag. */
|
||||
__( '%1$sPlease don\'t show me this notification anymore%2$s', $this->textdomain ),
|
||||
'<a class="button" href="' . esc_url( add_query_arg( array( 'remove_i18n_promo' => '1' ) ) ) . '">',
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a promo box.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function promo() {
|
||||
$message = $this->get_promo_message();
|
||||
|
||||
if ( $message ) {
|
||||
echo '<div id="i18n_promo_box" style="border:1px solid #ccc;background-color:#fff;padding:10px;max-width:650px; overflow: hidden;">';
|
||||
echo '<a href="' . esc_url( add_query_arg( array( 'remove_i18n_promo' => '1' ) ) ) . '" style="color:#333;text-decoration:none;font-weight:bold;font-size:16px;border:1px solid #ccc;padding:1px 4px;" class="alignright">X</a>';
|
||||
|
||||
echo '<div>';
|
||||
echo '<h2>' . sprintf( __( 'Translation of %s', $this->textdomain ), $this->plugin_name ) . '</h2>';
|
||||
if ( isset( $this->glotpress_logo ) && '' != $this->glotpress_logo ) {
|
||||
echo '<a href="' . esc_url( $this->register_url ) . '"><img class="alignright" style="margin:0 5px 5px 5px;max-width:200px;" src="' . esc_url( $this->glotpress_logo ) . '" alt="' . esc_attr( $this->glotpress_name ) . '"/></a>';
|
||||
}
|
||||
echo $message;
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to find the transient for the translation set or retrieve them.
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return object|null
|
||||
*/
|
||||
private function find_or_initialize_translation_details() {
|
||||
$set = get_transient( 'yoast_i18n_' . $this->project_slug . '_' . $this->locale );
|
||||
|
||||
if ( ! $set ) {
|
||||
$set = $this->retrieve_translation_details();
|
||||
set_transient( 'yoast_i18n_' . $this->project_slug . '_' . $this->locale, $set, DAY_IN_SECONDS );
|
||||
}
|
||||
|
||||
return $set;
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to get translation details from cache, otherwise retrieve them, then parse them.
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
private function translation_details() {
|
||||
$set = $this->find_or_initialize_translation_details();
|
||||
|
||||
$this->translation_exists = ! is_null( $set );
|
||||
$this->translation_loaded = is_textdomain_loaded( $this->textdomain );
|
||||
|
||||
$this->parse_translation_set( $set );
|
||||
}
|
||||
|
||||
/**
|
||||
* The API URL to use when requesting translation information.
|
||||
*
|
||||
* @param string $api_url The new API URL.
|
||||
*/
|
||||
public function set_api_url( $api_url ) {
|
||||
$this->api_url = $api_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the API URL to use when requesting translation information.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function get_api_url() {
|
||||
if ( empty( $this->api_url ) ) {
|
||||
$this->api_url = trailingslashit( $this->glotpress_url ) . 'api/projects/' . $this->project_slug;
|
||||
}
|
||||
|
||||
return $this->api_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the translation details from Yoast Translate
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return object|null
|
||||
*/
|
||||
private function retrieve_translation_details() {
|
||||
$api_url = $this->get_api_url();
|
||||
|
||||
$resp = wp_remote_get( $api_url );
|
||||
if ( is_wp_error( $resp ) || wp_remote_retrieve_response_code( $resp ) !== 200 ) {
|
||||
return null;
|
||||
}
|
||||
$body = wp_remote_retrieve_body( $resp );
|
||||
unset( $resp );
|
||||
|
||||
if ( $body ) {
|
||||
$body = json_decode( $body );
|
||||
if ( empty( $body->translation_sets ) ) {
|
||||
return null;
|
||||
}
|
||||
foreach ( $body->translation_sets as $set ) {
|
||||
if ( ! property_exists( $set, 'wp_locale' ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( $this->locale === $set->wp_locale ) {
|
||||
return $set;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the needed private variables based on the results from Yoast Translate
|
||||
*
|
||||
* @param object $set The translation set
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
private function parse_translation_set( $set ) {
|
||||
if ( $this->translation_exists && is_object( $set ) ) {
|
||||
$this->locale_name = $set->name;
|
||||
$this->percent_translated = $set->percent_translated;
|
||||
} else {
|
||||
$this->locale_name = '';
|
||||
$this->percent_translated = '';
|
||||
}
|
||||
}
|
||||
}
|
35
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/CHANGELOG.md
vendored
Normal file
35
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/CHANGELOG.md
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
# Change Log
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [1.6.0] - 2017-08-22
|
||||
|
||||
### Added
|
||||
- Added a way to overwrite the result of the license manager in the implementing plugin. This is done by applying `yoast-license-valid` and `yoast-show-license-notice` filters.
|
||||
|
||||
### Fixed
|
||||
- Fixed activation of licenses on multisites and on wpml installations.
|
||||
|
||||
## [1.5.0] - 2017-02-28
|
||||
### Added
|
||||
- Add a `custom_message` option to the response which will be shown as a custom message after the default message.
|
||||
- Add a `custom_message_[locale]` option to the response which will be shown as a custom message only if the user locale is set to the locale in the message key.
|
||||
|
||||
## [1.4.0] - 2016-11-11
|
||||
### Added
|
||||
- Add a `get_extension_url` method to `Yoast_Product` to retrieve the URL where people can extend/upgrade their license.
|
||||
- Add a `set_extension_url` method to `Yoast_Product` to set the URL where people can extend/upgrade their license.
|
||||
|
||||
### Changed
|
||||
- Removed development files from zip that GitHub generates by settings export-ignore for certain files in `.gitattributes`, props [Danny van Kooten](https://github.com/dannyvankooten).
|
||||
|
||||
### Fixed
|
||||
- Add missing gettext functions to several strings, props [Pedro Mendonça](https://github.com/pedro-mendonca)
|
||||
- Improve text string for the new version notification, props [Xavi Ivars](https://github.com/xavivars)
|
||||
- Fix alignment of license fields by setting WordPress classes that have certain default styles that align form elements correctly.
|
||||
|
||||
## [1.3.0] - 2016-06-14
|
||||
### Fixed
|
||||
- Fix issue where the transient would be overwritten for different products with different slugs.
|
138
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/class-api-request.php
vendored
Normal file
138
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/class-api-request.php
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
if ( ! class_exists( "Yoast_API_Request", false ) ) {
|
||||
|
||||
/**
|
||||
* Handles requests to the Yoast EDD API
|
||||
*/
|
||||
class Yoast_API_Request {
|
||||
|
||||
/**
|
||||
* @var string Request URL
|
||||
*/
|
||||
private $url = '';
|
||||
|
||||
/**
|
||||
* @var array Request parameters
|
||||
*/
|
||||
private $args = array(
|
||||
'method' => 'GET',
|
||||
'timeout' => 10,
|
||||
'sslverify' => false,
|
||||
'headers' => array(
|
||||
'Accept-Encoding' => '*',
|
||||
'X-Yoast-EDD' => '1'
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
private $success = false;
|
||||
|
||||
/**
|
||||
* @var mixed
|
||||
*/
|
||||
private $response;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $error_message = '';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string url
|
||||
* @param array $args
|
||||
*/
|
||||
public function __construct( $url, array $args = array() ) {
|
||||
|
||||
// set api url
|
||||
$this->url = $url;
|
||||
|
||||
// set request args (merge with defaults)
|
||||
$this->args = wp_parse_args( $args, $this->args );
|
||||
|
||||
// fire the request
|
||||
$this->success = $this->fire();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires the request, automatically called from constructor
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
private function fire() {
|
||||
|
||||
// fire request to shop
|
||||
$response = wp_remote_request( $this->url, $this->args );
|
||||
|
||||
// validate raw response
|
||||
if( $this->validate_raw_response( $response ) === false ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// decode the response
|
||||
$this->response = json_decode( wp_remote_retrieve_body( $response ) );
|
||||
|
||||
// response should be an object
|
||||
if( ! is_object( $this->response ) ) {
|
||||
$this->error_message = 'No JSON object was returned.';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $response
|
||||
* @return boolean
|
||||
*/
|
||||
private function validate_raw_response( $response ) {
|
||||
|
||||
// make sure response came back okay
|
||||
if( is_wp_error( $response ) ) {
|
||||
$this->error_message = $response->get_error_message();
|
||||
return false;
|
||||
}
|
||||
|
||||
// check response code, should be 200
|
||||
$response_code = wp_remote_retrieve_response_code( $response );
|
||||
|
||||
if( false === strstr( $response_code, '200' ) ) {
|
||||
|
||||
$response_message = wp_remote_retrieve_response_message( $response );
|
||||
$this->error_message = "{$response_code} {$response_message}";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Was a valid response returned?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function is_valid() {
|
||||
return ( $this->success === true );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_error_message() {
|
||||
return $this->error_message;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return object
|
||||
*/
|
||||
public function get_response() {
|
||||
return $this->response;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,781 @@
|
||||
<?php
|
||||
|
||||
if ( ! interface_exists( 'iYoast_License_Manager', false ) ) {
|
||||
|
||||
interface iYoast_License_Manager {
|
||||
public function specific_hooks();
|
||||
|
||||
public function setup_auto_updater();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ( ! class_exists( 'Yoast_License_Manager', false ) ) {
|
||||
|
||||
/**
|
||||
* Class Yoast_License_Manager
|
||||
*/
|
||||
abstract class Yoast_License_Manager implements iYoast_License_Manager {
|
||||
|
||||
/**
|
||||
* @const VERSION The version number of the License_Manager class
|
||||
*/
|
||||
const VERSION = 1;
|
||||
|
||||
/**
|
||||
* @var Yoast_License The license
|
||||
*/
|
||||
protected $product;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $license_constant_name = '';
|
||||
|
||||
/**
|
||||
* @var boolean True if license is defined with a constant
|
||||
*/
|
||||
private $license_constant_is_defined = false;
|
||||
|
||||
/**
|
||||
* @var boolean True if remote license activation just failed
|
||||
*/
|
||||
private $remote_license_activation_failed = false;
|
||||
|
||||
/**
|
||||
* @var array Array of license related options
|
||||
*/
|
||||
private $options = array();
|
||||
|
||||
/**
|
||||
* @var string Used to prefix ID's, option names, etc..
|
||||
*/
|
||||
protected $prefix;
|
||||
|
||||
/**
|
||||
* @var bool Boolean indicating whether this plugin is network activated
|
||||
*/
|
||||
protected $is_network_activated = false;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Yoast_Product $product
|
||||
*/
|
||||
public function __construct( Yoast_Product $product ) {
|
||||
|
||||
// Set the license
|
||||
$this->product = $product;
|
||||
|
||||
// set prefix
|
||||
$this->prefix = sanitize_title_with_dashes( $this->product->get_item_name() . '_', null, 'save' );
|
||||
|
||||
// maybe set license key from constant
|
||||
$this->maybe_set_license_key_from_constant();
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup hooks
|
||||
*
|
||||
*/
|
||||
public function setup_hooks() {
|
||||
|
||||
// show admin notice if license is not active
|
||||
add_action( 'admin_notices', array( $this, 'display_admin_notices' ) );
|
||||
|
||||
// catch POST requests from license form
|
||||
add_action( 'admin_init', array( $this, 'catch_post_request' ) );
|
||||
|
||||
// Adds the plugin to the active extensions.
|
||||
add_filter( 'yoast-active-extensions', array( $this, 'set_active_extension' ) );
|
||||
|
||||
// setup item type (plugin|theme) specific hooks
|
||||
$this->specific_hooks();
|
||||
|
||||
// setup the auto updater
|
||||
$this->setup_auto_updater();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the license is valid and put it into the list with extensions.
|
||||
*
|
||||
* @param array $extensions The extensions used in Yoast SEO.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function set_active_extension( $extensions ) {
|
||||
if ( ! $this->license_is_valid() ) {
|
||||
$this->set_license_key( 'yoast-dummy-license' );
|
||||
$this->activate_license();
|
||||
}
|
||||
|
||||
if ( $this->license_is_valid() ) {
|
||||
$extensions[] = $this->product->get_slug();
|
||||
}
|
||||
|
||||
return $extensions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display license specific admin notices, namely:
|
||||
*
|
||||
* - License for the product isn't activated
|
||||
* - External requests are blocked through WP_HTTP_BLOCK_EXTERNAL
|
||||
*/
|
||||
public function display_admin_notices() {
|
||||
|
||||
if ( ! current_user_can( 'manage_options' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// show notice if license is invalid
|
||||
if ( $this->show_license_notice() && ! $this->license_is_valid() ) {
|
||||
if ( $this->get_license_key() == '' ) {
|
||||
$message = __( '<b>Warning!</b> You didn\'t set your %s license key yet, which means you\'re missing out on updates and support! <a href="%s">Enter your license key</a> or <a href="%s" target="_blank">get a license here</a>.' );
|
||||
} else {
|
||||
$message = __( '<b>Warning!</b> Your %s license is inactive which means you\'re missing out on updates and support! <a href="%s">Activate your license</a> or <a href="%s" target="_blank">get a license here</a>.' );
|
||||
}
|
||||
?>
|
||||
<div class="notice notice-error yoast-notice-error">
|
||||
<p><?php printf( __( $message, $this->product->get_text_domain() ), $this->product->get_item_name(), $this->product->get_license_page_url(), $this->product->get_tracking_url( 'activate-license-notice' ) ); ?></p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
// show notice if external requests are blocked through the WP_HTTP_BLOCK_EXTERNAL constant
|
||||
if ( defined( "WP_HTTP_BLOCK_EXTERNAL" ) && WP_HTTP_BLOCK_EXTERNAL === true ) {
|
||||
|
||||
// check if our API endpoint is in the allowed hosts
|
||||
$host = parse_url( $this->product->get_api_url(), PHP_URL_HOST );
|
||||
|
||||
if ( ! defined( "WP_ACCESSIBLE_HOSTS" ) || stristr( WP_ACCESSIBLE_HOSTS, $host ) === false ) {
|
||||
?>
|
||||
<div class="notice notice-error yoast-notice-error">
|
||||
<p><?php printf( __( '<b>Warning!</b> You\'re blocking external requests which means you won\'t be able to get %s updates. Please add %s to %s.', $this->product->get_text_domain() ), $this->product->get_item_name(), '<strong>' . $host . '</strong>', '<code>WP_ACCESSIBLE_HOSTS</code>' ); ?></p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a notice to display in the admin area
|
||||
*
|
||||
* @param string $type error|updated
|
||||
* @param string $message The message to display
|
||||
*/
|
||||
protected function set_notice( $message, $success = true ) {
|
||||
$css_class = ( $success ) ? 'notice-success yoast-notice-success' : 'notice-error yoast-notice-error';
|
||||
add_settings_error( $this->prefix . 'license', 'license-notice', $message, $css_class );
|
||||
}
|
||||
|
||||
/**
|
||||
* Remotely activate License
|
||||
* @return boolean True if the license is now activated, false if not
|
||||
*/
|
||||
public function activate_license() {
|
||||
|
||||
$result = $this->call_license_api( 'activate' );
|
||||
|
||||
if ( $result ) {
|
||||
|
||||
// show success notice if license is valid
|
||||
if ( $result->license === 'valid' ) {
|
||||
$success = true;
|
||||
$message = $this->get_successful_activation_message( $result );
|
||||
} else {
|
||||
$this->remote_license_activation_failed = true;
|
||||
|
||||
$success = false;
|
||||
$message = $this->get_unsuccessful_activation_message( $result );
|
||||
}
|
||||
|
||||
// Append custom HTML message to default message.
|
||||
$message .= $this->get_custom_message( $result );
|
||||
|
||||
if ( $this->show_license_notice() ) {
|
||||
$this->set_notice( $message, $success );
|
||||
}
|
||||
|
||||
$this->set_license_status( $result->license );
|
||||
}
|
||||
|
||||
return $this->license_is_valid();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remotely deactivate License
|
||||
* @return boolean True if the license is now deactivated, false if not
|
||||
*/
|
||||
public function deactivate_license() {
|
||||
|
||||
$result = $this->call_license_api( 'deactivate' );
|
||||
|
||||
if ( $result ) {
|
||||
|
||||
// show notice if license is deactivated
|
||||
if ( $result->license === 'deactivated' ) {
|
||||
$success = true;
|
||||
$message = sprintf( __( "Your %s license has been deactivated.", $this->product->get_text_domain() ), $this->product->get_item_name() );
|
||||
} else {
|
||||
$success = false;
|
||||
$message = sprintf( __( "Failed to deactivate your %s license.", $this->product->get_text_domain() ), $this->product->get_item_name() );
|
||||
}
|
||||
|
||||
$message .= $this->get_custom_message( $result );
|
||||
|
||||
// Append custom HTML message to default message.
|
||||
if ( $this->show_license_notice() ) {
|
||||
$this->set_notice( $message, $success );
|
||||
}
|
||||
|
||||
$this->set_license_status( $result->license );
|
||||
}
|
||||
|
||||
return ( $this->get_license_status() === 'deactivated' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the home url with the following modifications:
|
||||
*
|
||||
* In case of a multisite setup we return the network_home_url.
|
||||
* In case of no multisite setup we return the home_url while overriding the WPML filter.
|
||||
*/
|
||||
public function get_url() {
|
||||
// Add a new filter to undo WPML's changing of home url.
|
||||
add_filter( 'wpml_get_home_url', array( $this, 'wpml_get_home_url' ), 10, 2 );
|
||||
|
||||
// If the plugin is network activated, use the network home URL.
|
||||
if ( $this->is_network_activated ) {
|
||||
$url = network_home_url();
|
||||
}
|
||||
|
||||
// Otherwise use the home URL for this specific site.
|
||||
if ( ! $this->is_network_activated ) {
|
||||
$url = home_url();
|
||||
}
|
||||
|
||||
remove_filter( 'wpml_get_home_url', array( $this, 'wpml_get_home_url' ), 10 );
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the original URL instead of the language-enriched URL.
|
||||
* This method gets automatically triggered by the wpml_get_home_url filter.
|
||||
*
|
||||
* @param string $home_url The url altered by WPML. Unused.
|
||||
* @param string $url The url that isn't altered by WPML.
|
||||
*
|
||||
* @return string The original url.
|
||||
*/
|
||||
public function wpml_get_home_url( $home_url, $url ) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $action activate|deactivate
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected function call_license_api( $action ) {
|
||||
|
||||
// don't make a request if license key is empty
|
||||
if ( $this->get_license_key() === '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// data to send in our API request
|
||||
$api_params = array(
|
||||
'edd_action' => $action . '_license',
|
||||
'license' => $this->get_license_key(),
|
||||
'item_name' => urlencode( trim( $this->product->get_item_name() ) ),
|
||||
'url' => $this->get_url()
|
||||
// grab the URL straight from the option to prevent filters from breaking it.
|
||||
);
|
||||
|
||||
// create api request url
|
||||
$url = add_query_arg( $api_params, $this->product->get_api_url() );
|
||||
|
||||
require_once dirname( __FILE__ ) . '/class-api-request.php';
|
||||
$request = new Yoast_API_Request( $url );
|
||||
|
||||
if ( $request->is_valid() !== true ) {
|
||||
$this->set_notice( sprintf( __( "Request error: \"%s\" (%scommon license notices%s)", $this->product->get_text_domain() ), $request->get_error_message(), '<a href="http://kb.yoast.com/article/13-license-activation-notices">', '</a>' ), false );
|
||||
}
|
||||
|
||||
// get response
|
||||
return $request->get_response();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the license status
|
||||
*
|
||||
* @param string $license_status
|
||||
*/
|
||||
public function set_license_status( $license_status ) {
|
||||
$this->set_option( 'status', $license_status );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the license status
|
||||
*
|
||||
* @return string $license_status;
|
||||
*/
|
||||
public function get_license_status() {
|
||||
$license_status = $this->get_option( 'status' );
|
||||
|
||||
return trim( $license_status );
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the license key
|
||||
*
|
||||
* @param string $license_key
|
||||
*/
|
||||
public function set_license_key( $license_key ) {
|
||||
$this->set_option( 'key', $license_key );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the license key from constant or option
|
||||
*
|
||||
* @return string $license_key
|
||||
*/
|
||||
public function get_license_key() {
|
||||
$license_key = $this->get_option( 'key' );
|
||||
|
||||
return trim( $license_key );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the license expiry date
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_license_expiry_date() {
|
||||
return $this->get_option( 'expiry_date' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores the license expiry date
|
||||
*/
|
||||
public function set_license_expiry_date( $expiry_date ) {
|
||||
$this->set_option( 'expiry_date', $expiry_date );
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the license status is active
|
||||
*
|
||||
* @return boolean True if license is active
|
||||
*/
|
||||
public function license_is_valid() {
|
||||
return ( $this->get_license_status() === 'valid' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all license related options
|
||||
*
|
||||
* @return array Array of license options
|
||||
*/
|
||||
protected function get_options() {
|
||||
|
||||
// create option name
|
||||
$option_name = $this->prefix . 'license';
|
||||
|
||||
// get array of options from db
|
||||
if ( $this->is_network_activated ) {
|
||||
$options = get_site_option( $option_name, array() );
|
||||
} else {
|
||||
$options = get_option( $option_name, array() );
|
||||
}
|
||||
|
||||
// setup array of defaults
|
||||
$defaults = array(
|
||||
'key' => '',
|
||||
'status' => '',
|
||||
'expiry_date' => ''
|
||||
);
|
||||
|
||||
// merge options with defaults
|
||||
$this->options = wp_parse_args( $options, $defaults );
|
||||
|
||||
return $this->options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set license related options
|
||||
*
|
||||
* @param array $options Array of new license options
|
||||
*/
|
||||
protected function set_options( array $options ) {
|
||||
// create option name
|
||||
$option_name = $this->prefix . 'license';
|
||||
|
||||
// update db
|
||||
if ( $this->is_network_activated ) {
|
||||
update_site_option( $option_name, $options );
|
||||
} else {
|
||||
update_option( $option_name, $options );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a license related option
|
||||
*
|
||||
* @param string $name The option name
|
||||
*
|
||||
* @return mixed The option value
|
||||
*/
|
||||
protected function get_option( $name ) {
|
||||
$options = $this->get_options();
|
||||
|
||||
return $options[ $name ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a license related option
|
||||
*
|
||||
* @param string $name The option name
|
||||
* @param mixed $value The option value
|
||||
*/
|
||||
protected function set_option( $name, $value ) {
|
||||
// get options
|
||||
$options = $this->get_options();
|
||||
|
||||
// update option
|
||||
$options[ $name ] = $value;
|
||||
|
||||
// save options
|
||||
$this->set_options( $options );
|
||||
}
|
||||
|
||||
public function show_license_form_heading() {
|
||||
?>
|
||||
<h3>
|
||||
<?php printf( __( "%s: License Settings", $this->product->get_text_domain() ), $this->product->get_item_name() ); ?>
|
||||
|
||||
</h3>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a form where users can enter their license key
|
||||
*
|
||||
* @param boolean $embedded Boolean indicating whether this form is embedded in another form?
|
||||
*/
|
||||
public function show_license_form( $embedded = true ) {
|
||||
$key_name = $this->prefix . 'license_key';
|
||||
$nonce_name = $this->prefix . 'license_nonce';
|
||||
$action_name = $this->prefix . 'license_action';
|
||||
|
||||
$api_host_available = $this->get_api_availability();
|
||||
|
||||
$visible_license_key = $this->get_license_key();
|
||||
|
||||
// obfuscate license key
|
||||
$obfuscate = ( strlen( $this->get_license_key() ) > 5 && ( $this->license_is_valid() || ! $this->remote_license_activation_failed ) );
|
||||
|
||||
if ( $obfuscate ) {
|
||||
$visible_license_key = str_repeat( '*', strlen( $this->get_license_key() ) - 4 ) . substr( $this->get_license_key(), - 4 );
|
||||
}
|
||||
|
||||
// make license key readonly when license key is valid or license is defined with a constant
|
||||
$readonly = ( $this->license_is_valid() || $this->license_constant_is_defined );
|
||||
|
||||
require dirname( __FILE__ ) . '/views/form.php';
|
||||
|
||||
// enqueue script in the footer
|
||||
add_action( 'admin_footer', array( $this, 'output_script' ), 99 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the license form has been submitted
|
||||
*/
|
||||
public function catch_post_request() {
|
||||
|
||||
$name = $this->prefix . 'license_key';
|
||||
|
||||
// check if license key was posted and not empty
|
||||
if ( ! isset( $_POST[ $name ] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// run a quick security check
|
||||
$nonce_name = $this->prefix . 'license_nonce';
|
||||
|
||||
if ( ! check_admin_referer( $nonce_name, $nonce_name ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// @TODO: check for user cap?
|
||||
|
||||
// get key from posted value
|
||||
$license_key = $_POST[ $name ];
|
||||
|
||||
// check if license key doesn't accidentally contain asterisks
|
||||
if ( strstr( $license_key, '*' ) === false ) {
|
||||
|
||||
// sanitize key
|
||||
$license_key = trim( sanitize_key( $_POST[ $name ] ) );
|
||||
|
||||
// save license key
|
||||
$this->set_license_key( $license_key );
|
||||
}
|
||||
|
||||
// does user have an activated valid license
|
||||
if ( ! $this->license_is_valid() ) {
|
||||
|
||||
// try to auto-activate license
|
||||
return $this->activate_license();
|
||||
|
||||
}
|
||||
|
||||
$action_name = $this->prefix . 'license_action';
|
||||
|
||||
// was one of the action buttons clicked?
|
||||
if ( isset( $_POST[ $action_name ] ) ) {
|
||||
|
||||
$action = trim( $_POST[ $action_name ] );
|
||||
|
||||
switch ( $action ) {
|
||||
case 'activate':
|
||||
return $this->activate_license();
|
||||
|
||||
case 'deactivate':
|
||||
return $this->deactivate_license();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Output the script containing the YoastLicenseManager JS Object
|
||||
*
|
||||
* This takes care of disabling the 'activate' and 'deactivate' buttons
|
||||
*/
|
||||
public function output_script() {
|
||||
require_once dirname( __FILE__ ) . '/views/script.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the constant used to define the license
|
||||
*
|
||||
* @param string $license_constant_name The license constant name
|
||||
*/
|
||||
public function set_license_constant_name( $license_constant_name ) {
|
||||
$this->license_constant_name = trim( $license_constant_name );
|
||||
$this->maybe_set_license_key_from_constant();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the API availability information
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function get_api_availability() {
|
||||
return array(
|
||||
'url' => $this->product->get_api_url(),
|
||||
'availability' => $this->check_api_host_availability(),
|
||||
'curl_version' => $this->get_curl_version(),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the API host address is available from this server
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function check_api_host_availability() {
|
||||
$wp_http = new WP_Http();
|
||||
if ( $wp_http->block_request( $this->product->get_api_url() ) === false ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current curl version, or false
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected function get_curl_version() {
|
||||
if ( function_exists( 'curl_version' ) ) {
|
||||
$curl_version = curl_version();
|
||||
|
||||
if ( isset( $curl_version['version'] ) ) {
|
||||
return $curl_version['version'];
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Maybe set license key from a defined constant
|
||||
*/
|
||||
private function maybe_set_license_key_from_constant() {
|
||||
|
||||
if ( empty( $this->license_constant_name ) ) {
|
||||
// generate license constant name
|
||||
$this->set_license_constant_name( strtoupper( str_replace( array(
|
||||
' ',
|
||||
'-'
|
||||
), '', sanitize_key( $this->product->get_item_name() ) ) ) . '_LICENSE' );
|
||||
}
|
||||
|
||||
// set license key from constant
|
||||
if ( defined( $this->license_constant_name ) ) {
|
||||
|
||||
$license_constant_value = constant( $this->license_constant_name );
|
||||
|
||||
// update license key value with value of constant
|
||||
if ( $this->get_license_key() !== $license_constant_value ) {
|
||||
$this->set_license_key( $license_constant_value );
|
||||
}
|
||||
|
||||
$this->license_constant_is_defined = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine what message should be shown for a successful license activation
|
||||
*
|
||||
* @param Object $result Result of a request.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_successful_activation_message( $result ) {
|
||||
// Get expiry date.
|
||||
if ( isset( $result->expires ) ) {
|
||||
$this->set_license_expiry_date( $result->expires );
|
||||
$expiry_date = strtotime( $result->expires );
|
||||
} else {
|
||||
$expiry_date = false;
|
||||
}
|
||||
|
||||
// Always show that it was successful.
|
||||
$message = sprintf( __( "Your %s license has been activated. ", $this->product->get_text_domain() ), $this->product->get_item_name() );
|
||||
|
||||
// Show a custom notice it is an unlimited license.
|
||||
if ( $result->license_limit == 0 ) {
|
||||
$message .= __( "You have an unlimited license. ", $this->product->get_text_domain() );
|
||||
} else {
|
||||
$message .= sprintf( _n( "You have used %d/%d activation. ", "You have used %d/%d activations. ", $result->license_limit, $this->product->get_text_domain() ), $result->site_count, $result->license_limit );
|
||||
}
|
||||
|
||||
// add upgrade notice if user has less than 3 activations left
|
||||
if ( $result->license_limit > 0 && ( $result->license_limit - $result->site_count ) <= 3 ) {
|
||||
$message .= sprintf( __( '<a href="%s">Did you know you can upgrade your license?</a> ', $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-nearing-limit-notice' ) );
|
||||
}
|
||||
|
||||
if ( $expiry_date !== false && $expiry_date < strtotime( "+1 month" ) ) {
|
||||
// Add extend notice if license is expiring in less than 1 month.
|
||||
$days_left = round( ( $expiry_date - time() ) / 86400 );
|
||||
$message .= sprintf( _n( '<a href="%s">Your license is expiring in %d day, would you like to extend it?</a> ', '<a href="%s">Your license is expiring in %d days, would you like to extend it?</a> ', $days_left, $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-expiring-notice' ), $days_left );
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine what message should be shown for an unsuccessful activation
|
||||
*
|
||||
* @param Object $result Result of a request.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_unsuccessful_activation_message( $result ) {
|
||||
// Default message if we cannot detect anything more specific.
|
||||
$message = __( 'Failed to activate your license, your license key seems to be invalid.', $this->product->get_text_domain() );
|
||||
|
||||
if ( ! empty( $result->error ) ) {
|
||||
switch ( $result->error ) {
|
||||
// Show notice if user is at their activation limit.
|
||||
case 'no_activations_left':
|
||||
$message = sprintf( __( 'You\'ve reached your activation limit. You must <a href="%s">upgrade your license</a> to use it on this site.', $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-at-limit-notice' ) );
|
||||
break;
|
||||
|
||||
// Show notice if the license is expired.
|
||||
case 'expired':
|
||||
$message = sprintf( __( 'Your license has expired. You must <a href="%s">extend your license</a> in order to use it again.', $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-expired-notice' ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the locale for the current user
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_user_locale() {
|
||||
if ( function_exists( 'get_user_locale' ) ) {
|
||||
return get_user_locale();
|
||||
}
|
||||
|
||||
return get_locale();
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse custom HTML message from response
|
||||
*
|
||||
* @param Object $result Result of the request.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_custom_message( $result ) {
|
||||
$message = '';
|
||||
|
||||
// Allow for translated messages to be used.
|
||||
$localizedDescription = 'custom_message_' . $this->get_user_locale();
|
||||
if ( ! empty( $result->{$localizedDescription} ) ) {
|
||||
$message = $result->{$localizedDescription};
|
||||
}
|
||||
|
||||
// Fall back to non-localized custom message if no locale has been provided.
|
||||
if ( empty( $message ) && ! empty( $result->custom_message ) ) {
|
||||
$message = $result->custom_message;
|
||||
}
|
||||
|
||||
// Make sure we limit the type of HTML elements to be displayed.
|
||||
if ( ! empty( $message ) ) {
|
||||
$message = wp_kses( $message, array(
|
||||
'a' => array(
|
||||
'href' => array(),
|
||||
'target' => array(),
|
||||
'title' => array()
|
||||
),
|
||||
'br' => array(),
|
||||
) );
|
||||
|
||||
// Make sure we are on a new line.
|
||||
$message = '<br />' . $message;
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true when a license notice should be shown.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function show_license_notice() {
|
||||
/**
|
||||
* Filter: 'yoast-show-license-notice' - Show the license notice.
|
||||
*
|
||||
* @api bool $show True if notices should be shown.
|
||||
*/
|
||||
return ( bool ) apply_filters( 'yoast-show-license-notice', true );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
if ( class_exists( 'Yoast_License_Manager' ) && ! class_exists( "Yoast_Plugin_License_Manager", false ) ) {
|
||||
|
||||
class Yoast_Plugin_License_Manager extends Yoast_License_Manager {
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Yoast_Product $product
|
||||
*/
|
||||
public function __construct( Yoast_Product $product ) {
|
||||
|
||||
parent::__construct( $product );
|
||||
|
||||
// Check if plugin is network activated. We should use site(wide) options in that case.
|
||||
if( is_admin() && is_multisite() ) {
|
||||
|
||||
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
|
||||
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
||||
}
|
||||
|
||||
$this->is_network_activated = is_plugin_active_for_network( $product->get_file() );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup auto updater for plugins
|
||||
*/
|
||||
public function setup_auto_updater() {
|
||||
/**
|
||||
* Filter: 'yoast-license-valid' - Perform action when license is valid or hook returns true.
|
||||
*
|
||||
* @api bool $is_valid True if the license is valid.
|
||||
*/
|
||||
if ( apply_filters( 'yoast-license-valid', $this->license_is_valid() ) ) {
|
||||
// setup auto updater
|
||||
require_once( dirname( __FILE__ ) . '/class-update-manager.php' );
|
||||
require_once( dirname( __FILE__ ) . '/class-plugin-update-manager.php' );
|
||||
new Yoast_Plugin_Update_Manager( $this->product, $this );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup hooks
|
||||
*/
|
||||
public function specific_hooks() {
|
||||
|
||||
// deactivate the license remotely on plugin deactivation
|
||||
register_deactivation_hook( $this->product->get_file(), array( $this, 'deactivate_license' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a form where users can enter their license key
|
||||
* Takes Multisites into account
|
||||
*
|
||||
* @param bool $embedded
|
||||
* @return null
|
||||
*/
|
||||
public function show_license_form( $embedded = true ) {
|
||||
|
||||
// For non-multisites, always show the license form
|
||||
if( ! is_multisite() ) {
|
||||
parent::show_license_form( $embedded );
|
||||
return;
|
||||
}
|
||||
|
||||
// Plugin is network activated
|
||||
if( $this->is_network_activated ) {
|
||||
|
||||
// We're on the network admin
|
||||
if( is_network_admin() ) {
|
||||
parent::show_license_form( $embedded );
|
||||
} else {
|
||||
// We're not in the network admin area, show a notice
|
||||
parent::show_license_form_heading();
|
||||
if ( is_super_admin() ) {
|
||||
echo "<p>" . sprintf( __( '%s is network activated, you can manage your license in the <a href="%s">network admin license page</a>.', $this->product->get_text_domain() ), $this->product->get_item_name(), $this->product->get_license_page_url() ) . "</p>";
|
||||
} else {
|
||||
echo "<p>" . sprintf( __( '%s is network activated, please contact your site administrator to manage the license.', $this->product->get_text_domain() ), $this->product->get_item_name() ) . "</p>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if( false == is_network_admin() ) {
|
||||
parent::show_license_form( $embedded );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
if( class_exists( 'Yoast_Update_Manager' ) && ! class_exists( "Yoast_Plugin_Update_Manager", false ) ) {
|
||||
|
||||
class Yoast_Plugin_Update_Manager extends Yoast_Update_Manager {
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Yoast_Product $product The Product.
|
||||
* @param string $license_key The License entered.
|
||||
*/
|
||||
public function __construct( Yoast_Product $product, $license_key ) {
|
||||
parent::__construct( $product, $license_key );
|
||||
|
||||
// setup hooks
|
||||
$this->setup_hooks();
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup hooks
|
||||
*/
|
||||
private function setup_hooks() {
|
||||
|
||||
// check for updates
|
||||
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'set_updates_available_data' ) );
|
||||
|
||||
// get correct plugin information (when viewing details)
|
||||
add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Check for updates and if so, add to "updates available" data
|
||||
*
|
||||
* @param object $data
|
||||
* @return object $data
|
||||
*/
|
||||
public function set_updates_available_data( $data ) {
|
||||
|
||||
if ( empty( $data ) ) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
// send of API request to check for updates
|
||||
$remote_data = $this->get_remote_data();
|
||||
|
||||
// did we get a response?
|
||||
if( $remote_data === false ) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
// compare local version with remote version
|
||||
if ( version_compare( $this->product->get_version(), $remote_data->new_version, '<' ) ) {
|
||||
|
||||
// remote version is newer, add to data
|
||||
$data->response[ $this->product->get_file() ] = $remote_data;
|
||||
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets new plugin version details (view version x.x.x details)
|
||||
*
|
||||
* @uses api_request()
|
||||
*
|
||||
* @param object $data
|
||||
* @param string $action
|
||||
* @param object $args (optional)
|
||||
*
|
||||
* @return object $data
|
||||
*/
|
||||
public function plugins_api_filter( $data, $action = '', $args = null ) {
|
||||
|
||||
// only do something if we're checking for our plugin
|
||||
if ( $action !== 'plugin_information' || ! isset( $args->slug ) || $args->slug !== $this->product->get_slug() ) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
$api_response = $this->get_remote_data();
|
||||
|
||||
// did we get a response?
|
||||
if ( $api_response === false ) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
// return api response
|
||||
return $api_response;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
323
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/class-product.php
vendored
Normal file
323
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/class-product.php
vendored
Normal file
@ -0,0 +1,323 @@
|
||||
<?php
|
||||
|
||||
if ( ! class_exists( "Yoast_Product", false ) ) {
|
||||
|
||||
/**
|
||||
* Class Yoast_Product
|
||||
*
|
||||
* @todo create a license class and store an object of it in this class
|
||||
*/
|
||||
class Yoast_Product {
|
||||
|
||||
/**
|
||||
* @var string The URL of the shop running the EDD API.
|
||||
*/
|
||||
protected $api_url;
|
||||
|
||||
/**
|
||||
* @var string The item name in the EDD shop.
|
||||
*/
|
||||
protected $item_name;
|
||||
|
||||
/**
|
||||
* @var string The theme slug or plugin file
|
||||
*/
|
||||
protected $slug;
|
||||
|
||||
/**
|
||||
* @var string The version number of the item
|
||||
*/
|
||||
protected $version;
|
||||
|
||||
/**
|
||||
* @var string The absolute url on which users can purchase a license
|
||||
*/
|
||||
protected $item_url;
|
||||
|
||||
/**
|
||||
* @var string Absolute admin URL on which users can enter their license key.
|
||||
*/
|
||||
protected $license_page_url;
|
||||
|
||||
/**
|
||||
* @var string The text domain used for translating strings
|
||||
*/
|
||||
protected $text_domain;
|
||||
|
||||
/**
|
||||
* @var string The item author
|
||||
*/
|
||||
protected $author;
|
||||
|
||||
/**
|
||||
* @var string Relative file path to the plugin.
|
||||
*/
|
||||
protected $file;
|
||||
|
||||
/** @var int Product ID in backend system for quick lookup */
|
||||
protected $product_id;
|
||||
|
||||
/** @var string URL referring to the extension page */
|
||||
protected $extension_url;
|
||||
|
||||
/**
|
||||
* Yoast_Product constructor.
|
||||
*
|
||||
* @param string $api_url The URL of the shop running the EDD API.
|
||||
* @param string $item_name The item name in the EDD shop.
|
||||
* @param string $slug The slug of the plugin, for shiny updates this needs to be a valid HTML id.
|
||||
* @param string $version The version number of the item.
|
||||
* @param string $item_url The absolute url on which users can purchase a license.
|
||||
* @param string $license_page_url Absolute admin URL on which users can enter their license key.
|
||||
* @param string $text_domain The text domain used for translating strings.
|
||||
* @param string $author The item author.
|
||||
* @param string $file The relative file path to the plugin.
|
||||
* @param int $product_id The ID of the product in the backend system.
|
||||
*/
|
||||
public function __construct( $api_url, $item_name, $slug, $version, $item_url = '', $license_page_url = '#', $text_domain = 'yoast', $author = 'Yoast', $file = '', $product_id = 0 ) {
|
||||
$this->set_api_url( $api_url );
|
||||
$this->set_item_name( $item_name );
|
||||
$this->set_slug( $slug );
|
||||
$this->set_version( $version );
|
||||
$this->set_item_url( $item_url );
|
||||
$this->set_text_domain( $text_domain );
|
||||
$this->set_author( $author );
|
||||
$this->set_file( $file );
|
||||
$this->set_product_id( $product_id );
|
||||
$this->set_license_page_url( $license_page_url );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $api_url
|
||||
*/
|
||||
public function set_api_url( $api_url ) {
|
||||
$this->api_url = $api_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_api_url() {
|
||||
return $this->api_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $author
|
||||
*/
|
||||
public function set_author( $author ) {
|
||||
$this->author = $author;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_author() {
|
||||
return $this->author;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $item_name
|
||||
*/
|
||||
public function set_item_name( $item_name ) {
|
||||
$this->item_name = $item_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_item_name() {
|
||||
return $this->item_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $item_url
|
||||
*/
|
||||
public function set_item_url( $item_url ) {
|
||||
if ( empty( $item_url ) ) {
|
||||
$item_url = $this->api_url;
|
||||
}
|
||||
|
||||
$this->item_url = $item_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_item_url() {
|
||||
return $this->item_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $license_page_url
|
||||
*/
|
||||
public function set_license_page_url( $license_page_url ) {
|
||||
|
||||
if ( is_admin() && is_multisite() ) {
|
||||
|
||||
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
|
||||
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
||||
}
|
||||
|
||||
if ( is_plugin_active_for_network( $this->get_file() ) ) {
|
||||
$this->license_page_url = network_admin_url( $license_page_url );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$this->license_page_url = admin_url( $license_page_url );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_license_page_url() {
|
||||
return $this->license_page_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $slug
|
||||
*/
|
||||
public function set_slug( $slug ) {
|
||||
$this->slug = $slug;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_slug() {
|
||||
return $this->slug;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the dirname of the slug and limits it to 15 chars
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_transient_prefix() {
|
||||
return substr( md5( $this->file ), 0, 15 );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $text_domain
|
||||
*/
|
||||
public function set_text_domain( $text_domain ) {
|
||||
$this->text_domain = $text_domain;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_text_domain() {
|
||||
return $this->text_domain;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $version
|
||||
*/
|
||||
public function set_version( $version ) {
|
||||
$this->version = $version;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_version() {
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the file path relative to the plugins folder
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_file() {
|
||||
/*
|
||||
* Fall back to the slug for BC reasons.
|
||||
*
|
||||
* We used to pass the file to the slug field, but this isn't supported with the shiny updates in WordPress.
|
||||
* WordPress uses the slug in the HTML as an ID and a slash isn't a valid
|
||||
*/
|
||||
return empty( $this->file ) ? $this->slug : $this->file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the file path relative to the plugins folder
|
||||
*
|
||||
* @param string $file Relative file path to the plugin.
|
||||
*/
|
||||
public function set_file( $file ) {
|
||||
$this->file = $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the Product ID
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_product_id() {
|
||||
return $this->product_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the product ID
|
||||
*
|
||||
* @param int $product_id Product ID to set.
|
||||
*/
|
||||
public function set_product_id( $product_id ) {
|
||||
$this->product_id = (int) $product_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a Google Analytics Campaign url for this product
|
||||
*
|
||||
* @param string $link_identifier
|
||||
*
|
||||
* @return string The full URL
|
||||
*/
|
||||
public function get_tracking_url( $link_identifier = '' ) {
|
||||
return $this->add_campaign_attributes( $this->get_item_url(), $link_identifier );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the extension url if set, otherwise it will be the tracking url.
|
||||
*
|
||||
* @param string $link_identifier
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_extension_url( $link_identifier = '' ) {
|
||||
if ( $this->extension_url ) {
|
||||
return $this->add_campaign_attributes( $this->extension_url, $link_identifier );
|
||||
}
|
||||
|
||||
return $this->get_tracking_url( $link_identifier );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the extension url.
|
||||
*
|
||||
* @param string $extension_url
|
||||
*/
|
||||
public function set_extension_url( $extension_url ) {
|
||||
$this->extension_url = $extension_url;
|
||||
}
|
||||
|
||||
private function add_campaign_attributes( $url, $link_identifier ) {
|
||||
$tracking_vars = array(
|
||||
'utm_campaign' => $this->get_item_name() . ' licensing',
|
||||
'utm_medium' => 'link',
|
||||
'utm_source' => $this->get_item_name(),
|
||||
'utm_content' => $link_identifier
|
||||
);
|
||||
|
||||
// URL encode tracking vars.
|
||||
$tracking_vars = urlencode_deep( $tracking_vars );
|
||||
$query_string = build_query( $tracking_vars );
|
||||
|
||||
return $url . '#' . $query_string;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,224 @@
|
||||
<?php
|
||||
|
||||
if ( ! class_exists( "Yoast_Update_Manager", false ) ) {
|
||||
|
||||
class Yoast_Update_Manager {
|
||||
|
||||
/**
|
||||
* @var Yoast_Product
|
||||
*/
|
||||
protected $product;
|
||||
|
||||
/**
|
||||
* @var Yoast_License_Manager
|
||||
*/
|
||||
protected $license_manager;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $error_message = '';
|
||||
|
||||
/**
|
||||
* @var object
|
||||
*/
|
||||
protected $update_response = null;
|
||||
|
||||
/**
|
||||
* @var string The transient name storing the API response
|
||||
*/
|
||||
private $response_transient_key = '';
|
||||
|
||||
/**
|
||||
* @var string The transient name that stores failed request tries
|
||||
*/
|
||||
private $request_failed_transient_key = '';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Yoast_Product $product The product.
|
||||
* @param Yoast_License_Manager $license_manager The License Manager.
|
||||
*/
|
||||
public function __construct( Yoast_Product $product, $license_manager ) {
|
||||
$this->product = $product;
|
||||
$this->license_manager = $license_manager;
|
||||
|
||||
// generate transient names
|
||||
$this->response_transient_key = $this->product->get_transient_prefix() . '-update-response';
|
||||
$this->request_failed_transient_key = $this->product->get_transient_prefix() . '-update-request-failed';
|
||||
|
||||
// maybe delete transient
|
||||
$this->maybe_delete_transients();
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the various transients
|
||||
* If we're on the update-core.php?force-check=1 page
|
||||
*/
|
||||
private function maybe_delete_transients() {
|
||||
global $pagenow;
|
||||
|
||||
if ( $pagenow === 'update-core.php' && isset( $_GET['force-check'] ) ) {
|
||||
delete_transient( $this->response_transient_key );
|
||||
delete_transient( $this->request_failed_transient_key );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* If the update check returned a WP_Error, show it to the user
|
||||
*/
|
||||
public function show_update_error() {
|
||||
|
||||
if ( $this->error_message === '' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="notice notice-error yoast-notice-error">
|
||||
<p><?php printf( __( '%s failed to check for updates because of the following error: <em>%s</em>', $this->product->get_text_domain() ), $this->product->get_item_name(), $this->error_message ); ?></p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the API and, if successfull, returns the object delivered by the API.
|
||||
*
|
||||
* @uses get_bloginfo()
|
||||
* @uses wp_remote_post()
|
||||
* @uses is_wp_error()
|
||||
*
|
||||
* @return false||object
|
||||
*/
|
||||
private function call_remote_api() {
|
||||
|
||||
// only check if the failed transient is not set (or if it's expired)
|
||||
if ( get_transient( $this->request_failed_transient_key ) !== false ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// start request process
|
||||
global $wp_version;
|
||||
|
||||
// set a transient to prevent failed update checks on every page load
|
||||
// this transient will be removed if a request succeeds
|
||||
set_transient( $this->request_failed_transient_key, 'failed', 10800 );
|
||||
|
||||
// setup api parameters
|
||||
$api_params = array(
|
||||
'edd_action' => 'get_version',
|
||||
'license' => $this->license_manager->get_license_key(),
|
||||
'item_name' => $this->product->get_item_name(),
|
||||
'wp_version' => $wp_version,
|
||||
'item_version' => $this->product->get_version(),
|
||||
'url' => $this->license_manager->get_url(),
|
||||
'slug' => $this->product->get_slug(),
|
||||
);
|
||||
|
||||
// Add product ID from product if it is implemented.
|
||||
if ( method_exists( $this->product, 'get_product_id' ) ) {
|
||||
$product_id = $this->product->get_product_id();
|
||||
if ( $product_id > 0 ) {
|
||||
$api_params['product_id'] = $this->product->get_product_id();
|
||||
}
|
||||
}
|
||||
|
||||
// setup request parameters
|
||||
$request_params = array(
|
||||
'method' => 'POST',
|
||||
'body' => $api_params
|
||||
);
|
||||
|
||||
require_once dirname( __FILE__ ) . '/class-api-request.php';
|
||||
$request = new Yoast_API_Request( $this->product->get_api_url(), $request_params );
|
||||
|
||||
if ( $request->is_valid() !== true ) {
|
||||
|
||||
// show error message
|
||||
$this->error_message = $request->get_error_message();
|
||||
add_action( 'admin_notices', array( $this, 'show_update_error' ) );
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// request succeeded, delete transient indicating a request failed
|
||||
delete_transient( $this->request_failed_transient_key );
|
||||
|
||||
// decode response
|
||||
$response = $request->get_response();
|
||||
|
||||
// check if response returned that a given site was inactive
|
||||
if ( isset( $response->license_check ) && ! empty( $response->license_check ) && $response->license_check != 'valid' ) {
|
||||
|
||||
// deactivate local license
|
||||
$this->license_manager->set_license_status( 'invalid' );
|
||||
|
||||
// show notice to let the user know we deactivated his/her license
|
||||
$this->error_message = __( "This site has not been activated properly on yoast.com and thus cannot check for future updates. Please activate your site with a valid license key.", $this->product->get_text_domain() );
|
||||
|
||||
/**
|
||||
* Filter: 'yoast-show-license-notice' - Show the license notice.
|
||||
*
|
||||
* @api bool $show True if notices should be shown.
|
||||
*/
|
||||
if ( apply_filters( 'yoast-show-license-notice', true ) ) {
|
||||
add_action( 'admin_notices', array( $this, 'show_update_error' ) );
|
||||
}
|
||||
}
|
||||
|
||||
$response->sections = maybe_unserialize( $response->sections );
|
||||
|
||||
// store response
|
||||
set_transient( $this->response_transient_key, $response, 10800 );
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the remote product data (from the EDD API)
|
||||
*
|
||||
* - If it was previously fetched in the current requests, this gets it from the instance property
|
||||
* - Next, it tries the 3-hour transient
|
||||
* - Next, it calls the remote API and stores the result
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
protected function get_remote_data() {
|
||||
|
||||
// always use property if it's set
|
||||
if ( null !== $this->update_response ) {
|
||||
return $this->update_response;
|
||||
}
|
||||
|
||||
// get cached remote data
|
||||
$data = $this->get_cached_remote_data();
|
||||
|
||||
// if cache is empty or expired, call remote api
|
||||
if ( $data === false ) {
|
||||
$data = $this->call_remote_api();
|
||||
}
|
||||
|
||||
$this->update_response = $data;
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the remote product data from a 3-hour transient
|
||||
*
|
||||
* @return bool|mixed
|
||||
*/
|
||||
private function get_cached_remote_data() {
|
||||
|
||||
$data = get_transient( $this->response_transient_key );
|
||||
|
||||
if ( $data ) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
2
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/index.php
vendored
Normal file
2
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/index.php
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
//Nothing to see here
|
102
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/views/form.php
vendored
Normal file
102
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/views/form.php
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
header( 'HTTP/1.0 403 Forbidden' );
|
||||
die;
|
||||
}
|
||||
|
||||
/**
|
||||
* @var Yoast_Product $product
|
||||
*/
|
||||
$product = $this->product;
|
||||
|
||||
$this->show_license_form_heading();
|
||||
|
||||
if( $api_host_available['availability'] === false ){
|
||||
echo '<div class="notice notice-error inline yoast-notice-error"><p>' . sprintf( __( 'We couldn\'t create a connection to our API to verify your license key(s). Please ask your hosting company to allow outgoing connections from your server to %s.', $product->get_text_domain() ), $api_host_available['url'] ) . '</p></div>';
|
||||
}
|
||||
|
||||
if( $api_host_available['curl_version'] !== false && version_compare( $api_host_available['curl_version'], '7.20.0', '<')){
|
||||
echo '<div class="notice notice-error inline yoast-notice-error"><p>' . sprintf( __( 'Your server has an outdated version of the PHP module cURL (Version: %s). Please ask your hosting company to update this to a recent version of cURL. You can read more about that in our %sKnowledge base%s.', $product->get_text_domain() ), $api_host_available['curl_version'], '<a href="http://kb.yoast.com/article/90-is-my-curl-up-to-date" target="_blank">', '</a>' ) . '</p></div>';
|
||||
}
|
||||
|
||||
// Output form tags if we're not embedded in another form
|
||||
if( ! $embedded ) {
|
||||
echo '<form method="post" action="">';
|
||||
}
|
||||
|
||||
wp_nonce_field( $nonce_name, $nonce_name ); ?>
|
||||
<table class="form-table yoast-license-form">
|
||||
<tbody>
|
||||
<tr valign="top">
|
||||
<th scope="row" valign="top"><?php _e( 'License status', $product->get_text_domain() ); ?></th>
|
||||
<td>
|
||||
<?php if ( $this->license_is_valid() ) { ?>
|
||||
<span class="yoast-license-status-active"><?php _e( 'ACTIVE', $product->get_text_domain() ); ?></span> - <?php _e( 'you are receiving updates.', $product->get_text_domain() ); ?>
|
||||
<?php } else { ?>
|
||||
<span class="yoast-license-status-inactive"><?php _e( 'INACTIVE', $product->get_text_domain() ); ?></span> - <?php _e( 'you are <strong>not</strong> receiving updates.', $product->get_text_domain() ); ?>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row" valign="top"><?php _e('Toggle license status', $product->get_text_domain() ); ?></th>
|
||||
<td class="yoast-license-toggler">
|
||||
|
||||
<?php if( $this->license_is_valid() ) { ?>
|
||||
<button name="<?php echo esc_attr( $action_name ); ?>" type="submit" class="button button-secondary yoast-license-deactivate" value="deactivate"><?php echo esc_html_e( 'Deactivate License', $product->get_text_domain() ); ?></button>
|
||||
<small><?php _e( '(deactivate your license so you can activate it on another WordPress site)', $product->get_text_domain() ); ?></small>
|
||||
<?php } else {
|
||||
|
||||
if( $this->get_license_key() !== '') { ?>
|
||||
<button name="<?php echo esc_attr( $action_name ); ?>" type="submit" class="button button-secondary yoast-license-activate" value="activate" /><?php echo esc_html_e('Activate License', $product->get_text_domain() ); ?></button>
|
||||
<?php } else {
|
||||
_e( 'Please enter a license key in the field below first.', $product->get_text_domain() );
|
||||
}
|
||||
|
||||
} ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row" valign="top"><?php _e( 'License Key', $product->get_text_domain() ); ?></th>
|
||||
<td>
|
||||
<input name="<?php echo esc_attr( $key_name ); ?>" type="text" class="regular-text textinput yoast-license-key-field <?php if( $obfuscate ) { ?>yoast-license-obfuscate<?php } ?>" value="<?php echo esc_attr( $visible_license_key ); ?>" placeholder="<?php echo esc_attr( sprintf( __( 'Paste your %s license key here...', $product->get_text_domain() ), $product->get_item_name() ) ); ?>" <?php if( $readonly ) { echo 'readonly="readonly"'; } ?> />
|
||||
<?php if( $this->license_constant_is_defined ) { ?>
|
||||
<p class="help"><?php printf( __( "You defined your license key using the %s PHP constant.", $product->get_text_domain() ), '<code>' . $this->license_constant_name . '</code>' ); ?></p>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
|
||||
if( $this->license_is_valid() ) {
|
||||
|
||||
$expiry_date = strtotime( $this->get_license_expiry_date() );
|
||||
|
||||
if( $expiry_date !== false ) {
|
||||
echo '<p>';
|
||||
|
||||
printf( __( 'Your %s license will expire on %s.', $product->get_text_domain() ), $product->get_item_name(), date('F jS Y', $expiry_date ) );
|
||||
|
||||
if( strtotime( '+3 months' ) > $expiry_date ) {
|
||||
printf( ' ' . __('%sRenew your license now%s.', $product->get_text_domain() ), '<a href="'. $this->product->get_tracking_url( 'renewal' ) .'">', '</a>' );
|
||||
}
|
||||
|
||||
echo '</p>';
|
||||
}
|
||||
}
|
||||
|
||||
// Only show a "Save Changes" button and end form if we're not embedded in another form.
|
||||
if( ! $embedded ) {
|
||||
|
||||
// only show "Save Changes" button if license is not activated and not defined with a constant
|
||||
if( $readonly === false && $api_host_available['availability'] === true ) {
|
||||
submit_button();
|
||||
}
|
||||
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
$product = null;
|
2
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/views/index.php
vendored
Normal file
2
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/views/index.php
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
//Nothing to see here
|
67
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/views/script.php
vendored
Normal file
67
msd2/wordpress/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/views/script.php
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
header( 'HTTP/1.0 403 Forbidden' );
|
||||
die;
|
||||
}
|
||||
?><script type="text/javascript">
|
||||
(function($) {
|
||||
|
||||
if( typeof YoastLicenseManager !== "undefined" ) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.YoastLicenseManager = (function () {
|
||||
|
||||
function init() {
|
||||
var $keyInputs = $(".yoast-license-key-field.yoast-license-obfuscate");
|
||||
var $actionButtons = $('.yoast-license-toggler button');
|
||||
var $submitButtons = $('input[type="submit"], button[type="submit"]');
|
||||
|
||||
$submitButtons.click( addDisableEvent );
|
||||
$actionButtons.click( actOnLicense );
|
||||
$keyInputs.click( setEmptyValue );
|
||||
}
|
||||
|
||||
function setEmptyValue() {
|
||||
if( ! $(this).is('[readonly]') ) {
|
||||
$(this).val('');
|
||||
}
|
||||
}
|
||||
|
||||
function actOnLicense() {
|
||||
var $formScope = $(this).closest('form');
|
||||
var $actionButton = $formScope.find('.yoast-license-toggler button');
|
||||
|
||||
// fake input field with exact same name => value
|
||||
$("<input />")
|
||||
.attr('type', 'hidden')
|
||||
.attr( 'name', $(this).attr('name') )
|
||||
.val( $(this).val() )
|
||||
.appendTo( $formScope );
|
||||
|
||||
// change button text to show we're working..
|
||||
var text = ( $actionButton.hasClass('yoast-license-activate') ) ? "Activating..." : "Deactivating...";
|
||||
$actionButton.text( text );
|
||||
}
|
||||
|
||||
function addDisableEvent() {
|
||||
var $formScope = $(this).closest('form');
|
||||
$formScope.submit(disableButtons);
|
||||
}
|
||||
|
||||
function disableButtons() {
|
||||
var $formScope = $(this).closest('form');
|
||||
var $submitButton = $formScope.find('input[type="submit"], button[type="submit"]');
|
||||
$submitButton.prop( 'disabled', true );
|
||||
}
|
||||
|
||||
return {
|
||||
init: init
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
YoastLicenseManager.init();
|
||||
|
||||
})(jQuery);
|
||||
</script>
|
Reference in New Issue
Block a user