additional_plugins/homepage/index.php
Thomas Hochstein 5ffa0ad4d3 Get language selector working.
The chosen language got lost (reset to "en") after following the next
link, as the language field wasn't part of those links.

Now we choose the language in three steps:

If "language" ist set (after using the language selector form), we use
that.

If it isn't set but a plugin group was chosen, we take the right
language from the filename of that page.

Only if neither is set we fall back to english.

Moreover we keep the current language "selected" in the language
selector dropdown.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-24 13:00:57 +01:00

218 lines
9.9 KiB
PHP

<?php
# language switch
if (isset($_GET['language'])) {
#setcookie('language', $_GET['language']);
}
# if language (from language selector form) is set, set LANG accordingly
if (!empty($_REQUEST['language'])) {
define('LANG', preg_replace('@[^a-z_]@i', '', $_REQUEST['language']));
# if a plugin group is displayed, get LANG from page name
} elseif (!empty($_REQUEST['mode']) && (substr(($_REQUEST['mode']), 0, 8) != 'template')) {
define('LANG', preg_replace('@[^a-z_]@i', '', end(explode('_',$_REQUEST['mode']))));
# fall back to default (english)
} else {
define('LANG', 'en');
}
if (is_dir('homepage')) {
define('BASEDIR', 'homepage/');
} else {
define('BASEDIR', '');
}
if (!empty($_REQUEST['mode']) && !empty($_REQUEST['language']) && (substr(($_REQUEST['mode']), 0, 8) != 'template')) {
$page_language = end(explode('_',$_REQUEST['mode']));
if ($page_language != LANG) {
$_REQUEST['mode'] = preg_replace ('/'.$page_language.'$/', LANG, $_REQUEST['mode']);
}
}
?>
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Spartacus | Serendipity Blog System</title>
<meta name="description" content="Serendipity is a PHP-powered weblog engine giving users an easy way to maintain a blog and developers a framework with the power for professional applications.">
<link rel="apple-touch-icon" href="apple-touch-icon.png">
<link rel="stylesheet" href="homepage/css/master.css">
<script src="homepage/scripts/modernizr/modernizr.js"></script>
</head>
<body id="top">
<nav id="nav-global" role="navigation">
<div class="layout-container">
<a id="open-nav" class="nav-toggle" href="#site-nav">Menu</a>
<ul id="site-nav" class="nav-collapse">
<li><a href="http://s9y.org">Start</a></li>
<li><a href="http://docs.s9y.org/docs/">Docs</a></li>
<li><a href="http://blog.s9y.org">Blog</a></li>
<li><a href="http://board.s9y.org">Forums</a></li>
<?php if (substr(($_REQUEST['mode']), 0, 8) === 'template') { ?>
<li><a href="index.php">Plugins</a></li>
<li id="current-page"><a href="index.php?mode=template_all">Themes</a></li>
<?php } else { ?>
<li id="current-page"><a href="index.php">Plugins</a></li>
<li><a href="index.php?mode=template_all">Themes</a></li>
<?php } ?>
<li><a href="https://github.com/s9y">GitHub</a></li>
</ul>
</div>
</nav>
<header id="masthead" role="banner">
<div class="layout-container">
<h1>Spartacus</h1>
<div class="spartacus-slogan">
<span>Serendipity Plugin And Repository Tool Access Customization/Unification System</span>
</div>
</div>
</header>
<div id="claim">
<div class="layout-container">
<span id="slogan">Not mainstream since 2002</span>
</div>
</div>
<main role="main">
<div class="layout-container">
<article id="content">
<?php if (empty($_REQUEST['mode'])) { ?>
<h2>What is Spartacus?</h2>
<p>Spartacus is an Event Plugin for the Weblog Engine <a href="http://www.s9y.org">Serendipity</a>. Once installed through the usual plugin configuration manager within your Serendipity Installation, you can fetch and manage plugins via Serendipity. No need to use FTP or manual downloading - just click &amp; fetch!</p>
<h3>What is this site?</h3>
<p>This page is for not-yet Serendipity users to view our available plugins, or for users who cannot use the Spartacus plugin because of technical restrictions of their webserver.</p>
<p>You can browse these categories:</p>
<ul>
<li><a href="index.php?mode=bygroups_event_<?php echo LANG; ?>">Event plugins</a></li>
<li><a href="index.php?mode=bygroups_sidebar_<?php echo LANG; ?>">Sidebar plugins</a></li>
<li><a href="index.php?mode=template_all">Themes</a></li>
</ul>
<p>You can also quickjump to specific <a href="#spartacus-plugins">plugin categories</a>.</p>
<?php } else {
echo "<a class='spartacus-back' href='index.php'>Back to main</a>\n";
$file = BASEDIR . preg_replace('@[^a-z_0-9-]@i', '', $_REQUEST['mode']) . '.htm';
if (file_exists($file)) {
include $file;
} else { ?>
<p>Invalid URL</p>
<?php }
} ?>
</article>
<aside id="sidebar">
<h2>More info</h2>
<section id="spartacus-language" class="widget">
<h3>Change language</h3>
<form action="index.php" method="get">
<input type="hidden" name="mode" value="<?php echo $_REQUEST['mode']; ?>">
<select class="language" name="language">
<?php
$lang = array('en' => 'English',
'de' => 'German',
'da' => 'Danish',
'es' => 'Spanish',
'fr' => 'French',
'fi' => 'Finnish',
'cs' => 'Czech',
'nl' => 'Dutch',
'is' => 'Icelandic',
'se' => 'Swedish',
'pt' => 'Portuguese Brazilian',
'pt_PT' => 'Portuguese European',
'bg' => 'Bulgarian',
'hu' => 'Hungarian',
'no' => 'Norwegian',
'ro' => 'Romanian',
'it' => 'Italian',
'ru' => 'Russian',
'fa' => 'Persian',
'tn' => 'Traditional Chinese',
'cn' => 'Simplified Chinese',
'ja' => 'Japanese',
'ko' => 'Korean',
'ta' => 'Tamil');
foreach($lang as $l => $d) {
?>
<option value="<?php echo $l ?>"<?php echo ($l == LANG) ? ' selected' : ''; ?>><?php echo htmlspecialchars($d, ENT_COMPAT, 'UTF-8'); ?></option>
<?php
}
?>
</select>
<input type="submit" value="Go">
</form>
</section>
<section id="spartacus-plugins" class="widget">
<h3>Plugins</h3>
<h4>Event</h4>
<ul class="spartacus-list">
<li><a href="index.php?mode=bygroups_event_<?php echo LANG; ?>">All Groups</a></li>
<?php echo str_replace('[LANG]', LANG, file_get_contents(BASEDIR . 'box_groups_event.htm')); ?>
</ul>
<h4>Sidebar</h4>
<ul class="spartacus-list">
<li><a href="index.php?mode=bygroups_sidebar_<?php echo LANG; ?>">All Groups</a></li>
<?php echo str_replace('[LANG]', LANG, file_get_contents(BASEDIR . 'box_groups_sidebar.htm')); ?>
</ul>
</section>
<section id="spartacus-themes" class="widget">
<h3>Themes</h3>
<ul class="spartacus-list">
<li><a href="index.php?mode=template_all">All Templates</a></li>
<?php echo file_get_contents(BASEDIR . 'box_groups_template.htm'); ?>
</ul>
</section>
<section id="spartacus-feeds" class="widget">
<h3>Feeds</h3>
<ul>
<li><a href="https://raw.githubusercontent.com/s9y/additional_plugins/master/package_RSSevent.xml">Event plugins</a></li>
<li><a href="https://raw.githubusercontent.com/s9y/additional_plugins/master/package_RSSsidebar.xml">Sidebar plugins</a></li>
<li><a href="https://github.com/s9y/additional_plugins/commits/master.atom">Plugin commits</a></li>
<li><a href="https://github.com/s9y/additional_themes/commits/master.atom">Theme commits</a></li>
</ul>
</section>
</aside>
</div>
</main>
<footer id="service" role="contentinfo">
<div class="layout-container">
<ul id="service-links">
<li><a id="to-top" href="#top">Back to top</a></li>
<li><a href="https://blog.s9y.org/index.php?serendipity[subpage]=dsgvo_gdpr_privacy">Privacy policy</a></li>
</ul>
<p id="supporters">This site is hosted at <a href="https://uberspace.de/">Uberspace</a> and created by <a href="http://garv.in">Garvin Hicking</a> and the Serendipity Project.</p>
</div>
</footer>
<script src="homepage/scripts/jquery/dist/jquery.min.js"></script>
<script src="homepage/scripts/master.js"></script>
<!-- Google Analytics
<script>
window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
ga('create','UA-77038-1','auto');ga('send','pageview')
</script>
<script src="https://www.google-analytics.com/analytics.js" async defer></script>
-->
</body>
</html>