diff --git a/blog/authors/index.php b/blog/authors/index.php new file mode 100644 index 0000000..4f5eecc --- /dev/null +++ b/blog/authors/index.php @@ -0,0 +1,67 @@ + + +

Authors

+ +
+ diff --git a/blog/by_tag/index.php b/blog/by_tag/index.php old mode 100644 new mode 100755 index 8bf0009..2230a2d --- a/blog/by_tag/index.php +++ b/blog/by_tag/index.php @@ -4,65 +4,57 @@ echo "

Posts by Tag

"; echo "
"; - - //if(file_exists("tags.csv")){ - //echo "\n"; - //} - - # Tags rewrite - $tags_csv = array_map('str_getcsv', file('tags.csv')); - $tags_rows = sizeof($tags_csv); - $tags_coloums = sizeof($tags_csv[0]); - //echo "
\n";
-  //print_r($tags_csv);
-  //echo $tags_coloums . "\n" . $tags_rows . "\n";
-  //echo "
\n"; - echo "\n"; include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php'); ?> diff --git a/common/authors/index.php b/common/authors/index.php new file mode 100644 index 0000000..e050c22 --- /dev/null +++ b/common/authors/index.php @@ -0,0 +1,18 @@ +"; + if (file_exists('byline.md')){ + include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/md_read.php'); + echo read_md('byline.md'); + } + if (file_exists('author.md')){ + include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/md_read.php'); + echo read_md('author.md'); + } + echo ""; + include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php'); +?> diff --git a/common/composer.json b/common/composer.json index fef1e03..70d8d7d 100644 --- a/common/composer.json +++ b/common/composer.json @@ -1,6 +1,5 @@ { "require": { - "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "^0.8.1" } } diff --git a/common/composer.lock b/common/composer.lock index 336a9fa..97aeeea 100644 --- a/common/composer.lock +++ b/common/composer.lock @@ -1,11 +1,10 @@ { "_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#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "hash": "aa5767a5b8fb16d5e73cc5639dd2604b", - "content-hash": "0b5aa77427c5746d4d87e5e921804d34", + "content-hash": "ab175e79f029b7846e324d73005f0a67", "packages": [ { "name": "erusev/parsedown", @@ -51,7 +50,11 @@ "markdown", "parser" ], - "time": "2019-12-30 22:54:17" + "support": { + "issues": "https://github.com/erusev/parsedown/issues", + "source": "https://github.com/erusev/parsedown/tree/1.7.x" + }, + "time": "2019-12-30T22:54:17+00:00" }, { "name": "erusev/parsedown-extra", @@ -98,7 +101,11 @@ "parsedown", "parser" ], - "time": "2019-12-30 23:20:37" + "support": { + "issues": "https://github.com/erusev/parsedown-extra/issues", + "source": "https://github.com/erusev/parsedown-extra/tree/0.8.x" + }, + "time": "2019-12-30T23:20:37+00:00" } ], "packages-dev": [], @@ -108,5 +115,6 @@ "prefer-stable": false, "prefer-lowest": false, "platform": [], - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.0.0" } diff --git a/common/css/gallery.css b/common/css/gallery.css deleted file mode 100644 index a30d3cf..0000000 --- a/common/css/gallery.css +++ /dev/null @@ -1,79 +0,0 @@ - /* Style the Image Used to Trigger the Modal */ -#myImg { - border-radius: 5px; - cursor: pointer; - transition: 0.3s; -} - -img:hover {opacity: 0.7;} - -/* The Modal (background) */ -.modal_gal { - display: none; /* Hidden by default */ - position: fixed; /* Stay in place */ - z-index: 1; /* Sit on top */ - padding-top: 100px; /* Location of the box */ - left: 0; - top: 0; - width: 100%; /* Full width */ - height: 100%; /* Full height */ - overflow: auto; /* Enable scroll if needed */ - background-color: rgb(0,0,0); /* Fallback color */ - background-color: rgba(0,0,0,0.9); /* Black w/ opacity */ -} - -/* Modal Content (Image) */ -.gallery_img { - margin: auto; - display: block; - width: 80%; - max-width: 700px; -} - -/* Caption of Modal Image (Image Text) - Same Width as the Image */ -#modal_img_caption { - margin: auto; - display: block; - width: 80%; - max-width: 700px; - text-align: center; - color: #ccc; - padding: 10px 0; - height: 150px; -} - -/* Add Animation - Zoom in the Modal */ -.gallery_img, #caption { - animation-name: zoom; - animation-duration: 0.6s; -} - -@keyframes zoom { - from {transform:scale(0)} - to {transform:scale(1)} -} - -/* The Close Button */ -.close_modal { - position: absolute; - top: 15px; - right: 35px; - color: #00cc00; - font-size: 40px; - font-weight: bold; - transition: 0.3s; -} - -.close_modal:hover, -.close_modal:focus { - color: #bbb; - text-decoration: none; - cursor: pointer; -} - -/* 100% Image Width on Smaller Screens */ -@media only screen and (max-width: 700px){ - .gallery_img { - width: 100%; - } -} diff --git a/common/css/styles.css b/common/css/styles.css index defaf25..a79abf0 100644 --- a/common/css/styles.css +++ b/common/css/styles.css @@ -125,6 +125,27 @@ img{ img.center_align{ vertical-align:middle; } +img.pfp { + vertical-align: middle; + width: 50px; + height: 50px; + border-radius: 25px; + border-style: solid; + border-width: 1px; +} +img.pfp-small { + vertical-align: middle; + width: 25px; + height: 25px; + border-radius: 25px; + border-style: solid; + border-width: 1px; +} +div.byline { + border-top: solid; + margin-left: 25%; + margin-right: 25%; +} .top{ max-width: 100vw; float: left; @@ -322,6 +343,12 @@ img:hover {opacity: 0.7;} margin-left: 5%; margin-right: 5%; } + div.byline { + border-top: solid; + margin-left: 5%; + margin-right: 5%; + } + h1{ padding-left: 5%; } diff --git a/common/js/font_size.js b/common/js/font_size.js deleted file mode 100644 index 8b13789..0000000 --- a/common/js/font_size.js +++ /dev/null @@ -1 +0,0 @@ - diff --git a/common/js/gallery.js b/common/js/gallery.js deleted file mode 100644 index 9ff212f..0000000 --- a/common/js/gallery.js +++ /dev/null @@ -1,32 +0,0 @@ -var modalEle = document.querySelector(".modal_gal"); -var modalImage = document.querySelector(".gallery_img"); -Array.from(document.querySelectorAll(".img_thumb")).forEach(item => { - item.addEventListener("click", event => { - modalEle.style.display = "block"; - modalImage.src = event.target.src; - }); -}); -document.querySelector(".close").addEventListener("click", () => { - modalEle.style.display = "none"; -}); - -function image_modal(document){ - // Get the modal - var modal = document.getElementById("modal_gallery"); - // Get the image and insert it inside the modal - use its "alt" text as a caption - var img = document.getElementById("myImg"); - var modalImg = document.getElementById("modal_img"); - var captionText = document.getElementById("modal_img_caption"); - img.onclick = function(){ - modal.style.display = "block"; - modalImg.src = this.src; - captionText.innerHTML = this.alt; - } - // Get the element that closes the modal - var span = document.getElementsByClassName("close_modal")[0]; - - // When the user clicks on (x), close the modal - span.onclick = function() { - modal.style.display = "none"; - } -} diff --git a/common/path_menu.php b/common/path_menu.php deleted file mode 100644 index e69de29..0000000 diff --git a/common/php/article.php b/common/php/article.php new file mode 100644 index 0000000..050fb85 --- /dev/null +++ b/common/php/article.php @@ -0,0 +1,47 @@ +\n" . /* Adds the option to change the font size of the article text. */ + "
+ Text Size: + + + +
+ +
\n + + ". + read_md("article.md") . "\n"; + + echo "\n
\n"; + echo("\n"); + if (file_exists('author') && (filesize('author') != 0)){ + $author_name_raw = fopen('author', 'r'); + $author_name = fread($author_name_raw, filesize('author')); + $author_name = str_replace("\n", "", $author_name); + $byline_path = $_SERVER['DOCUMENT_ROOT'].'blog/authors/'.$author_name.'/byline.md'; + if (file_exists($byline_path)){ + echo "
\n" + . read_md($byline_path) + ."
\n"; + } + fclose($author_name_raw); + } + if ($tag_data != NULL){ + $page_tags = str_getcsv($tag_data); + natcasesort($page_tags); + echo "

