Version 2.0 (Share Buttons; Article Pages; config file; disqus)

This commit is contained in:
mmk2410 2015-03-27 07:04:23 +01:00
parent 836098e2db
commit 2af426028b
12 changed files with 952 additions and 27 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
nbproject/

25
config.php Normal file
View file

@ -0,0 +1,25 @@
<?php
// This is the configuration file. You can configure here all necessary (and possible) options without editing the index.php file.
// Every line has an description about what you can change here. Don't delete any strings. You can set your value after the '=' sign and between the apostrophes.
// Make sure that every line ends with an semicolon (';').
// Blog Title - Set here an individual title of your blog by replacing pBlog with it.
$blogtitle = 'pBlog';
// Blog Author - Set here your name
$blogauthor = 'Marcel Kapfer';
// Blog description
$blogdescription = 'pBlog - A php blog engine without any database dependency';
// Home - set yes if you want to link to your homepage and no if not
$bloghome = 'yes';
// Home URL - Set here the url to your main page. Either relative (e.g. '../') or absolute ('http://github.com')
$bloghomeurl = '../';
// Home name - Set here an individual name for your main page
$bloghomename = 'Home';
// Intro - set yes if you have a blog intro and no if you don't hve one
$blogintro = 'yes';
// Disqus - to enable disqus set this one to yes and provide your shortname
$blogdisqus = 'no';
// Disqus shortname - Provide here your Disqus shortname. Without one, this won't work
$blogdisqusname = '';
// Footer - set here the text for your footer (e.g. a copyright info). You can replace the whole text after the '=' with your own one.
$blogfooter = 'pBlog ' . date("Y") . ' <a href="https://github.com/mmk2410/pBlog" target="blank">github.com/mmk2410/pBlog</a>';
?>

172
index.php
View file

@ -1,39 +1,60 @@
<!DOCTYPE HTML>
<!-- pBlog https://github.com/mmk2410/pblog -->
<!--
The MIT License
Copyright 2015 mmk2410.
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.
-->
<html>
<!-- For a good representation of the source code use an tab width which is not more than 4-->
<?php include 'config.php'; ?>
<head>
<!--Replace pBlog with your Blogtitle-->
<title>pBlog</title>
<!--Metatags
You don't have to change here anything, but I recommend to add an author and description tag-->
<title><?php echo $blogtitle; ?></title>
<!--Metatags-->
<meta name="author" content="<?php echo $blogauthor; ?>" />
<meta name="description" content="<?php echo $blogdescription; ?>" />
<meta name="theme-color" content="#ac2900"/>
<meta http-equiv="CACHE-CONTROL" content="no-cache" />
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
<!--CSS
no change needed-->
<!--CSS no change needed-->
<link rel="stylesheet" type="text/css" href="res/blog.css" />
<link href='http://fonts.googleapis.com/css?family=Roboto:400,500,700,300,400italic,100,100italic,900' rel='stylesheet' type='text/css'>
<!-- Set here the link to your favicon-->
<link rel="shortcut icon" href="../images/favicons/deep_orange.png">
<link rel="shortcut icon" href="res/favicon.png">
</head>
<body>
<div class="header">
<!--Replace 'index.php' with the link to this file
and 'Blog' with your Blogtitle-->
<nobr><a href="index.php" class="title">pBlog</a></nobr>
<!--Set here the link to your Homepage or delete the following line-->
<a href="../" class="home">Home</a>
<nobr><a href="index.php" class="title"><?php echo $blogtitle; ?></a></nobr>
<?php if($_GET['article'] == '' && $bloghome == 'yes'){ ?>
<a href="<?php echo $bloghomeurl; ?>" class="home"><?php echo $bloghomename; ?></a>
<?php } ?>
</div>
<!-- This is the Intro section. You can set your intro text in md/intro.md. In case you don't want an intro delete this whole section until the next comment-->
<section>
<span class="text">
<?php
require_once 'res/Parsedown.php';
require_once 'res/umlautconverter.php';
if(file_exists('md/intro.md')){
require_once 'res/hrefgenerator.php';
if(file_exists('md/intro.md') && $_GET['article'] == "" && $blogintro == "yes"){
$file = file_get_contents('md/intro.md');
$intro = Parsedown::instance()
->setBreaksEnabled(true)
@ -45,23 +66,130 @@
?>
</span>
</section>
<!-- In case you don't want a Intro section delete the above section-->
<!--DON'T CHANGE ANYTHING HERE!-->
<?php
$xml = simplexml_load_file('xml/posts.xml');
?>
<?php
$titleArray;
$i = 0;
foreach ($xml->post as $post){
$href = $post->title;
$HrefGenerator = new HrefGenerator;
$href = $HrefGenerator->createHref($href);
$titleArray[$i] = $href;
$i = $i + 1;
}
if($_GET['article'] != ""){
$an = array_search($_GET['article'], $titleArray, true);
$post = $xml->post[$an];
?>
<section>
<p class="texttitle">
<span class="texttitlemono">
<?php
$title = $post->title;
$UmlautConverter = new UmlautConverter;
$title = $UmlautConverter->convert($title);
echo $title;
?>
<br>
</span>
<small>
<?php
$pubdate = $post->pubdate;
$UmlautConverter = new UmlautConverter;
$pubdate = $UmlautConverter->convert($pubdate);
echo $pubdate;
?>
</small>
<p class="text">
<?php
$content = Parsedown::instance()
->setBreaksEnabled(true)
->text($post->content);
$UmlautConverter = new UmlautConverter;
$content = $UmlautConverter->convert($content);
echo $content;
?>
</p>
<p align="right">
<?php
foreach ($post->otherlinks->otherlb as $olb){
?>
<a class="button_white" target="_blank" href="
<?php
$otherurl = $olb->otherurl;
$UmlautConverter = new UmlautConverter;
$otherurl = $UmlautConverter->convert($otherurl);
echo $otherurl;
?>
">
<?php
$otherlink = $olb->otherlink;
$UmlautConverter = new UmlautConverter;
$otherlink = $UmlautConverter->convert($otherlink);
echo $otherlink;
?>
</a>
<?php
}
foreach($post->mainlink as $mainlink){
?>
<a class="button_color" target="_blank" href="
<?php
$mainurl = $post->mainurl;
$UmlautConverter = new UmlautConverter;
$mainurl = $UmlautConverter->convert($mainurl);
echo $mainurl;
?>
">
<?php
$mainlink = $post->mainlink;
$UmlautConverter = new UmlautConverter;
$mainlink = $UmlautConverter->convert($mainlink);
echo $mainlink;
?>
</a>
<?php } ?>
</p>
<?php include 'res/SocialBar.php'; ?>
<?php if($blogdisqus == 'yes' && $blogdisqusname != ''){ ?>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES * * */
var disqus_shortname = '<?php echo $blogdisqusname; ?>';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<?php } ?>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</section>
<?php
} else {
?>
<?php
foreach ($xml->post as $post){
?>
<section>
<a class="texttitle" href="
<?php
$href = $post->title;
$HrefGenerator = new HrefGenerator;
$href = $HrefGenerator->createHref($href);
echo 'index.php?article=' . $href;
?>
">
<?php
$title = $post->title;
$UmlautConverter = new UmlautConverter;
$title = $UmlautConverter->convert($title);
echo $title;
?>
<br>
</a>
<small>
<?php
$pubdate = $post->pubdate;
@ -123,11 +251,11 @@
</section>
<?php
}
}
?>
<div class="box_container">
<!--Set here your personal copyright info-->
<p class="cc">
pBlog <?php echo date("Y"); ?> <a href="https://github.com/mmk2410/pBlog" target="blank">github.com/mmk2410/pBlog</a>
<?php echo $blogfooter ?>
</p>
</div>
</body>

View file

@ -1,8 +1,7 @@
#pBlog
This is the Blog of the Blog Engine **pBlog**
pBlog is based on PHP, XML and Markdown. It is easy to install and to configure.
The latest Version is **1.2**
The latest Version is **2.0**
You can find the source code on [GitHub](https://github.com/mmk2410/pBlog).

14
res/SocialBar.php Normal file
View file

@ -0,0 +1,14 @@
<!-- The following code displays the social buttons -->
<?php
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
?>
<div class="socialbar">
<!--Twitter-->
<a href="https://twitter.com/intent/tweet?text=Check out: <?php echo $post->title; ?> &url=<?php echo $url; ?>&original_referer=" target="blank"><img src="res/twttr.svg" class="socialimg"/></a>
<!--Google+-->
<a href="https://plus.google.com/share?url=<?php echo $url; ?>&hl=en-US" target="blank"><img src="res/gplus.svg" class="socialimg" /></a>
<!--Facebook-->
<a href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $url; ?>&t=<?php echo $post->title; ?>" target="blank"><img src="res/fb.png" class="socialimg" /></a>
</div>

View file

@ -1,4 +1,29 @@
/* pBlog 0.2 */
/* pBlog 2.0 */
/*
* The MIT License
*
* Copyright 2015 mmk2410.
*
* 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,
* FINESS 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.
*
*/
body{
margin-right: 15%;
@ -155,7 +180,23 @@ code{
color: rgb(33, 33, 33);
line-height: 24px;
letter-spacing: 0.05px;
text-decoration: none;
}
.texttitle:hover{
color: #de3e0b;
}
.texttitlemono{
font-family: 'Roboto', sans-serif;
font-weight: 500;
font-size: 20px;
color: rgb(33, 33, 33);
line-height: 24px;
letter-spacing: 0.05px;
text-decoration: none;
}
.cc{
font-family: 'Roboto', sans-serif;
font-size: 12px;
@ -177,6 +218,18 @@ code{
text-decoration: underline;
}
.socialbar{
display: inline-block;
height: 68px;
margin-top: 10px;
}
.socialimg{
height: 40px;
display: inline-block;
padding-right: 5px;
}
@media screen and (max-width: 700px){
body {
margin-right: 40px;

BIN
res/fb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

147
res/gplus.svg Normal file
View file

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
viewBox="0 0 64 64"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="icon.svg"
inkscape:export-filename="/home/mmk/design/pBlog/googleplus/icon.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective4296" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="-185.63049"
inkscape:cy="-23.86682"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
fit-margin-bottom="-0.4"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="31"
inkscape:window-maximized="1"
showborder="false" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-988.36216)">
<rect
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
id="rect3401"
width="64"
height="64"
x="0"
y="988.36218" />
<rect
style="fill:#000080;fill-opacity:0;stroke:none"
id="rect4292"
width="27.526657"
height="12.374369"
x="-4.1668792"
y="991.62671" />
<rect
style="fill:#000080;fill-opacity:0;stroke:none"
id="rect4294"
width="36.49176"
height="30.052038"
x="16.541248"
y="1010.9459" />
<rect
style="fill:#d74132;fill-opacity:1;stroke:none"
id="rect4312"
width="64"
height="64"
x="0"
y="988.36218"
ry="5.1516638" />
<image
y="988.36218"
x="0"
id="image4400"
xlink:href="data:image/png;base64,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
AAAAAElFTkSuQmCC
"
preserveAspectRatio="none"
height="64"
width="64" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

50
res/hrefgenerator.php Normal file
View file

@ -0,0 +1,50 @@
<?php
/*
* The MIT License
*
* Copyright 2015 mmk2410.
*
* 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,
* FINESS 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.
*
*/
/**
* This is a small tool for converting the title of a post into someting usable
* as an url. This is used for the article urls.
*
* @author Marcel Kapfer <marcelmichaelkapfer@yahoo.co.nz>
*/
class HrefGenerator {
function createHref($text)
{
$output = str_replace(" ", "-", $text);
$output = str_replace("ä","ae",$output);
$output = str_replace("Ä","Ae",$output);
$output = str_replace("ö","oe",$output);
$output = str_replace("Ö","Oe",$output);
$output = str_replace("ü","ue",$output);
$output = str_replace("Ü","Ue",$output);
$output = str_replace("ß","ss",$output);
return $output;
}
}

458
res/twttr.svg Normal file
View file

@ -0,0 +1,458 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
viewBox="0 0 64.000001 64.000001"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="icon.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="28.215794"
inkscape:cy="34.339152"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="31"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-988.36218)">
<rect
style="fill:#5ea9dd;fill-opacity:1;stroke:none"
id="rect4136"
width="64"
height="64"
x="0"
y="988.36218"
ry="4.9107141" />
<image
y="998.45483"
x="5.0535717"
id="image4148"
xlink:href="data:image/png;base64,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
"
preserveAspectRatio="none"
height="43.814697"
width="53.892857" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -1,4 +1,37 @@
<?php
/*
* The MIT License
*
* Copyright 2015 mmk2410.
*
* 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,
* FINESS 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.
*
*/
/**
* This is a small tool for converting german umlauts into HTML codes.
* This fixes the error that one some servers weird sings are displayed.
*
* @author Marcel Kapfer <marcelmichaelkapfer@yahoo.co.nz>
*/
class UmlautConverter
{
function convert($text)

View file

@ -1,8 +1,25 @@
<?xml version='1.0' standalone='yes'?>
<posts>
<post>
<title>Version 2.0</title>
<pubdate>27th March 2015</pubdate>
<content>
This version introduces some very imporant features:
- **Own page for every article**
- Social **sharing buttons** (at the moment: google+, twitter, facebook but more will follow)
- **Disqus** integration
- Local **config file** -> no more editing the index file
pBlog 2.0 is only partially compatible with prior versions. You don't have to change anything in the posts or intro file (in case you have one), but to switch to version 2.0 you have to replace your index.php with the new one. With this step all your settings like the title will be lost and you have to set them in the new config.php file. For more questions write me a mail to marcelmichaelkapfer@yahoo.co.nz.
In the near future I will spend more time in writing a documentation about the blog engine and adding more comments (especially in the css file).
</content>
<mainurl>http://github.com/mmk2410/pBlog</mainurl>
<mainlink>GitHub</mainlink>
</post>
<post>
<title>Version 1.2</title>
<pubdate>8th February 2015</pubdate>
<pubdate>8th March 2015</pubdate>
<content>
In this Version code is better designed so you can read and recognise it better.