From 86dbbc1013f03cd2d78170d0f86393434a8aae78 Mon Sep 17 00:00:00 2001 From: Danny Gershman Date: Wed, 14 Nov 2018 00:10:48 -0500 Subject: [PATCH 1/6] migrating to composer for dependency management --- .editorconfig | 3 + .gitignore | 2 + .gitmodules | 3 - Dockerfile | 26 ++ bmlt-wordpress-satellite-plugin.php | 11 +- composer.json | 21 ++ composer.lock | 65 ++++ contribute.md | 17 + doc/Doxyfile | 2 +- docker-compose.yml | 23 ++ vendor/autoload.php | 7 + vendor/bmlt/bmlt-satellite-base-class | 1 + vendor/bmlt/bmlt-satellite-driver | 1 + vendor/composer/ClassLoader.php | 445 ++++++++++++++++++++++++ vendor/composer/LICENSE | 21 ++ vendor/composer/autoload_classmap.php | 9 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 9 + vendor/composer/autoload_real.php | 52 +++ vendor/composer/autoload_static.php | 15 + vendor/composer/installed.json | 51 +++ 21 files changed, 784 insertions(+), 9 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitignore delete mode 100644 .gitmodules create mode 100644 Dockerfile create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 contribute.md create mode 100644 docker-compose.yml create mode 100644 vendor/autoload.php create mode 160000 vendor/bmlt/bmlt-satellite-base-class create mode 160000 vendor/bmlt/bmlt-satellite-driver create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..924c715 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,3 @@ +[*.json] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..242bd95 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +logs/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 9dea212..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "BMLT-Satellite-Base-Class"] - path = BMLT-Satellite-Base-Class - url = git@bitbucket.org:bmlt/bmlt-satellite-base-class.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..06466ef --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM wordpress:4.9.8-php7.2-apache + +RUN apt-get update && \ + apt-get install -y --no-install-recommends ssl-cert && \ + rm -r /var/lib/apt/lists/* && \ + a2enmod ssl rewrite expires && \ + a2ensite default-ssl + +ENV PHP_INI_PATH "/usr/local/etc/php/php.ini" + +RUN pecl install xdebug-2.6.1 \ + && docker-php-ext-enable xdebug \ + && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_port=9000" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_enable=1" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_connect_back=0" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_host=docker.for.mac.localhost" >> ${PHP_INI_PATH} \ + && echo "xdebug.idekey=IDEA_DEBUG" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_autostart=1" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_log=/tmp/xdebug.log" >> ${PHP_INI_PATH} \ + && echo "log_errors = On" >> ${PHP_INI_PATH} \ + && echo "error_reporting = E_ALL" >> ${PHP_INI_PATH} \ + && echo "error_log=/var/www/php_error.log" >> ${PHP_INI_PATH} + +EXPOSE 80 +EXPOSE 443 diff --git a/bmlt-wordpress-satellite-plugin.php b/bmlt-wordpress-satellite-plugin.php index b93e037..e019f56 100644 --- a/bmlt-wordpress-satellite-plugin.php +++ b/bmlt-wordpress-satellite-plugin.php @@ -49,7 +49,8 @@ } // Include the satellite driver class. -require_once ( dirname ( __FILE__ ).'/BMLT-Satellite-Base-Class/bmlt-cms-satellite-plugin.php' ); +define('ROOTPATH', __DIR__); +require_once ( ROOTPATH .'/vendor/bmlt/bmlt-satellite-base-class/bmlt-cms-satellite-plugin.php' ); /****************************************************************************************//** * \class BMLTWPPlugin * @@ -392,7 +393,7 @@ function standard_head ( $from_admin = false ///< True, if this was called fr $head_content .= self::stripFile ( 'table_styles.css' ) . "\n"; $head_content .= self::stripFile ( 'quicksearch.css' ) . "\n"; - $dirname = dirname ( __FILE__ ) . '/BMLT-Satellite-Base-Class/themes'; + $dirname = dirname ( __FILE__ ) . '/vendor/bmlt/bmlt-satellite-base-class/themes'; $dir = new DirectoryIterator ( $dirname ); foreach ( $dir as $fileinfo ) @@ -582,11 +583,11 @@ protected function get_plugin_path() { if ( plugins_url() ) { - $url = plugins_url()."/bmlt-wordpress-satellite-plugin/BMLT-Satellite-Base-Class/"; + $url = plugins_url()."/bmlt-wordpress-satellite-plugin/vendor/bmlt/bmlt-satellite-base-class/"; } elseif ( defined ('WP_PLUGIN_URL' ) ) { - $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/BMLT-Satellite-Base-Class/"; + $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/vendor/bmlt/bmlt-satellite-base-class/"; } else { @@ -595,7 +596,7 @@ protected function get_plugin_path() } elseif ( !function_exists ( 'plugins_url' ) && defined ('WP_PLUGIN_URL' ) ) { - $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/BMLT-Satellite-Base-Class/"; + $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/vendor/bmlt/bmlt-satellite-base-class/"; } else { diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..6e9823d --- /dev/null +++ b/composer.json @@ -0,0 +1,21 @@ +{ + "name": "bmlt/bmlt-wp", + "description": "This is a WordPress plugin of a BMLT satellite client.", + "type": "project", + "license": "GPL", + "authors": [{ + "name": "Chris Marshall", + "email": "cmarshall@mac.com" + }], + "repositories": [{ + "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", + "type": "git" + }, { + "url": "https://bitbucket.org/radius314/bmlt-satellite-driver", + "type": "git" + }], + "require": { + "bmlt/bmlt-satellite-base-class": "dev-master", + "bmlt/bmlt-satellite-driver": "dev-master" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..a05c8bd --- /dev/null +++ b/composer.lock @@ -0,0 +1,65 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0aa4a3f0e6805715d8fda4f651717b81", + "packages": [ + { + "name": "bmlt/bmlt-satellite-base-class", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", + "reference": "e9e2cc0056aecc008ea313d2caa5f971424848e8" + }, + "require": { + "bmlt/bmlt-satellite-driver": "dev-master" + }, + "type": "library", + "license": [ + "GPL" + ], + "authors": [ + { + "name": "Chris Marshall", + "email": "cmarshall@mac.com" + } + ], + "description": "This is a generic CMS plugin class for a BMLT satellite client.", + "time": "2018-11-01T01:07:13+00:00" + }, + { + "name": "bmlt/bmlt-satellite-driver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://bitbucket.org/radius314/bmlt-satellite-driver", + "reference": "fdb4f517178464b82cf4080018e54eeca7051454" + }, + "type": "library", + "license": [ + "GPL" + ], + "authors": [ + { + "name": "Chris Marshall", + "email": "cmarshall@mac.com" + } + ], + "description": "Provides low-level communication to the BMLT Root Server.", + "time": "2018-11-01T00:12:44+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": { + "bmlt/bmlt-satellite-base-class": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/contribute.md b/contribute.md new file mode 100644 index 0000000..b49d274 --- /dev/null +++ b/contribute.md @@ -0,0 +1,17 @@ +To contribute to bmlt-wp, fork, make your changes and send a pull request to the master branch. + +Take a look at the issues for bugs that you might be able to help fix. + +Once your pull request is merged it will be released in the next version. + +We are using https://github.com/GaryJones/wordpress-plugin-svn-deploy to deploy the plugin to SVN. + +To get things going in your local environment. + +`docker-compose up` + +Get your wordpress installation going. Remember your admin password. Once it's up, login to admin and activate the "BMLT Satellite PLugin" plugin. + +Now you can make edits to the crouton.php file and it will instantly take effect. + +Please make note of the .editorconfig file and adhere to it as this will minimise the amount of formatting errors. If you are using PHPStorm you will need to install the EditorConfig plugin. diff --git a/doc/Doxyfile b/doc/Doxyfile index 6313bf3..3e37fa4 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -824,7 +824,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = ../BMLT-Satellite-Base-Class +EXCLUDE = ../vendor/bmlt/bmlt-satellite-base-class # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a2fb97c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.1' + +services: + wordpress: + build: . + restart: always + ports: + - 8080:80 + - 7443:443 + environment: + WORDPRESS_DB_PASSWORD: example + VIRTUAL_HOST: localhost + volumes: + - ../:/var/www/html/wp-content/plugins + - ./logs/:/var/log/apache2 + + mysql: + image: mysql:5.7 + restart: always + ports: + - 3306:3306 + environment: + MYSQL_ROOT_PASSWORD: example diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 0000000..2c8dda9 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * 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 + * @author Jordi Boggiano + * @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') && ini_get('apc.enabled') ? $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; +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/vendor/composer/LICENSE @@ -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. + diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..7a91153 --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,9 @@ += 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\ComposerStaticInitc685eb92813365560f2e9801abb552de::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; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..a1addbc --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,15 @@ + Date: Wed, 14 Nov 2018 00:26:55 -0500 Subject: [PATCH 2/6] repo location updates --- composer.json | 4 ++-- composer.lock | 11 ++++++----- contribute.md | 4 +++- readme.txt | 3 ++- vendor/bmlt/bmlt-satellite-base-class | 2 +- vendor/composer/installed.json | 4 ++-- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index 6e9823d..1629256 100644 --- a/composer.json +++ b/composer.json @@ -8,10 +8,10 @@ "email": "cmarshall@mac.com" }], "repositories": [{ - "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", + "url": "https://bitbucket.org/bmlt/bmlt-satellite-base-class", "type": "git" }, { - "url": "https://bitbucket.org/radius314/bmlt-satellite-driver", + "url": "https://bitbucket.org/bmlt/bmlt-satellite-driver", "type": "git" }], "require": { diff --git a/composer.lock b/composer.lock index a05c8bd..2b88b1b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0aa4a3f0e6805715d8fda4f651717b81", + "content-hash": "835e46d434813d9aa3df0a06fa701b64", "packages": [ { "name": "bmlt/bmlt-satellite-base-class", @@ -12,7 +12,7 @@ "source": { "type": "git", "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", - "reference": "e9e2cc0056aecc008ea313d2caa5f971424848e8" + "reference": "dcd70df04817a1d203bbecca09c9c73237fca70a" }, "require": { "bmlt/bmlt-satellite-driver": "dev-master" @@ -28,7 +28,7 @@ } ], "description": "This is a generic CMS plugin class for a BMLT satellite client.", - "time": "2018-11-01T01:07:13+00:00" + "time": "2018-11-14T05:19:59+00:00" }, { "name": "bmlt/bmlt-satellite-driver", @@ -54,9 +54,10 @@ ], "packages-dev": [], "aliases": [], - "minimum-stability": "dev", + "minimum-stability": "stable", "stability-flags": { - "bmlt/bmlt-satellite-base-class": 20 + "bmlt/bmlt-satellite-base-class": 20, + "bmlt/bmlt-satellite-driver": 20 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/contribute.md b/contribute.md index b49d274..f73d6e1 100644 --- a/contribute.md +++ b/contribute.md @@ -12,6 +12,8 @@ To get things going in your local environment. Get your wordpress installation going. Remember your admin password. Once it's up, login to admin and activate the "BMLT Satellite PLugin" plugin. -Now you can make edits to the crouton.php file and it will instantly take effect. +Now you can make edits to the bmlt-wordpress-satellite-plugin.php file and it will instantly take effect. + +In order to pull in the necessary updated dependencies run `composer update` Please make note of the .editorconfig file and adhere to it as this will minimise the amount of formatting errors. If you are using PHPStorm you will need to install the EditorConfig plugin. diff --git a/readme.txt b/readme.txt index 92833d1..0326ec7 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Contributors: magblogapi Plugin URI: http://bmlt.magshare.net Tags: na, meeting list, meeting finder, maps, recovery, addiction, webservant Author: MAGSHARE -Requires at least: 2.6 +Requires at least: 4.0 Tested up to: 4.9.4 Stable tag: 3.9.3 @@ -32,6 +32,7 @@ This is a standard WordPress plugin. Either use the in-dashboard installer, or m - Moved the home Git repo to GitHub. - Added the BlackWhiteAndRed theme. +- Migrated to use composer instead of submodules. ***Version 3.9.3* ** *- July 31, 2018* diff --git a/vendor/bmlt/bmlt-satellite-base-class b/vendor/bmlt/bmlt-satellite-base-class index e9e2cc0..dcd70df 160000 --- a/vendor/bmlt/bmlt-satellite-base-class +++ b/vendor/bmlt/bmlt-satellite-base-class @@ -1 +1 @@ -Subproject commit e9e2cc0056aecc008ea313d2caa5f971424848e8 +Subproject commit dcd70df04817a1d203bbecca09c9c73237fca70a diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 8a9769d..e74895e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -6,12 +6,12 @@ "source": { "type": "git", "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", - "reference": "e9e2cc0056aecc008ea313d2caa5f971424848e8" + "reference": "dcd70df04817a1d203bbecca09c9c73237fca70a" }, "require": { "bmlt/bmlt-satellite-driver": "dev-master" }, - "time": "2018-11-01T01:07:13+00:00", + "time": "2018-11-14T05:19:59+00:00", "type": "library", "installation-source": "source", "license": [ From c12440504a95bde6025eef39272dc4460a8e87dc Mon Sep 17 00:00:00 2001 From: Danny Gershman Date: Wed, 14 Nov 2018 00:30:13 -0500 Subject: [PATCH 3/6] wp 5.0.0 compatability --- readme.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/readme.txt b/readme.txt index 0326ec7..a5cafa0 100644 --- a/readme.txt +++ b/readme.txt @@ -1,12 +1,12 @@ === BMLT WordPress Plugin === -Contributors: magblogapi +Contributors: magblogapi, radius314 Plugin URI: http://bmlt.magshare.net Tags: na, meeting list, meeting finder, maps, recovery, addiction, webservant Author: MAGSHARE Requires at least: 4.0 -Tested up to: 4.9.4 -Stable tag: 3.9.3 +Tested up to: 5.0.0 +Stable tag: 3.9.4 This is a "satellite" plugin for the Basic Meeting List Toolbox (BMLT). @@ -33,6 +33,7 @@ This is a standard WordPress plugin. Either use the in-dashboard installer, or m - Moved the home Git repo to GitHub. - Added the BlackWhiteAndRed theme. - Migrated to use composer instead of submodules. +- Compatability tested for WP 5.0.0. ***Version 3.9.3* ** *- July 31, 2018* From ffd59d3afe44672d07bd473ee246b295755b897d Mon Sep 17 00:00:00 2001 From: Danny Gershman Date: Wed, 14 Nov 2018 12:21:03 -0500 Subject: [PATCH 4/6] url updates + authors update --- bmlt-wordpress-satellite-plugin.php | 2 +- composer.json | 5 +++-- readme.txt | 10 +++++----- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/bmlt-wordpress-satellite-plugin.php b/bmlt-wordpress-satellite-plugin.php index e019f56..b246036 100644 --- a/bmlt-wordpress-satellite-plugin.php +++ b/bmlt-wordpress-satellite-plugin.php @@ -6,7 +6,7 @@ * * * These need to be without the asterisks, as WP parses them. * Plugin Name: BMLT WordPress Satellite -Plugin URI: http://bmlt.magshare.net +Plugin URI: https://bmlt.app Author: MAGSHARE Description: This is a WordPress plugin satellite of the Basic Meeting List Toolbox. Version: 3.9.4 diff --git a/composer.json b/composer.json index 1629256..918ac6b 100644 --- a/composer.json +++ b/composer.json @@ -4,8 +4,9 @@ "type": "project", "license": "GPL", "authors": [{ - "name": "Chris Marshall", - "email": "cmarshall@mac.com" + "name": "littlegreenviper" + },{ + "name": "radius314" }], "repositories": [{ "url": "https://bitbucket.org/bmlt/bmlt-satellite-base-class", diff --git a/readme.txt b/readme.txt index a5cafa0..d24267c 100644 --- a/readme.txt +++ b/readme.txt @@ -1,7 +1,7 @@ === BMLT WordPress Plugin === Contributors: magblogapi, radius314 -Plugin URI: http://bmlt.magshare.net +Plugin URI: https://bmlt.app Tags: na, meeting list, meeting finder, maps, recovery, addiction, webservant Author: MAGSHARE Requires at least: 4.0 @@ -20,11 +20,11 @@ It is very easy to install and use. It has an administration panel that lets you This is a standard WordPress plugin. Either use the in-dashboard installer, or move the main directory into the wp-content/plugins/ directory and activate it. -[More information can be found here.](http://bmlt.magshare.net/satellites/cms-plugins/wordpress/) +[More information can be found here.](https://bmlt.app/satellites/cms-plugins/wordpress/) -[Administration instructions can be found here.](http://bmlt.magshare.net/satellites/cms-plugins/cms-plugin-administration/) +[Administration instructions can be found here.](https://bmlt.app/satellites/cms-plugins/cms-plugin-administration/) -[Usage instructions for the shortcodes can be found here.](http://bmlt.magshare.net/satellites/cms-plugins/shortcodes/) +[Usage instructions for the shortcodes can be found here.](https://bmlt.app/satellites/cms-plugins/shortcodes/) == Changelist == @@ -164,7 +164,7 @@ This is a standard WordPress plugin. Either use the in-dashboard installer, or m - Updated the readme file to reflect the current plugin state. - Removed out-of-date screengrabs. -- Fixed a bug, in which the proper throbber was not being displayed where multiple themes are on the same page for the [bmlt_table](http://bmlt.magshare.net/satellites/the-fast-table-display/) shortcode. +- Fixed a bug, in which the proper throbber was not being displayed where multiple themes are on the same page for the [bmlt_table](https://bmlt.app/satellites/the-fast-table-display/) shortcode. - The standard [[bmlt]] search single meeting results now have a grayed out background, and clicking anywhere outside the details will dismiss the dialog. ***Version 3.3.3* ** *- April 9, 2016* From 7a79d6578805baa57aad6a9f636ce6525e7c9100 Mon Sep 17 00:00:00 2001 From: Danny Gershman Date: Wed, 14 Nov 2018 15:32:42 -0500 Subject: [PATCH 5/6] removing sub module and adding new logos --- BMLT-Satellite-Base-Class | 1 - assets/banner-772x250.png | Bin 0 -> 20855 bytes assets/icon-256x256.png | Bin 0 -> 16846 bytes 3 files changed, 1 deletion(-) delete mode 160000 BMLT-Satellite-Base-Class create mode 100644 assets/banner-772x250.png create mode 100644 assets/icon-256x256.png diff --git a/BMLT-Satellite-Base-Class b/BMLT-Satellite-Base-Class deleted file mode 160000 index e78b9f8..0000000 --- a/BMLT-Satellite-Base-Class +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e78b9f8b4fc87b221f3983c395b8220cdeb0dbe7 diff --git a/assets/banner-772x250.png b/assets/banner-772x250.png new file mode 100644 index 0000000000000000000000000000000000000000..6dba1827ee5f691dd09cbcbb639ec81c1a92c82d GIT binary patch literal 20855 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 F_CE$DI}88- literal 0 HcmV?d00001 diff --git a/assets/icon-256x256.png b/assets/icon-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..5da6c156b45cfba23689dd18bf2202087f9329c0 GIT binary patch literal 16846 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 RpZ~ZZEg>&n`NlB#{{gO~ Date: Wed, 14 Nov 2018 22:55:22 -0500 Subject: [PATCH 6/6] moving deps to git --- composer.json | 6 +++--- composer.lock | 26 +++++++++++++++----------- vendor/autoload.php | 2 +- vendor/bmlt/bmlt-satellite-base-class | 2 +- vendor/bmlt/bmlt-satellite-driver | 2 +- vendor/composer/autoload_real.php | 8 ++++---- vendor/composer/autoload_static.php | 2 +- vendor/composer/installed.json | 24 ++++++++++++++---------- 8 files changed, 40 insertions(+), 32 deletions(-) diff --git a/composer.json b/composer.json index 918ac6b..5b7a391 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "bmlt/bmlt-wp", + "name": "bmlt/bmlt-wordpress-satellite-plugin", "description": "This is a WordPress plugin of a BMLT satellite client.", "type": "project", "license": "GPL", @@ -9,10 +9,10 @@ "name": "radius314" }], "repositories": [{ - "url": "https://bitbucket.org/bmlt/bmlt-satellite-base-class", + "url": "https://github.com/bmlt-enabled/bmlt-satellite-base-class", "type": "git" }, { - "url": "https://bitbucket.org/bmlt/bmlt-satellite-driver", + "url": "https://github.com/bmlt-enabled/bmlt-satellite-driver", "type": "git" }], "require": { diff --git a/composer.lock b/composer.lock index 2b88b1b..f4e9628 100644 --- a/composer.lock +++ b/composer.lock @@ -4,15 +4,15 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "835e46d434813d9aa3df0a06fa701b64", + "content-hash": "57cf134f0dbba101aabf9a701fbc6d03", "packages": [ { "name": "bmlt/bmlt-satellite-base-class", "version": "dev-master", "source": { "type": "git", - "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", - "reference": "dcd70df04817a1d203bbecca09c9c73237fca70a" + "url": "https://github.com/bmlt-enabled/bmlt-satellite-base-class", + "reference": "0132ef3b0036eb8c99bfca41f04d8af24090bd3f" }, "require": { "bmlt/bmlt-satellite-driver": "dev-master" @@ -23,20 +23,22 @@ ], "authors": [ { - "name": "Chris Marshall", - "email": "cmarshall@mac.com" + "name": "littlegreenviper" + }, + { + "name": "radius314" } ], "description": "This is a generic CMS plugin class for a BMLT satellite client.", - "time": "2018-11-14T05:19:59+00:00" + "time": "2018-11-15T03:41:47+00:00" }, { "name": "bmlt/bmlt-satellite-driver", "version": "dev-master", "source": { "type": "git", - "url": "https://bitbucket.org/radius314/bmlt-satellite-driver", - "reference": "fdb4f517178464b82cf4080018e54eeca7051454" + "url": "https://github.com/bmlt-enabled/bmlt-satellite-driver", + "reference": "1fcad76015c0d620cf2a38e9fb77822e15c9fa3c" }, "type": "library", "license": [ @@ -44,12 +46,14 @@ ], "authors": [ { - "name": "Chris Marshall", - "email": "cmarshall@mac.com" + "name": "littlegreenviper" + }, + { + "name": "radius314" } ], "description": "Provides low-level communication to the BMLT Root Server.", - "time": "2018-11-01T00:12:44+00:00" + "time": "2018-11-14T17:09:17+00:00" } ], "packages-dev": [], diff --git a/vendor/autoload.php b/vendor/autoload.php index 2c8dda9..99e4641 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitc685eb92813365560f2e9801abb552de::getLoader(); +return ComposerAutoloaderInitf29c0ae91770645bb3965db80b8febb1::getLoader(); diff --git a/vendor/bmlt/bmlt-satellite-base-class b/vendor/bmlt/bmlt-satellite-base-class index dcd70df..0132ef3 160000 --- a/vendor/bmlt/bmlt-satellite-base-class +++ b/vendor/bmlt/bmlt-satellite-base-class @@ -1 +1 @@ -Subproject commit dcd70df04817a1d203bbecca09c9c73237fca70a +Subproject commit 0132ef3b0036eb8c99bfca41f04d8af24090bd3f diff --git a/vendor/bmlt/bmlt-satellite-driver b/vendor/bmlt/bmlt-satellite-driver index fdb4f51..1fcad76 160000 --- a/vendor/bmlt/bmlt-satellite-driver +++ b/vendor/bmlt/bmlt-satellite-driver @@ -1 +1 @@ -Subproject commit fdb4f517178464b82cf4080018e54eeca7051454 +Subproject commit 1fcad76015c0d620cf2a38e9fb77822e15c9fa3c diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index cbb2510..2e5aa69 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitc685eb92813365560f2e9801abb552de +class ComposerAutoloaderInitf29c0ae91770645bb3965db80b8febb1 { private static $loader; @@ -19,15 +19,15 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitc685eb92813365560f2e9801abb552de', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitf29c0ae91770645bb3965db80b8febb1', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitc685eb92813365560f2e9801abb552de', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitf29c0ae91770645bb3965db80b8febb1', '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\ComposerStaticInitc685eb92813365560f2e9801abb552de::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitf29c0ae91770645bb3965db80b8febb1::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index a1addbc..29ddf0a 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitc685eb92813365560f2e9801abb552de +class ComposerStaticInitf29c0ae91770645bb3965db80b8febb1 { public static function getInitializer(ClassLoader $loader) { diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e74895e..0cb4181 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -5,13 +5,13 @@ "version_normalized": "9999999-dev", "source": { "type": "git", - "url": "https://bitbucket.org/radius314/bmlt-satellite-base-class", - "reference": "dcd70df04817a1d203bbecca09c9c73237fca70a" + "url": "https://github.com/bmlt-enabled/bmlt-satellite-base-class", + "reference": "0132ef3b0036eb8c99bfca41f04d8af24090bd3f" }, "require": { "bmlt/bmlt-satellite-driver": "dev-master" }, - "time": "2018-11-14T05:19:59+00:00", + "time": "2018-11-15T03:41:47+00:00", "type": "library", "installation-source": "source", "license": [ @@ -19,8 +19,10 @@ ], "authors": [ { - "name": "Chris Marshall", - "email": "cmarshall@mac.com" + "name": "littlegreenviper" + }, + { + "name": "radius314" } ], "description": "This is a generic CMS plugin class for a BMLT satellite client." @@ -31,10 +33,10 @@ "version_normalized": "9999999-dev", "source": { "type": "git", - "url": "https://bitbucket.org/radius314/bmlt-satellite-driver", - "reference": "fdb4f517178464b82cf4080018e54eeca7051454" + "url": "https://github.com/bmlt-enabled/bmlt-satellite-driver", + "reference": "1fcad76015c0d620cf2a38e9fb77822e15c9fa3c" }, - "time": "2018-11-01T00:12:44+00:00", + "time": "2018-11-14T17:09:17+00:00", "type": "library", "installation-source": "source", "license": [ @@ -42,8 +44,10 @@ ], "authors": [ { - "name": "Chris Marshall", - "email": "cmarshall@mac.com" + "name": "littlegreenviper" + }, + { + "name": "radius314" } ], "description": "Provides low-level communication to the BMLT Root Server."