Tags

\n
    \n"; + foreach ($page_tags as $tag){ + echo "
  • " . $tag . "
  • \n"; + } + echo "
\n
\n"; + } + include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/modal.php'); +?> diff --git a/common/php/header.php b/common/php/header.php index dc7a0cf..8069b2f 100644 --- a/common/php/header.php +++ b/common/php/header.php @@ -2,20 +2,11 @@ \n" . /* Adds the option to change the font size of the article text. */ - "
- Text Size: - - - -
- -
\n - - ". - $MD_Parser->text($MD_Text) . "\n"; - fclose($MD_File); - echo "\n
\n"; - echo("\n"); - if ($tag_data != NULL){ - $page_tags = str_getcsv($tag_data); - natcasesort($page_tags); - echo "

Tags

\n
    \n"; - foreach ($page_tags as $tag){ - echo "
  • " . $tag . "
  • \n"; - } - echo "
\n
\n"; + function read_md($MD_Path){ + #Markdown parseing code. + $MD_Parser = new ParsedownExtra(); + $MD_File = fopen($MD_Path, "r") or die("File not found."); + $MD_Text = fread($MD_File, filesize($MD_Path)); + return $MD_Parser->text($MD_Text); + fclose($MD_File); } - include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/modal.php'); ?> diff --git a/common/php/page_menu.php b/common/php/page_menu.php index 3960ead..dc116d2 100644 --- a/common/php/page_menu.php +++ b/common/php/page_menu.php @@ -18,11 +18,12 @@ function remove_sorting_number($link_title){ $dir = '.'; // Check if the directory exists if (file_exists($dir) && is_dir($dir) ) { - // Get the files of the directory as an array - $scan_arr = scandir($dir); - $files_arr = array_diff($scan_arr, array('.','..','index.php','common','.htaccess') ); - // echo "
"; print_r( $files_arr ); echo "
"; - // Get each files of our directory with line break + // Get the files of the directory as an array + $scan_arr = scandir($dir); + $files_arr = array_diff($scan_arr, array('.','..','index.php','common','.htaccess') ); + // echo "
"; print_r( $files_arr ); echo "
"; + // Get each files of our directory with line break + if (sizeof($files_arr) != 0 ) { foreach ($files_arr as $file) { //Get the file path $file_path = "./".$file; @@ -41,6 +42,7 @@ if (file_exists($dir) && is_dir($dir) ) { $link_title = remove_sorting_number($link_title);//Removes the number used to keep articles in post order from the displayed title. echo("\n");//Output the result. } + } } else { echo "Directory does not exists"; diff --git a/common/php/page_menu_table.php b/common/php/page_menu_table.php deleted file mode 100644 index b636e00..0000000 --- a/common/php/page_menu_table.php +++ /dev/null @@ -1,36 +0,0 @@ - - - - -"; print_r( $files_arr ); echo ""; - // Get each files of our directory with line break - foreach ($files_arr as $file) { - //Get the file path - $file_path = "./".$file; - // Get the file extension - $file_ext = pathinfo($file_path, PATHINFO_EXTENSION); - if ($file_ext=="php" || $file_ext=="html" || $file_ext=="htm" || $file_ext == "") { - $file_array[] = $file; - } - } - foreach($file_array as $file) { - $_replace = array('.php', '.html', '.htm'); - $link_title = str_replace('_',' ',$file); - $link_title = str_replace($_replace,'',$link_title); - $link_title = ucwords($link_title); - echo("\n"); - } -} -else { - echo "Directory does not exists"; -} - -?> -
Home
$link_title
diff --git a/common/vendor/composer/ClassLoader.php b/common/vendor/composer/ClassLoader.php index ac67d30..4d989a2 100644 --- a/common/vendor/composer/ClassLoader.php +++ b/common/vendor/composer/ClassLoader.php @@ -37,11 +37,13 @@ namespace Composer\Autoload; * * @author Fabien Potencier * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ */ class ClassLoader { + private $vendorDir; + // PSR-4 private $prefixLengthsPsr4 = array(); private $prefixDirsPsr4 = array(); @@ -55,11 +57,19 @@ class ClassLoader private $classMap = array(); private $classMapAuthoritative = false; private $missingClasses = array(); + private $apcuPrefix; + + private static $registeredLoaders = array(); + + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + } public function getPrefixes() { if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); } return array(); @@ -271,6 +281,26 @@ class ClassLoader 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. * @@ -279,6 +309,15 @@ class ClassLoader public function register($prepend = false) { spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + //no-op + } elseif ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } } /** @@ -287,6 +326,10 @@ class ClassLoader public function unregister() { spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } } /** @@ -313,11 +356,6 @@ class ClassLoader */ public function findFile($class) { - // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 - if ('\\' == $class[0]) { - $class = substr($class, 1); - } - // class map lookup if (isset($this->classMap[$class])) { return $this->classMap[$class]; @@ -325,6 +363,12 @@ class ClassLoader 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'); @@ -333,6 +377,10 @@ class ClassLoader $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; @@ -341,6 +389,16 @@ class ClassLoader return $file; } + /** + * Returns the currently registered loaders indexed by their corresponding vendor directories. + * + * @return self[] + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + private function findFileWithExtension($class, $ext) { // PSR-4 lookup @@ -348,10 +406,14 @@ class ClassLoader $first = $class[0]; if (isset($this->prefixLengthsPsr4[$first])) { - foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { - if (0 === strpos($class, $prefix)) { - foreach ($this->prefixDirsPsr4[$prefix] as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + $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; } } diff --git a/common/vendor/composer/InstalledVersions.php b/common/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..70878df --- /dev/null +++ b/common/vendor/composer/InstalledVersions.php @@ -0,0 +1,302 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * To require it's presence, you can require `composer-runtime-api ^2.0` + */ +class InstalledVersions +{ + private static $installed = array ( + 'root' => + array ( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'aliases' => + array ( + ), + 'reference' => 'ad07963e4bb0fe72f9d8399448ed3c30d31e62ed', + 'name' => '__root__', + ), + 'versions' => + array ( + '__root__' => + array ( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'aliases' => + array ( + ), + 'reference' => 'ad07963e4bb0fe72f9d8399448ed3c30d31e62ed', + ), + 'erusev/parsedown' => + array ( + 'pretty_version' => '1.7.4', + 'version' => '1.7.4.0', + 'aliases' => + array ( + ), + 'reference' => 'cb17b6477dfff935958ba01325f2e8a2bfa6dab3', + ), + 'erusev/parsedown-extra' => + array ( + 'pretty_version' => '0.8.1', + 'version' => '0.8.1.0', + 'aliases' => + array ( + ), + 'reference' => '91ac3ff98f0cea243bdccc688df43810f044dcef', + ), + ), +); + private static $canGetVendors; + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @return bool + */ + public static function isInstalled($packageName) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return true; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints($constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @return array[] + * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: list} + */ + public static function getRawData() + { + return self::$installed; + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: list} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + // @phpstan-ignore-next-line + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + } + } + } + + $installed[] = self::$installed; + + return $installed; + } +} diff --git a/common/vendor/composer/LICENSE b/common/vendor/composer/LICENSE index f0157a6..62ecfd8 100644 --- a/common/vendor/composer/LICENSE +++ b/common/vendor/composer/LICENSE @@ -1,56 +1,19 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: Composer -Upstream-Contact: Jordi Boggiano -Source: https://github.com/composer/composer +Copyright (c) Nils Adermann, Jordi Boggiano -Files: * -Copyright: 2016, Nils Adermann - 2016, Jordi Boggiano -License: Expat +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: -Files: src/Composer/Util/TlsHelper.php -Copyright: 2016, Nils Adermann - 2016, Jordi Boggiano - 2013, Evan Coury -License: Expat and BSD-2-Clause +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -License: BSD-2-Clause - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - . - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - . - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License: Expat - 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. +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/common/vendor/composer/autoload_classmap.php b/common/vendor/composer/autoload_classmap.php index 7a91153..b26f1b1 100644 --- a/common/vendor/composer/autoload_classmap.php +++ b/common/vendor/composer/autoload_classmap.php @@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', ); diff --git a/common/vendor/composer/autoload_real.php b/common/vendor/composer/autoload_real.php index 3978aa1..e07eadf 100644 --- a/common/vendor/composer/autoload_real.php +++ b/common/vendor/composer/autoload_real.php @@ -13,19 +13,24 @@ class ComposerAutoloaderInitae431d6e5e864517dac9bce927d03088 } } + /** + * @return \Composer\Autoload\ClassLoader + */ public static function getLoader() { if (null !== self::$loader) { return self::$loader; } + require __DIR__ . '/platform_check.php'; + spl_autoload_register(array('ComposerAutoloaderInitae431d6e5e864517dac9bce927d03088', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); spl_autoload_unregister(array('ComposerAutoloaderInitae431d6e5e864517dac9bce927d03088', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); + $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'; + require __DIR__ . '/autoload_static.php'; call_user_func(\Composer\Autoload\ComposerStaticInitae431d6e5e864517dac9bce927d03088::getInitializer($loader)); } else { diff --git a/common/vendor/composer/autoload_static.php b/common/vendor/composer/autoload_static.php index ffcbc68..5f9d2bf 100644 --- a/common/vendor/composer/autoload_static.php +++ b/common/vendor/composer/autoload_static.php @@ -20,10 +20,15 @@ class ComposerStaticInitae431d6e5e864517dac9bce927d03088 ), ); + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { $loader->prefixesPsr0 = ComposerStaticInitae431d6e5e864517dac9bce927d03088::$prefixesPsr0; + $loader->classMap = ComposerStaticInitae431d6e5e864517dac9bce927d03088::$classMap; }, null, ClassLoader::class); } diff --git a/common/vendor/composer/installed.json b/common/vendor/composer/installed.json index 5b98bfc..210bed8 100644 --- a/common/vendor/composer/installed.json +++ b/common/vendor/composer/installed.json @@ -1,99 +1,113 @@ -[ - { - "name": "erusev/parsedown", - "version": "1.7.4", - "version_normalized": "1.7.4.0", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" +{ + "packages": [ + { + "name": "erusev/parsedown", + "version": "1.7.4", + "version_normalized": "1.7.4.0", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "time": "2019-12-30T22:54:17+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "support": { + "issues": "https://github.com/erusev/parsedown/issues", + "source": "https://github.com/erusev/parsedown/tree/1.7.x" + }, + "install-path": "../erusev/parsedown" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "time": "2019-12-30 22:54:17", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ] - }, - { - "name": "erusev/parsedown-extra", - "version": "0.8.1", - "version_normalized": "0.8.1.0", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown-extra.git", - "reference": "91ac3ff98f0cea243bdccc688df43810f044dcef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/91ac3ff98f0cea243bdccc688df43810f044dcef", - "reference": "91ac3ff98f0cea243bdccc688df43810f044dcef", - "shasum": "" - }, - "require": { - "erusev/parsedown": "^1.7.4" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "time": "2019-12-30 23:20:37", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "ParsedownExtra": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "An extension of Parsedown that adds support for Markdown Extra.", - "homepage": "https://github.com/erusev/parsedown-extra", - "keywords": [ - "markdown", - "markdown extra", - "parsedown", - "parser" - ] - } -] + { + "name": "erusev/parsedown-extra", + "version": "0.8.1", + "version_normalized": "0.8.1.0", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown-extra.git", + "reference": "91ac3ff98f0cea243bdccc688df43810f044dcef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/91ac3ff98f0cea243bdccc688df43810f044dcef", + "reference": "91ac3ff98f0cea243bdccc688df43810f044dcef", + "shasum": "" + }, + "require": { + "erusev/parsedown": "^1.7.4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "time": "2019-12-30T23:20:37+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "ParsedownExtra": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "An extension of Parsedown that adds support for Markdown Extra.", + "homepage": "https://github.com/erusev/parsedown-extra", + "keywords": [ + "markdown", + "markdown extra", + "parsedown", + "parser" + ], + "support": { + "issues": "https://github.com/erusev/parsedown-extra/issues", + "source": "https://github.com/erusev/parsedown-extra/tree/0.8.x" + }, + "install-path": "../erusev/parsedown-extra" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/common/vendor/composer/installed.php b/common/vendor/composer/installed.php new file mode 100644 index 0000000..fe525e9 --- /dev/null +++ b/common/vendor/composer/installed.php @@ -0,0 +1,42 @@ + + array ( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'aliases' => + array ( + ), + 'reference' => 'ad07963e4bb0fe72f9d8399448ed3c30d31e62ed', + 'name' => '__root__', + ), + 'versions' => + array ( + '__root__' => + array ( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'aliases' => + array ( + ), + 'reference' => 'ad07963e4bb0fe72f9d8399448ed3c30d31e62ed', + ), + 'erusev/parsedown' => + array ( + 'pretty_version' => '1.7.4', + 'version' => '1.7.4.0', + 'aliases' => + array ( + ), + 'reference' => 'cb17b6477dfff935958ba01325f2e8a2bfa6dab3', + ), + 'erusev/parsedown-extra' => + array ( + 'pretty_version' => '0.8.1', + 'version' => '0.8.1.0', + 'aliases' => + array ( + ), + 'reference' => '91ac3ff98f0cea243bdccc688df43810f044dcef', + ), + ), +); diff --git a/common/vendor/composer/platform_check.php b/common/vendor/composer/platform_check.php new file mode 100644 index 0000000..7621d4f --- /dev/null +++ b/common/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 50300)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +}