Compare commits
63 Commits
Author | SHA1 | Date | |
---|---|---|---|
7734de9fa4 | |||
470773721a | |||
5d7b4cc121 | |||
efe61157e8 | |||
5016fa8ce8 | |||
206f94f5db | |||
7ff2cf1d0f | |||
f80bc8dafa | |||
32f7d23ee4 | |||
015c5ef6db | |||
4958a76f9a | |||
b01c237d5d | |||
dd3405137f | |||
25f1887590 | |||
81629aa133 | |||
3e169d54ed | |||
b7688ae2d4 | |||
dc66b2db0f | |||
88b08fd1fc | |||
d2861f1203 | |||
5e29d1e4d5 | |||
2e1dc4a38a | |||
28a4f0021e | |||
ba25c81ca6 | |||
ad07963e4b | |||
5cce4f0b0d | |||
a0e3de1200 | |||
8ce95a06d9 | |||
fb1c649580 | |||
3a2dc7651a | |||
d719bcf101 | |||
b4c852a3c1 | |||
849d5a25b6 | |||
4d4ce6f0a5 | |||
340997fa89 | |||
4929ea5eb8 | |||
1cf4ffface | |||
17cf1d28f0 | |||
f57ace3bad | |||
1da2fe8358 | |||
00a2458977 | |||
8302028049 | |||
b692b22935 | |||
01de94a893 | |||
bedc11a4ce | |||
842ea4e411 | |||
8b4b5dd31d | |||
35cd14e0b0 | |||
d743fb297b | |||
87a07aaf02 | |||
f1b3eec9d8 | |||
91119d3575 | |||
6b06c36b0b | |||
394e34b7b8 | |||
de3986efcb | |||
58f94c415d | |||
4117b552f2 | |||
a00013d619 | |||
ef7056be35 | |||
93514c0e1d | |||
e1ac241f2a | |||
a2ee59d2f3 | |||
cfc878013d |
135
README.md
135
README.md
@ -1 +1,136 @@
|
||||
# simple_blog
|
||||
|
||||
simple_blog is a basic blogging platform. It is designed to be a straightforward way to publish articles written in Markdown and display them using a renderer written in PHP. There is no login page or any way to manage simple_blog from the web. All management is done via the command line. This can be done with a shell script or with the python based [simple_blog_cms](/git/20xd6/simple_blog_cms).
|
||||
|
||||
## Requirements
|
||||
|
||||
* Currently tested with PHP 7.4
|
||||
* Some shell access is necessary.
|
||||
* The recommend way is via ssh.
|
||||
* I don't see a technical reason it can't work with a web manager like cPannel or Ajenti as long has you have the ability to upload files and manage files.
|
||||
|
||||
## Publishing
|
||||
|
||||
Publishing can be done manually or with a script that accomplishes the following tasks.
|
||||
|
||||
1. Create a directory under `/blog/by_year/$CURRENT_YEAR/$CURRENT_MONTH/`
|
||||
* For a post in January of 2022 this would be `/blog/by_year/2022/01/`
|
||||
* The directory should start with a numeral otherwise it will be sorted alphabetically
|
||||
2. Place a file named `article.md` containing the MarkDown formatted text of the article in the directory created in the previous step
|
||||
3. Copy or symlink `/common/index.php` into the directory created in step 1
|
||||
4. Place a file named `tags` containing a comma separated list of tags for the article in the directory created in step 1
|
||||
5. Add the article's relative path and title to `/by_tag/tags.csv` under the appropriate headings.
|
||||
|
||||
The recommended method is to use [simple_blog_cms](/git/20xd6/simple_blog_cms "simple_blog_cms")
|
||||
|
||||
## Article Tags
|
||||
|
||||
### Per-article List
|
||||
|
||||
A file named `tags` is placed in the directory for each article. It should contain a comma separated list of tags being applied to the article. This will be parsed and displayed by [`/common/md_read.php`](/git/20xd6/simple_blog/src/branch/master/common/md_read.php) at the bottom of the article.
|
||||
|
||||
### by_tags
|
||||
|
||||
This folder contains an index file that displays an article list generated by parsing the `tags.csv` file. A format example is displayed below.
|
||||
|
||||
| "PHP" | "JS" | "Religion" | "Catholic" |
|
||||
| ----- | ---- | ---------- | ---------- |
|
||||
| "/blog/by_year/2021/10/03_Forcing_Elements_to_reload/" | "/blog/by_year/2021/10/03_Forcing_Elements_to_reload/" |"/blog/by_year/2021/10/reproduction_of_Gainer_Bishop_Ronald_4-1-16/" | reproduction_of_Gainer_Bishop_Ronald_4-1-16/" |
|
||||
| "Forcing page elements to reload" | "Forcing page elements to reload" | "Open Letter to Bishop Ronald Gainer" | "Open Letter to Bishop Ronald Gainer" |
|
||||
| "/blog/by_year/2022/06/28_A_Test_Post/"| | |
|
||||
| "A Test Post" | | |
|
||||
|
||||
|
||||
## File Descriptions
|
||||
|
||||
### blog
|
||||
|
||||
Contains the blog articles. The articles are placed in subdirectories of `by_year` according to the year and month they were published.
|
||||
|
||||
```
|
||||
├── by_year
|
||||
│  ├── 2021
|
||||
│  │  ├── 12
|
||||
│  │  └── index.php -> /path/to/common/index.php
|
||||
│  ├── 2022
|
||||
│  │  ├── 01
|
||||
│  │  ├── 02
|
||||
│  │  └── index.php -> /path/to/common/index.php
|
||||
│  └── index.php
|
||||
└── index.php -> /path/to/common/index.php
|
||||
```
|
||||
|
||||
### common
|
||||
|
||||
This directory contains the files and libraries used to render the site's pages.
|
||||
|
||||
#### Composer files
|
||||
* composer.json
|
||||
* composer.lock
|
||||
* [/common/vendor]() - Stores the composer files and libraries managed via composer.
|
||||
|
||||
#### CSS
|
||||
|
||||
* [styles.css](/git/20xd6/simple_blog/src/branch/master/common/styles.css) - The main site CSS.
|
||||
* [jmenu.css]() - Used to render the responsive menus.
|
||||
* [print.css]() - Used to style printed pages.
|
||||
* [gallery.css]() - Styles the floating
|
||||
|
||||
#### JS
|
||||
|
||||
* font_size.js
|
||||
* [page_format.js]() - The main JS file used for formatting and adding extra functions to pages.
|
||||
* gallery.js
|
||||
|
||||
#### PHP
|
||||
|
||||
* [footer.php]() - The common page footer. Contains copyright information and links to the license.
|
||||
* [get_month_name.php]() - Translates a numeral month into the corresponding name. I.E. 01 into January.
|
||||
* [h1_month.php]() - Adds the proper `<h1>` heading based on the location of the
|
||||
* [header.php]() - The common page header.
|
||||
* [index.php]() - The index file used for most of the pages on the site.
|
||||
* [markdown.php]()
|
||||
* [md_read.php]() - Renders Markdown files and adds
|
||||
* [menu.php]() - Generates the blog menu items in the navigation menu.
|
||||
* [modal.php]() - Adds the modal `<div>` for displaying the image pop out.
|
||||
* [page_menu.php]() - Generates a menu from the files and directories where it's run from.
|
||||
* [page_menu_table.php]()
|
||||
* [path_menu.php]()
|
||||
|
||||
#### /common/error_pages/
|
||||
|
||||
* [/common/403.php]() - The 403 not allowed page.
|
||||
* [/common/404.php]() - The 404 page.
|
||||
* [/common/500.php]() - Displayed for all HTTP 500 errors
|
||||
|
||||
#### /common/imgs/
|
||||
|
||||
Images used site wide.
|
||||
|
||||
* [cursor.gif]() - Blinking cursor used on the front page.
|
||||
* [icon-rss.png]() - RSS icon
|
||||
|
||||
|
||||
#### /common/prisim
|
||||
|
||||
Files for the prism syntax highlighter.
|
||||
|
||||
### license
|
||||
|
||||
This directory contains all the licensing information for simple_blog. simple_blog is licensed under the GPLv2 but uses components that are licensed under the MIT Open Source license. These components are:
|
||||
|
||||
* [Jmenu](https://github.com/jamesjohnson280/JMenu)
|
||||
* [Parsedown](https://github.com/erusev/parsedown)
|
||||
* [Parsedown-extra](https://github.com/erusev/parsedown-extra)
|
||||
|
||||
#### index.php
|
||||
|
||||
Displays all of the reverent license and the components they apply to.
|
||||
|
||||
* simple_blog is licensed GPLv2. This cannot be changed.
|
||||
* Default license for articles published. This is [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/) by default. This licensed can be changed however the site admin wishes.
|
||||
* [Jmenu](https://github.com/jamesjohnson280/JMenu) is licensed MIT. This cannot be changed.
|
||||
* [Parsedown](https://github.com/erusev/parsedown) is licensed MIT. This cannot be changed.
|
||||
* [Parsedown-extra](https://github.com/erusev/parsedown-extra) is licensed MIT. This cannot be changed.
|
||||
|
||||
Copies of all these licenses can be found in the `/license/` directory.
|
67
blog/authors/index.php
Normal file
67
blog/authors/index.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
?>
|
||||
|
||||
<h1>Authors</h1>
|
||||
<nav id="body_nav" class="jmenu">
|
||||
<div class="pmenu">
|
||||
|
||||
<ul><li><a href=/>Home</a></li></ul>
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/get_month_name.php');
|
||||
|
||||
//Removes the number used to keep articles in post order from the displayed title.
|
||||
function remove_sorting_number($link_title){
|
||||
$first_three = mb_substr($link_title, 0, 3,"UTF-8");
|
||||
|
||||
if ( preg_match( '/[0-9][0-9] /', $first_three) ){
|
||||
$link_title = mb_substr($link_title,3);
|
||||
}
|
||||
return $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 "<pre>"; print_r( $files_arr ); echo "</pre>";
|
||||
// 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 == "") {
|
||||
$file_array[] = $file;
|
||||
}
|
||||
}
|
||||
if (sizeof($file_array) != 0){
|
||||
foreach($file_array as $file) {//Renders the folder names as more readable titles.
|
||||
$link_title = str_replace('_',' ',$file);//Remove undersores and replace them with spaces
|
||||
$link_title = str_replace($_replace,'',$link_title);
|
||||
if (file_exists($file."/pfp.png")){
|
||||
$pfp_path = "$file/pfp.png";
|
||||
echo("<ul><li><img src=\"$pfp_path\" class=\"pfp-small\" name=\"$file pfp\"><a href='$file'> $link_title </a></li></ul>\n");//Output the result.
|
||||
} else {
|
||||
echo("<ul><li><a href='$file'> $link_title </a></li></ul>\n");//Output the result.
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "<ul><li><a>No Authors<a></li></ul>";
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "Directory does not exists";
|
||||
}
|
||||
echo("<ul><li><a href='..'>Back</a></li></ul>\n");
|
||||
?>
|
||||
</div><!--end of pmenu-->
|
||||
</nav>
|
||||
<br>
|
||||
<?php
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
110
blog/by_tag/index.php
Normal file → Executable file
110
blog/by_tag/index.php
Normal file → Executable file
@ -1,68 +1,60 @@
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
|
||||
echo "<article><h1 id=\"page_title\">Posts by Tag</h1></article>";
|
||||
echo "<div id=\"search_inputs\"><input type=\"text\" id=\"tag_sort\" onkeyup=\"tag_search()\" placeholder=\"Search Tags...\" title=\"Type a tage to search\"><input id=\"search_toggle\" type=\"button\" value=\"Search Titles\" onclick=\"search_toggle()\"></div><!--End Div Search Inputs-->";
|
||||
|
||||
//if(file_exists("tags.csv")){
|
||||
//echo "<ul id=\"tag_menu\">\n";
|
||||
//$csv = array_map('str_getcsv', file("tags.csv"));
|
||||
//array_walk($csv, function(&$a) use ($csv) {
|
||||
//$a = array_combine($csv[0], $a);
|
||||
//});
|
||||
//array_shift($csv); # remove column header
|
||||
//foreach ($csv as $row){
|
||||
//$counter = 0;
|
||||
//foreach ($row as $item){
|
||||
//$counter++;
|
||||
//if ($counter == 1){
|
||||
//echo "\t<li id=\"" . $item . "\">" . $item . " <a id=\"" . $item . "\"></a>\n";
|
||||
//} elseif ($counter % 2 == 0) {
|
||||
//if ($item == ""){
|
||||
//break;
|
||||
//} else {
|
||||
//echo "\t\t<ol><a href=\"" . $item . "\">";
|
||||
//}
|
||||
//} elseif ($counter % 2 != 0) {
|
||||
//echo $item . "</a></ol>\n";
|
||||
//}
|
||||
//}
|
||||
//echo "\t</li>\n";
|
||||
//}
|
||||
//echo "</ul>\n";
|
||||
//}
|
||||
|
||||
# Tags rewrite
|
||||
$tags_csv = array_map('str_getcsv', file('tags.csv'));
|
||||
$tags_rows = sizeof($tags_csv);
|
||||
$tags_coloums = sizeof($tags_csv[0]);
|
||||
//echo "<pre>\n";
|
||||
//print_r($tags_csv);
|
||||
//echo $tags_coloums . "\n" . $tags_rows . "\n";
|
||||
//echo "</pre>\n";
|
||||
echo "<ul id=\"tag_menu\">\n";
|
||||
$coloum_number = 0;
|
||||
for ($row_number = 0; $row_number < $tags_rows; $row_number++){
|
||||
#echo $row_number;
|
||||
$section_title = $tags_csv[0][$coloum_number];
|
||||
echo "\t<li id=\"" . $section_title . "\"><b>" . $section_title . " </b>\n";
|
||||
for ($row = 1; $row < $tags_coloums; $row++){
|
||||
#echo "rn: " . $row_number . "\ncn:" . $coloum_number;
|
||||
$tag_content = $tags_csv[$row][$coloum_number];
|
||||
if ($tag_content == ""){
|
||||
break;
|
||||
} else {
|
||||
if ($row % 2 != 0){
|
||||
echo "\t\t<ol><a href=\"" . $tag_content . "\">";
|
||||
} elseif ($row % 2 == 0){
|
||||
echo $tag_content . "</a></ol>\n";
|
||||
function read_tags($tags_file){
|
||||
if (filesize($tags_file) == 0){
|
||||
echo "<br/>\n<br/>";
|
||||
return;
|
||||
}
|
||||
$tags_csv = array_map('str_getcsv', file('tags.csv'));
|
||||
$tags_rows = sizeof($tags_csv);
|
||||
$tags_coloums = sizeof($tags_csv[0]);
|
||||
//echo "<pre>\n";
|
||||
//print_r($tags_csv);
|
||||
//echo $tags_coloums . "\n" . $tags_rows . "\n";
|
||||
//echo "</pre>\n";
|
||||
echo "<ul id=\"tag_menu\">\n";
|
||||
$coloum_number = 0;
|
||||
for ($row_number = 0; $row_number <= $tags_coloums; $row_number++){
|
||||
//echo $row_number;
|
||||
$section_title = $tags_csv[0][$coloum_number];
|
||||
echo "\t<li id=\"" . $section_title . "\"><b>" . $section_title . " </b>\n";
|
||||
for ($row = 1; $row < $tags_coloums; $row++){
|
||||
//echo "rn: " . $row . "\ncn:" . $coloum_number ." ";
|
||||
$tag_content = $tags_csv[$row][$coloum_number];
|
||||
if ($tag_content == ""){
|
||||
break;
|
||||
} else {
|
||||
if ($row % 2 != 0){
|
||||
echo "\t\t<ol><a href=\"" . $tag_content . "\">";
|
||||
} elseif ($row % 2 == 0){
|
||||
echo $tag_content . "</a></ol>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "\t</li>\n";
|
||||
$coloum_number++;
|
||||
}
|
||||
echo "\t</li>\n";
|
||||
$coloum_number++;
|
||||
echo "</ul>\n";
|
||||
}
|
||||
echo "</ul>\n";
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');
|
||||
|
||||
|
||||
# Tags rewrite
|
||||
if (file_exists('tags.csv')){
|
||||
read_tags('tags.csv');
|
||||
} elseif( file_exists('tags.csv.bak') ){
|
||||
if (copy('tags.csv.bak', './tags.csv')) {
|
||||
read_tags('tags.csv');
|
||||
}
|
||||
}else {
|
||||
$empty_csv = fopen("tags.csv", "w") or die("Cannot write new tags.csv file.");
|
||||
fwrite($empty_csv, "");
|
||||
fclose($empty_csv);
|
||||
chmod('./tags.csv', 0666);
|
||||
read_tags('tags.csv');
|
||||
}
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
||||
|
18
common/authors/index.php
Normal file
18
common/authors/index.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
//The common file used to render pages on the blog.
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
//Looks for an article.md to see if the current directory is an article or not
|
||||
//If it is not then it is a menu page.
|
||||
echo "<article>";
|
||||
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 "</article>";
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"require": {
|
||||
"erusev/parsedown": "^1.7",
|
||||
"erusev/parsedown-extra": "^0.8.1"
|
||||
}
|
||||
}
|
||||
|
20
common/composer.lock
generated
20
common/composer.lock
generated
@ -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"
|
||||
}
|
||||
|
@ -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%;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/menu.php');
|
||||
?>
|
||||
<h1 align="center">Error 403</h1>
|
||||
<p align="center">
|
||||
@ -11,4 +11,4 @@ include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
<br/>
|
||||
You're not allowed here. Stop that.<br/>
|
||||
</p>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');?>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/footer.php');?>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/menu.php');
|
||||
?>
|
||||
<h1 align="center">Error 404</h1>
|
||||
<p align="center">
|
||||
@ -21,4 +21,4 @@ include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
</div>
|
||||
<br/>
|
||||
<br/>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');?>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/footer.php');?>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/menu.php');
|
||||
?>
|
||||
<h1 align="center">Error 500</h1>
|
||||
<p align="center">
|
||||
<br/>
|
||||
We done made a boo boo...<br/>
|
||||
</p>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');?>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'common/php/footer.php');?>
|
||||
|
@ -1 +0,0 @@
|
||||
|
@ -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%;
|
||||
}
|
||||
}
|
@ -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 <span> element that closes the modal
|
||||
var span = document.getElementsByClassName("close_modal")[0];
|
||||
|
||||
// When the user clicks on <span> (x), close the modal
|
||||
span.onclick = function() {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
if (file_exists('article.md')){
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/md_read.php');
|
||||
} else {
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/h1_month.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/page_menu.php');
|
||||
}
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');
|
||||
?>
|
@ -1,25 +1,30 @@
|
||||
//
|
||||
function format_page(){//Set the title of the page based on the main header, <h1>, tag.le != '' )){
|
||||
if ( document.getElementsByTagName('h1').length !== 0){
|
||||
document.title = document.getElementsByTagName('h1')[0].innerText;
|
||||
}
|
||||
//detect if the page contains code blocks to be highlighted and loads the prisim.js and prism.css files to accomplish this.
|
||||
//Detect if the page contains code blocks to be highlighted and loads the
|
||||
//prisim.js and prism.css files if codeblocks are found.
|
||||
code_tag = document.getElementsByTagName('code').length;
|
||||
if ( code_tag !== 0 ){
|
||||
var script = document.createElement('script');
|
||||
var style_sheet = document.createElement('link');
|
||||
script.type = 'text/javascript';
|
||||
script.src = '/common/prisim/prism.js';
|
||||
script.src = '/common/prism/prism.js';
|
||||
style_sheet.type = 'text/css';
|
||||
style_sheet.href = '/common/prisim/prism.css';
|
||||
style_sheet.href = '/common/prism/prism.css';
|
||||
style_sheet.rel = 'stylesheet';
|
||||
document.head.appendChild(script);
|
||||
document.head.appendChild(style_sheet);
|
||||
}
|
||||
//Sets the displayed fontsize.
|
||||
//This functionality won't work without JavaScript enabled. For this reason the
|
||||
//buttons won't be shown if this script isn't run.
|
||||
if ( document.getElementById("font_btns") ){//Show the font selection buttons.
|
||||
document.getElementById("font_btns").style.display = 'inline';
|
||||
var font_size = read_cookie("font_size");
|
||||
var font_size = read_cookie("font_size");//reads a saved value for fontsize from the site cookie
|
||||
if ( font_size != "" || font_size != "medium" ){
|
||||
font_set(font_size);
|
||||
font_set(font_size);//insure a sane default
|
||||
}
|
||||
}
|
||||
if ( document.getElementById("search_inputs") ){//Show the search box and button on the tags page.
|
||||
@ -43,7 +48,7 @@ function format_page(){//Set the title of the page based on the main header, <h1
|
||||
});
|
||||
}
|
||||
}
|
||||
function font_set(size_to_set){
|
||||
function font_set(size_to_set){//Set a cookie to remember the fontsize selection.
|
||||
document.getElementById("article").style.fontSize = size_to_set;
|
||||
set_cookie("font_size",size_to_set);
|
||||
}
|
||||
@ -52,7 +57,7 @@ function focus_element(element_id){
|
||||
ele_to_focus.focus();
|
||||
ele_to_focus.select();
|
||||
}
|
||||
function tag_search(){
|
||||
function tag_search(){//searches in the avaliable tags and displays all articles matching the searched tag.
|
||||
var search_input, filter, tag_list, li, a, i;
|
||||
search_input = document.getElementById("tag_sort");
|
||||
filter = search_input.value.toUpperCase();
|
||||
@ -66,9 +71,8 @@ function tag_search(){
|
||||
li[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
function title_search(){
|
||||
function title_search(){//searches for matches in the article titles rather than tags. Allows more granular search
|
||||
var search_input, filter, tag_list, li_list, ol, a, i;
|
||||
search_input = document.getElementById("title_sort");
|
||||
filter = search_input.value.toUpperCase();
|
||||
@ -88,7 +92,7 @@ function title_search(){
|
||||
}
|
||||
|
||||
}
|
||||
function search_toggle(){
|
||||
function search_toggle(){//Toggles if the unit being sorted on is the article title or tag
|
||||
if (document.getElementById("tag_sort")){
|
||||
document.getElementById("tag_sort").placeholder = "Search Titles";
|
||||
document.getElementById("tag_sort").onkeyup = function() {title_search()};
|
||||
@ -107,10 +111,10 @@ function search_toggle(){
|
||||
focus_element("tag_sort");
|
||||
}
|
||||
}
|
||||
function set_cookie(prop_name, prop_value){
|
||||
function set_cookie(prop_name, prop_value){//sets a passed cookie property and value.
|
||||
document.cookie = prop_name + "=" + prop_value + ";path=/;SameSite=Strict;";
|
||||
}
|
||||
function read_cookie(cname){
|
||||
function read_cookie(cname){//reads a property value
|
||||
let prop_name = cname + '=';
|
||||
let decoded_cookie = decodeURIComponent(document.cookie);
|
||||
let split_cookie = decoded_cookie.split(';');
|
||||
@ -125,11 +129,11 @@ function read_cookie(cname){
|
||||
}
|
||||
return "";
|
||||
}
|
||||
function printDiv(divName) {
|
||||
function printDiv(divName) {//Formats the page for printing.
|
||||
var printContents = document.getElementById(divName).innerHTML;
|
||||
w=window.open();
|
||||
w.document.write(printContents);
|
||||
w.print();
|
||||
w.close();
|
||||
}
|
||||
window.onload = format_page;
|
||||
window.onload = format_page;//loades the page formatting script.
|
@ -1,51 +0,0 @@
|
||||
<nav id="body_nav" class="jmenu">
|
||||
<div class="pmenu">
|
||||
<ul><li><a href=/>Home</a></li></ul>
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/get_month_name.php');
|
||||
|
||||
function remove_sorting_number($link_title){
|
||||
$first_three = mb_substr($link_title, 0, 3,"UTF-8");
|
||||
|
||||
if ( preg_match( '/[0-9][0-9] /', $first_three) ){
|
||||
$link_title = mb_substr($link_title,3);
|
||||
}
|
||||
return $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 "<pre>"; print_r( $files_arr ); echo "</pre>";
|
||||
// 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);
|
||||
$link_title = get_month_name($link_title);
|
||||
$link_title = remove_sorting_number($link_title);
|
||||
echo("<ul><li><a href='$file'> $link_title </a></li></ul>\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "Directory does not exists";
|
||||
}
|
||||
echo("<ul><li><a href='..'>Back</a></li></ul>\n");
|
||||
?>
|
||||
</div><!--end of pmenu-->
|
||||
</nav>
|
||||
<br>
|
@ -1,36 +0,0 @@
|
||||
<table border="1" class="pmenu">
|
||||
<tr>
|
||||
<td><a href=/>Home</a></td>
|
||||
</tr>
|
||||
<?php
|
||||
$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 "<pre>"; print_r( $files_arr ); echo "</pre>";
|
||||
// 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("<tr><td><a href='$file'> $link_title </a></td></tr>\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "Directory does not exists";
|
||||
}
|
||||
|
||||
?>
|
||||
</table>
|
@ -1,11 +1,5 @@
|
||||
<?php
|
||||
#Markdown parser dependancy
|
||||
require ($_SERVER['DOCUMENT_ROOT'].'/common/vendor/autoload.php');
|
||||
#Markdown parseing code.
|
||||
$MD_Parser = new ParsedownExtra();
|
||||
$MD_Path = "article.md";
|
||||
$MD_File = fopen($MD_Path, "r") or die("File not found.");
|
||||
$MD_Text = fread($MD_File, filesize($MD_Path));
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/md_read.php');
|
||||
echo "<article id=\"article\">\n" . /* Adds the option to change the font size of the article text. */
|
||||
"<div id=\"font_btns\">
|
||||
Text Size:
|
||||
@ -24,10 +18,22 @@
|
||||
<li><a href=\"article.md\" title=\"Download \">MD</a></li>
|
||||
</nav>
|
||||
".
|
||||
$MD_Parser->text($MD_Text) . "\n</article>";
|
||||
fclose($MD_File);
|
||||
read_md("article.md") . "\n</article>";
|
||||
|
||||
echo "\n</div><!--End of print-content div-->\n";
|
||||
echo("<nav class=\"jmenu\"><div class=\"pmenu\"><ul id=\"back_btn\"><li><a href='..'>Back</a></li></ul></div></nav>\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 "<div class =\"byline\">\n"
|
||||
. read_md($byline_path)
|
||||
."</div><!--End byline div-->\n";
|
||||
}
|
||||
fclose($author_name_raw);
|
||||
}
|
||||
if ($tag_data != NULL){
|
||||
$page_tags = str_getcsv($tag_data);
|
||||
natcasesort($page_tags);
|
||||
@ -37,5 +43,5 @@
|
||||
}
|
||||
echo "</ul>\n</div>\n";
|
||||
}
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/modal.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/modal.php');
|
||||
?>
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
//Parses it's passed input to convert it to a month name.
|
||||
function get_month_name($passed_var){
|
||||
switch($passed_var){
|
||||
case "01":
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/get_month_name.php');
|
||||
//Sets the proper level 1 heading for the folder.
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/get_month_name.php');
|
||||
$current_dir = basename(getcwd());
|
||||
$named_month = get_month_name($current_dir);
|
||||
if ( $named_month == "blog") {
|
@ -1,20 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<?php
|
||||
//Sets the page title based on the name of the current directory
|
||||
function Title() {
|
||||
//~ $new_title = $_SERVER['REQUEST_URI'];
|
||||
|
||||
//~ $new_title = preg_replace("/^^\//i", "", $new_title);
|
||||
//~ $new_title = preg_replace("/\//i", "", $new_title);
|
||||
//~ $page_title = $_SERVER['REQUEST_URI'];
|
||||
//~ $page_title = preg_replace("/^(.*)\//i", "", $page_title);
|
||||
$page_title = basename($_SERVER['SCRIPT_FILENAME'], '.php');
|
||||
//~ echo($page_title);
|
||||
if(strtolower($page_title) == 'index'){
|
||||
parse_str($_SERVER['REQUEST_URI'], $page_uri);
|
||||
$page_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||
//~ echo($page_path);
|
||||
//~ $folder_name = sizeof($page_path);
|
||||
$folder_name = explode("/", trim($page_path, "/"));
|
||||
$page_title = $folder_name[(sizeof($folder_name) - 1)];
|
||||
} elseif(strtolower($page_title) == 'homepage'){
|
||||
@ -28,6 +20,7 @@
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<?php
|
||||
//If a tags file is present parse it and add any tags found to the renderd page's metadata.
|
||||
if(file_exists('tags')){
|
||||
$tag_data_raw = fopen('tags',"r");
|
||||
$tag_data = fread($tag_data_raw, filesize('tags'));
|
||||
@ -38,10 +31,10 @@
|
||||
?>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title><?php $title = Title(); echo $title;?></title>
|
||||
<link href="/common/styles.css?v=<?php echo date('his'); ?>" type="text/css" rel="stylesheet"/>
|
||||
<link href="/common/jmenu.css?v=<?php echo date('his'); ?>" type="text/css" rel="stylesheet"/>
|
||||
<link href="/common/print.css?v=<?php echo date('his'); ?>" type="text/css" media="print" rel="stylesheet"/>
|
||||
<script type="text/javascript" src="/common/page_format.js?v=<?php echo date('his'); ?>"></script>
|
||||
<link href="/common/css/styles.css?v=<?php echo date('his'); ?>" type="text/css" rel="stylesheet"/>
|
||||
<link href="/common/css/jmenu.css?v=<?php echo date('his'); ?>" type="text/css" rel="stylesheet"/>
|
||||
<link href="/common/css/print.css?v=<?php echo date('his'); ?>" type="text/css" media="print" rel="stylesheet"/>
|
||||
<script type="text/javascript" src="/common/js/page_format.js?v=<?php echo date('his'); ?>"></script>
|
||||
</head>
|
||||
<body lang="en-US">
|
||||
<div class="body" id="body">
|
14
common/php/index.php
Normal file
14
common/php/index.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
//The common file used to render pages on the blog.
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
//Looks for an article.md to see if the current directory is an article or not
|
||||
//If it is not then it is a menu page.
|
||||
if (file_exists('article.md')){
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/article.php');
|
||||
} else {
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/h1_month.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/page_menu.php');
|
||||
}
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
12
common/php/md_read.php
Normal file
12
common/php/md_read.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
#Markdown parser dependancy
|
||||
require ($_SERVER['DOCUMENT_ROOT'].'/common/vendor/autoload.php');
|
||||
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);
|
||||
}
|
||||
?>
|
54
common/php/page_menu.php
Normal file
54
common/php/page_menu.php
Normal file
@ -0,0 +1,54 @@
|
||||
<nav id="body_nav" class="jmenu">
|
||||
<div class="pmenu">
|
||||
<ul><li><a href=/>Home</a></li></ul>
|
||||
<?php
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/get_month_name.php');
|
||||
|
||||
//Removes the number used to keep articles in post order from the displayed title.
|
||||
function remove_sorting_number($link_title){
|
||||
$first_three = mb_substr($link_title, 0, 3,"UTF-8");
|
||||
|
||||
if ( preg_match( '/[0-9][0-9] /', $first_three) ){
|
||||
$link_title = mb_substr($link_title,3);
|
||||
}
|
||||
return $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 "<pre>"; print_r( $files_arr ); echo "</pre>";
|
||||
// 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;
|
||||
// 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) {//Renders the folder names as more readable titles.
|
||||
$_replace = array('.php', '.html', '.htm');//Remove file extensions from webpages.
|
||||
$link_title = str_replace('_',' ',$file);//Remove undersores and replace them with spaces
|
||||
$link_title = str_replace($_replace,'',$link_title);
|
||||
$link_title = ucwords($link_title);//Set the first letter of each word to upercase.
|
||||
$link_title = get_month_name($link_title);//
|
||||
$link_title = remove_sorting_number($link_title);//Removes the number used to keep articles in post order from the displayed title.
|
||||
echo("<ul><li><a href='$file'> $link_title </a></li></ul>\n");//Output the result.
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "Directory does not exists";
|
||||
}
|
||||
echo("<ul><li><a href='..'>Back</a></li></ul>\n");
|
||||
?>
|
||||
</div><!--end of pmenu-->
|
||||
</nav>
|
||||
<br>
|
86
common/vendor/composer/ClassLoader.php
vendored
86
common/vendor/composer/ClassLoader.php
vendored
@ -37,11 +37,13 @@ namespace Composer\Autoload;
|
||||
*
|
||||
* @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/
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
|
302
common/vendor/composer/InstalledVersions.php
vendored
Normal file
302
common/vendor/composer/InstalledVersions.php
vendored
Normal file
@ -0,0 +1,302 @@
|
||||
<?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;
|
||||
|
||||
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<string>
|
||||
*/
|
||||
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<string, array{pretty_version: ?string, version: ?string, aliases: ?string[], reference: ?string, replaced: ?string[], provided: ?string[]}>}
|
||||
*/
|
||||
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<string, array{pretty_version: ?string, version: ?string, aliases: ?string[], reference: ?string, replaced: ?string[], provided: ?string[]}>} $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;
|
||||
}
|
||||
}
|
69
common/vendor/composer/LICENSE
vendored
69
common/vendor/composer/LICENSE
vendored
@ -1,56 +1,19 @@
|
||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: Composer
|
||||
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
|
||||
Source: https://github.com/composer/composer
|
||||
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||
|
||||
Files: *
|
||||
Copyright: 2016, Nils Adermann <naderman@naderman.de>
|
||||
2016, Jordi Boggiano <j.boggiano@seld.be>
|
||||
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 <naderman@naderman.de>
|
||||
2016, Jordi Boggiano <j.boggiano@seld.be>
|
||||
2013, Evan Coury <me@evancoury.com>
|
||||
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.
|
||||
|
1
common/vendor/composer/autoload_classmap.php
vendored
1
common/vendor/composer/autoload_classmap.php
vendored
@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
);
|
||||
|
11
common/vendor/composer/autoload_real.php
vendored
11
common/vendor/composer/autoload_real.php
vendored
@ -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 {
|
||||
|
5
common/vendor/composer/autoload_static.php
vendored
5
common/vendor/composer/autoload_static.php
vendored
@ -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);
|
||||
}
|
||||
|
210
common/vendor/composer/installed.json
vendored
210
common/vendor/composer/installed.json
vendored
@ -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": []
|
||||
}
|
||||
|
42
common/vendor/composer/installed.php
vendored
Normal file
42
common/vendor/composer/installed.php
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
<?php return 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',
|
||||
),
|
||||
),
|
||||
);
|
26
common/vendor/composer/platform_check.php
vendored
Normal file
26
common/vendor/composer/platform_check.php
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
// platform_check.php @generated by Composer
|
||||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 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
|
||||
);
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
?>
|
||||
<article>
|
||||
<h1 title="Homepage for <?php $site = $_SERVER['SERVER_NAME'];echo"$site";?>">Homepage</h1>
|
||||
@ -11,5 +11,5 @@ include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
</div>
|
||||
</article>
|
||||
<?php
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
require ($_SERVER['DOCUMENT_ROOT'].'/common/vendor/autoload.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
#Markdown parseing code.
|
||||
$MD_Parser = new Parsedown();
|
||||
$MD_Path = "gplv2.md";
|
||||
@ -10,5 +10,5 @@
|
||||
echo "<article>".$MD_Parser->text($MD_Text);
|
||||
fclose($MD_File);
|
||||
echo "<p>A text version of this document can be found <a href=\"/GPLv2.txt\">here</a>.</p>\n</article>";
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
require ($_SERVER['DOCUMENT_ROOT'].'/common/vendor/autoload.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
echo "<article>";
|
||||
?>
|
||||
<p>The MIT License (MIT)</p>
|
||||
@ -15,5 +15,5 @@
|
||||
<p>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.</p>
|
||||
<?php
|
||||
echo "<p>A text version of this document can be found <a href=\"/license/MIT.txt\">here</a>.</p>\n</article>";
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');
|
||||
include ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
||||
|
@ -3,8 +3,8 @@ function display_file($license_file){
|
||||
$out = file_get_contents($license_file);
|
||||
echo "<pre><code>".$out."</code></pre>";
|
||||
}
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/menu.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/header.php');
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/menu.php');
|
||||
?>
|
||||
<article>
|
||||
<p>A summery of all licenses that apply to this website.</p>
|
||||
@ -57,4 +57,4 @@ You can learn more on <a href="https://prismjs.com/">prismjs.com</a>.</p></block
|
||||
Prism is <a href="/license/MIT.php">MIT Licensed</a>.</p>
|
||||
<?php display_file("MIT_License.txt"); ?>
|
||||
</article>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'/common/footer.php');?>
|
||||
<?php include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');?>
|
||||
|
Loading…
x
Reference in New Issue
Block a user