mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 12:48:24 +01:00
Initial Bootstrap 5 theme added.
This commit is contained in:
parent
c33b91ee5c
commit
79ded794b1
2
e107_themes/bootstrap5/README.md
Normal file
2
e107_themes/bootstrap5/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# bootstrap5
|
||||
bootstrap5 theme for e107 v2.3.1+
|
9
e107_themes/bootstrap5/languages/English.php
Normal file
9
e107_themes/bootstrap5/languages/English.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
/* example */
|
||||
|
||||
// define('LAN_THEME_BOOTSTRAP5_001', "Example");
|
||||
|
||||
|
||||
|
||||
|
11
e107_themes/bootstrap5/languages/English_admin.php
Normal file
11
e107_themes/bootstrap5/languages/English_admin.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system -
|
||||
|
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
define("LAN_THEMEPREF_01", "Bootswatch Styles:");
|
||||
define("LAN_THEMEPREF_02", "Display standard menu with card look");
|
||||
define("LAN_THEMEPREF_03", "Display Login Page as standard page");
|
10
e107_themes/bootstrap5/layouts/bare_layout.html
Normal file
10
e107_themes/bootstrap5/layouts/bare_layout.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!-- Page Content -->
|
||||
<div class="container">
|
||||
<div class="row mt-4">
|
||||
<div class="col-lg-12">
|
||||
{SETSTYLE=bare}
|
||||
{ALERTS}
|
||||
{---}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
11
e107_themes/bootstrap5/layouts/full_layout.html
Normal file
11
e107_themes/bootstrap5/layouts/full_layout.html
Normal file
@ -0,0 +1,11 @@
|
||||
<!-- Layout: Full -->
|
||||
{ALERTS}
|
||||
<div class='container'>
|
||||
<!-- Page Heading/Breadcrumbs -->
|
||||
<h1 class="mt-4 mb-3">{---CAPTION---}
|
||||
<small>{---TEXT---}</small>
|
||||
</h1>
|
||||
{---BREADCRUMB---}
|
||||
{SETSTYLE=main}
|
||||
{---}
|
||||
</div>
|
12
e107_themes/bootstrap5/layouts/home_layout.html
Normal file
12
e107_themes/bootstrap5/layouts/home_layout.html
Normal file
@ -0,0 +1,12 @@
|
||||
<!-- place for Featurebox or any masthead solution -->
|
||||
{SETSTYLE=bare}
|
||||
{HERO}
|
||||
{MENU=1}
|
||||
<!-- Page Content -->
|
||||
|
||||
{ALERTS}
|
||||
{SETSTYLE=section} <!-- Example -->
|
||||
{---}
|
||||
<div class="container">
|
||||
{MENU=2}
|
||||
</div>
|
34
e107_themes/bootstrap5/layouts/sidebar_left_layout.html
Normal file
34
e107_themes/bootstrap5/layouts/sidebar_left_layout.html
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
<!-- Magic Shortcodes - proof of concept -->
|
||||
<!-- Enabled Debug in 'basic' mode to view all available types -->
|
||||
|
||||
<!-- Page Content -->
|
||||
<div class="container">
|
||||
|
||||
<!-- Page Heading/Breadcrumbs -->
|
||||
<h1 class="mt-4 mb-3">{---CAPTION---}
|
||||
<small>{---TEXT---}</small>
|
||||
</h1>
|
||||
|
||||
{---BREADCRUMB---}
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-3 mb-3 sidebar">
|
||||
<div class="menu">
|
||||
{SETSTYLE=cardmenu}
|
||||
{MENU=1}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
{ALERTS}
|
||||
{SETSTYLE=main}
|
||||
{---}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container -->
|
42
e107_themes/bootstrap5/layouts/sidebar_right_layout.html
Normal file
42
e107_themes/bootstrap5/layouts/sidebar_right_layout.html
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
<!-- Magic Shortcodes - proof of concept -->
|
||||
<!-- Enabled Debug in 'basic' mode to view all available types -->
|
||||
|
||||
<!-- Page Content -->
|
||||
<div class="container">
|
||||
|
||||
<!-- Page Heading/Breadcrumbs -->
|
||||
<h1 class="mt-4 mb-3">{---CAPTION---}
|
||||
<small>{---TEXT---}</small>
|
||||
</h1>
|
||||
|
||||
{---BREADCRUMB---}
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- Blog Entries Column -->
|
||||
<div class="col-md-8">
|
||||
{ALERTS}
|
||||
{SETSTYLE=main}
|
||||
{---}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-3 sidebar">
|
||||
<!-- Standard sidebar menu -->
|
||||
<div class="menu">
|
||||
{SETSTYLE=cardmenu}
|
||||
{MENU=1}
|
||||
</div>
|
||||
<!-- Example for listgroup menu -->
|
||||
<div class="list">
|
||||
{SETSTYLE=listgroup}
|
||||
{MENU=2}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
|
6
e107_themes/bootstrap5/layouts/splash_layout.html
Normal file
6
e107_themes/bootstrap5/layouts/splash_layout.html
Normal file
@ -0,0 +1,6 @@
|
||||
{SETSTYLE=singlelogin}
|
||||
{ALERTS}
|
||||
{---}
|
||||
|
||||
|
||||
|
111
e107_themes/bootstrap5/style.css
Normal file
111
e107_themes/bootstrap5/style.css
Normal file
@ -0,0 +1,111 @@
|
||||
body {
|
||||
padding-top: 56px;
|
||||
}
|
||||
|
||||
body.layout-home {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
body.layout-singlelogin {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* featurebox defaults */
|
||||
#e107bootstrapcarousel .carousel-item {
|
||||
height: 65vh;
|
||||
min-height: 300px;
|
||||
background: no-repeat center center scroll;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
#e107fullpagecarousel .carousel-item {
|
||||
height: 100vh;
|
||||
min-height: 300px;
|
||||
background: no-repeat center center scroll;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
background-color: #272B30;
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
ul.social-buttons li a {
|
||||
font-size: 20px;
|
||||
line-height: 50px;
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
-webkit-transition: all .3s;
|
||||
transition: all .3s;
|
||||
color: #fff;
|
||||
border-radius: 100%;
|
||||
outline: 0;
|
||||
background-color: #212529;
|
||||
}
|
||||
|
||||
|
||||
/* fix for comment avatar */
|
||||
|
||||
.rounded-circle img.rounded {
|
||||
border-radius: 50%!important;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.offset1 {
|
||||
margin-left: 8.33333%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.list-group-item.active a {
|
||||
z-index: 2;
|
||||
color: #fff;
|
||||
background-color: #007bff;
|
||||
border-color: #007bff;
|
||||
}
|
||||
|
||||
/* fix for caret bootstrap user nav */
|
||||
.profile-photo-small {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/* fix for fixed-top on login page - to save custom header */
|
||||
.layout-singlelogin .fixed-top {
|
||||
position: initial;
|
||||
}
|
||||
|
||||
/* fix for too small core login box width */
|
||||
|
||||
#login-template {
|
||||
max-width: 95%;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#login-template {
|
||||
max-width: 500px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* fix for too big margin */
|
||||
#login-template .login-page-footer {
|
||||
margin-bottom: initial;
|
||||
}
|
||||
|
||||
/* */
|
||||
.jumbotron {
|
||||
padding: 2rem 1rem;
|
||||
margin-bottom: 2rem;
|
||||
background-color: #e9ecef;
|
||||
border-radius: .3rem;
|
||||
}
|
||||
|
||||
/* CUSTOM Responsive Styles */
|
62
e107_themes/bootstrap5/theme.html
Normal file
62
e107_themes/bootstrap5/theme.html
Normal file
@ -0,0 +1,62 @@
|
||||
|
||||
<body id="page-top" class="{LAYOUT_ID}" {BODY_ONLOAD} >
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{SITEURL}">{SITENAME}</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||
{NAVIGATION: type=main&class=me-auto}
|
||||
{SIGNIN}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!--- Optional custom header template controlled by theme_shortcodes -->
|
||||
{---HEADER---}
|
||||
|
||||
<!-- Page Content -->
|
||||
{---LAYOUT---}
|
||||
|
||||
<!-- Footer -->
|
||||
{SETSTYLE=footer}
|
||||
|
||||
|
||||
<footer class="footer py-4 bg-dark text-white">
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<h4>Navigation</h4>
|
||||
{NAVIGATION: type=main&layout=alt}
|
||||
{MENUAREA=10}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h4>Follow Us</h4>
|
||||
{XURL_ICONS: template=footer}
|
||||
{MENUAREA=11}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{MENUAREA=12}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{MENUAREA=13}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="container">{NAVIGATION: type=main&layout=footer}</div>
|
||||
<div class="container">
|
||||
<p class="m-0 text-center text-white">{SITEDISCLAIMER}</p>
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!--- Optional custom footer template controlled by theme_shortcodes -->
|
||||
{---FOOTER---}
|
||||
|
||||
{---MODAL---}
|
||||
<!-- Javascripts and other information are automatically added below here -->
|
||||
</body> <!-- This tag is not necessary and is ignored and replaced. Left here only as a reference -->
|
235
e107_themes/bootstrap5/theme.php
Normal file
235
e107_themes/bootstrap5/theme.php
Normal file
@ -0,0 +1,235 @@
|
||||
<?php
|
||||
|
||||
if(!defined('e107_INIT'))
|
||||
{
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
class theme implements e_theme_render
|
||||
{
|
||||
|
||||
public function init()
|
||||
{
|
||||
|
||||
e107::lan('theme');
|
||||
|
||||
e107::meta('viewport', 'width=device-width, initial-scale=1.0'); // added to <head>
|
||||
// e107::link('rel="preload" href="{THEME}fonts/myfont.woff2?v=2.2.0" as="font" type="font/woff2" crossorigin'); // added to <head>
|
||||
|
||||
//e107::meta('apple-mobile-web-app-capable','yes');
|
||||
|
||||
|
||||
$bootswatch = e107::pref('theme', 'bootswatch', false);
|
||||
if($bootswatch) {
|
||||
e107::css('url', 'https://bootswatch.com/4/' . $bootswatch . '/bootstrap.min.css');
|
||||
e107::css('url', 'https://bootswatch.com/4/' . $bootswatch . '/bootstrap.min.css');
|
||||
}
|
||||
|
||||
$inlinecss = e107::pref('theme', 'inlinecss', false);
|
||||
if($inlinecss)
|
||||
{
|
||||
e107::css("inline", $inlinecss);
|
||||
}
|
||||
$inlinejs = e107::pref('theme', 'inlinejs');
|
||||
if($inlinejs)
|
||||
{
|
||||
e107::js("footer-inline", $inlinejs);
|
||||
}
|
||||
|
||||
e107::js("theme", 'custom.js', 'jquery');
|
||||
|
||||
$login_iframe = e107::pref('theme', 'login_iframe', false);
|
||||
|
||||
//XXX FIXME - e_IFRAME cannot be redefined.
|
||||
if (THEME_LAYOUT == "singlelogin" && $login_iframe)
|
||||
{
|
||||
define('e_IFRAME', '0');
|
||||
}
|
||||
if (THEME_LAYOUT == "singlesignup" && $login_iframe)
|
||||
{
|
||||
define('e_IFRAME', '0');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $text
|
||||
* @return string without p tags added always with bbcodes
|
||||
* note: this solves W3C validation issue and CSS style problems
|
||||
* use this carefully, mainly for custom menus, let decision on theme developers
|
||||
*/
|
||||
|
||||
function remove_ptags($text = '') // FIXME this is a bug in e107 if this is required.
|
||||
{
|
||||
|
||||
$text = str_replace(array("<!-- bbcode-html-start --><p>", "</p><!-- bbcode-html-end -->"), "", $text);
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
function tablestyle($caption, $text, $mode='', $options = array())
|
||||
{
|
||||
|
||||
$style = varset($options['setStyle'], 'default');
|
||||
|
||||
// Override style based on mode.
|
||||
switch($mode)
|
||||
{
|
||||
case 'wmessage':
|
||||
case 'wm':
|
||||
$style = 'wmessage';
|
||||
break;
|
||||
|
||||
case "login_page":
|
||||
case "fpw":
|
||||
case "coppa":
|
||||
case "signup":
|
||||
$style = 'splash';
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
echo "\n<!-- tablestyle initial: style=" . $style . " mode=" . $mode . " UniqueId=" . varset($options['uniqueId']) . " -->\n\n";
|
||||
|
||||
|
||||
if($style === 'listgroup' && empty($options['list']))
|
||||
{
|
||||
$style = 'cardmenu';
|
||||
}
|
||||
|
||||
if($style === 'cardmenu' && !empty($options['list']))
|
||||
{
|
||||
$style = 'listgroup';
|
||||
}
|
||||
|
||||
/* Changing card look via prefs */
|
||||
if(!e107::pref('theme', 'cardmenu_look') && $style == 'cardmenu')
|
||||
{
|
||||
$style = 'menu';
|
||||
}
|
||||
|
||||
// echo "\n<!-- tablestyle: style=" . $style . " mode=" . $mode . " UniqueId=" . varset($options['uniqueId']) . " -->\n\n";
|
||||
|
||||
if(deftrue('e_DEBUG'))
|
||||
{
|
||||
echo "\n<!-- \n";
|
||||
echo json_encode($options, JSON_PRETTY_PRINT);
|
||||
echo "\n-->\n\n";
|
||||
}
|
||||
|
||||
switch($style)
|
||||
{
|
||||
|
||||
case 'wmessage':
|
||||
echo '<div class="jumbotron"><div class="container text-center">';
|
||||
if(!empty($caption))
|
||||
{
|
||||
echo '<h1 class="display-4">'.$caption.'</h1>';
|
||||
}
|
||||
|
||||
echo '<p class="lead">'.$this->remove_ptags($text).'</p>';
|
||||
echo '</div></div>';
|
||||
break;
|
||||
|
||||
case 'bare':
|
||||
echo $this->remove_ptags($text);
|
||||
break;
|
||||
|
||||
|
||||
case 'nocaption':
|
||||
case 'main':
|
||||
echo $text;
|
||||
break;
|
||||
|
||||
|
||||
case 'menu':
|
||||
echo '<div class=" mb-4">';
|
||||
if(!empty($caption))
|
||||
{
|
||||
echo '<h5 >' . $caption . '</h5>';
|
||||
}
|
||||
echo $text;
|
||||
echo '</div>';
|
||||
break;
|
||||
|
||||
|
||||
case 'cardmenu':
|
||||
echo '<div class="card mb-4">';
|
||||
if(!empty($caption))
|
||||
{
|
||||
echo '<h5 class="card-header">' . $caption . '</h5>';
|
||||
}
|
||||
echo '<div class="card-body">';
|
||||
echo $text;
|
||||
echo '</div>
|
||||
</div>';
|
||||
break;
|
||||
|
||||
|
||||
case 'listgroup':
|
||||
echo '<div class="card mb-4">';
|
||||
if(!empty($caption))
|
||||
{
|
||||
echo '<h5 class="card-header">' . $caption . '</h5>';
|
||||
}
|
||||
echo $text;
|
||||
|
||||
if(!empty($options['footer'])) // XXX @see news-months menu.
|
||||
{
|
||||
echo '<div class="card-footer">
|
||||
'.$options['footer'].'
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
||||
echo '</div>';
|
||||
break;
|
||||
|
||||
case 'splash':
|
||||
echo '<div class="container justify-content-center text-center my-5" id="'.$mode.'">
|
||||
<div class="row align-items-center">
|
||||
<div class="card card-signin col-md-6 offset-md-3 " id="login-template"><div class="card-body">';
|
||||
|
||||
if(!empty($caption))
|
||||
{
|
||||
echo '<h5 class="card-title text-center">' . $caption . '</h5>';
|
||||
}
|
||||
|
||||
echo $text;
|
||||
|
||||
if(!empty($options['footer'])) // XXX @see news-months menu.
|
||||
{
|
||||
echo '<div class="card-footer">
|
||||
'.$options['footer'].'
|
||||
</div>';
|
||||
}
|
||||
|
||||
echo '</div></div>
|
||||
</div></div>';
|
||||
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
|
||||
// default style
|
||||
// only if this always work, play with different styles
|
||||
|
||||
if(!empty($caption))
|
||||
{
|
||||
echo '<h4>' . $caption . '</h4>';
|
||||
}
|
||||
echo $text;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
47
e107_themes/bootstrap5/theme.xml
Normal file
47
e107_themes/bootstrap5/theme.xml
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<e107Theme name="Bootstrap 5" version="1.0" date="2021-03-22" compatibility="2.3.1">
|
||||
<author name ="e107 Inc" email="e107inc@something.com" url="http://e107.org" />
|
||||
<summary>Bootstrap 5 basic theme</summary>
|
||||
<description>A starter template for bootstrap5 themes.</description>
|
||||
<category>generic</category>
|
||||
<plugins>
|
||||
<plugin name='social' url='core' />
|
||||
<plugin name='featurebox' url='core' />
|
||||
</plugins>
|
||||
<keywords>
|
||||
<word>bootstrap</word>
|
||||
<word>clean</word>
|
||||
<word>wireframe</word>
|
||||
</keywords>
|
||||
<libraries>
|
||||
<library name="bootstrap" version="5" scope="front"/>
|
||||
<library name="fontawesome" version="5" scope="front"/>
|
||||
</libraries>
|
||||
<stylesheets>
|
||||
<css file="style.css" name="Default" />
|
||||
</stylesheets>
|
||||
<screenshots>
|
||||
<image>preview_frontend.png</image>
|
||||
</screenshots>
|
||||
<layouts>
|
||||
<layout name='home' title='Home Page' >
|
||||
<custompages>FRONTPAGE</custompages>
|
||||
</layout>
|
||||
<layout name='full' title='Full Page' >
|
||||
<custompages>forum/ download/</custompages>
|
||||
</layout>
|
||||
<layout name='sidebar_left' title='Sidebar (left)' />
|
||||
<layout name='sidebar_right' title='Sidebar (right)' default='true' />
|
||||
<layout name='splash' title='Splash Page' >
|
||||
<custompages>login fpw signup</custompages>
|
||||
</layout>
|
||||
<layout name='bare' title='Bare Page' >
|
||||
<custompages></custompages>
|
||||
</layout>
|
||||
</layouts>
|
||||
<themePrefs>
|
||||
<pref name='cardmenu_look'>1</pref>
|
||||
<pref name='inlinecss'></pref>
|
||||
<pref name='login_iframe'></pref>
|
||||
</themePrefs>
|
||||
</e107Theme>
|
69
e107_themes/bootstrap5/theme_config.php
Normal file
69
e107_themes/bootstrap5/theme_config.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
$sitetheme = e107::getPref('sitetheme');
|
||||
|
||||
e107::themeLan('admin', $sitetheme, true);
|
||||
|
||||
|
||||
|
||||
|
||||
class theme_config implements e_theme_config
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
function config()
|
||||
{
|
||||
// v2.2.2
|
||||
$bootswatch = array(
|
||||
"cerulean"=> 'Cerulean',
|
||||
"cosmo"=> 'Cosmo',
|
||||
"cyborg"=> 'Cyborg',
|
||||
"darkly"=> 'Darkly',
|
||||
"flatly"=> 'Flatly',
|
||||
"journal"=> 'Journal',
|
||||
"litera"=> 'Litera',
|
||||
"lumen"=> 'Lumen',
|
||||
"lux"=> 'Lux',
|
||||
"materia"=> 'Materia',
|
||||
"minty"=> 'Minty',
|
||||
"pulse"=> 'Pulse',
|
||||
"sandstone"=> 'Sandstone',
|
||||
"simplex"=> 'Simplex',
|
||||
"sketchy"=> 'sketchy',
|
||||
"slate"=> 'Slate',
|
||||
"solar"=> 'Solar',
|
||||
"spacelab"=> 'Spacelab',
|
||||
"superhero"=> 'Superhero',
|
||||
"united"=> 'United',
|
||||
"yeti"=> 'Yeti',
|
||||
);
|
||||
|
||||
$previewLink = " <a class='btn btn-default btn-secondary e-modal' data-modal-caption=\"Use the 'Themes' menu to view the selection.\" href='http://bootswatch.com/default/'>".LAN_PREVIEW."</a>";
|
||||
|
||||
return array(
|
||||
'bootswatch' => array('title'=>LAN_THEMEPREF_01, 'type'=>'dropdown', 'writeParms'=>array('optArray'=> $bootswatch, 'post'=>$previewLink, 'default'=>LAN_DEFAULT)),
|
||||
'cardmenu_look' => array('title' => LAN_THEMEPREF_02, 'type'=>'boolean', 'writeParms'=>array(),'help'=>''),
|
||||
'login_iframe' => array('title' => LAN_THEMEPREF_03, 'type'=>'boolean', 'writeParms'=>array(),'help'=>''),
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function help()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
function process()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
144
e107_themes/bootstrap5/theme_shortcodes.php
Normal file
144
e107_themes/bootstrap5/theme_shortcodes.php
Normal file
@ -0,0 +1,144 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2021 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* e107 Bootstrap Theme Shortcodes.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class theme_shortcodes extends e_shortcode
|
||||
{
|
||||
|
||||
/**
|
||||
* Special Header Shortcode for dynamic menuarea templates.
|
||||
* @shortcode {---HEADER---}
|
||||
* @return string
|
||||
*/
|
||||
function sc_header()
|
||||
{
|
||||
return "<!-- Dynamic Header template -->\n";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Special Footer Shortcode for dynamic menuarea templates.
|
||||
* @shortcode {---FOOTER---}
|
||||
* @return string
|
||||
*/
|
||||
function sc_footer()
|
||||
{
|
||||
return "<!-- Dynamic Footer template -->\n";
|
||||
/*
|
||||
return '
|
||||
<footer class="footer py-4 bg-dark text-white">
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<div class="row">
|
||||
<div class="col-md-3"> <h4>Navigation</h4>{NAVIGATION: type=main&layout=alt}
|
||||
{MENUAREA=14}
|
||||
</div>
|
||||
<div class="col-md-3"> <h4>Follow Us</h4>{XURL_ICONS: template=footer}
|
||||
{MENUAREA=15}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{MENUAREA=16}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{MENUAREA=17}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="container"> {NAVIGATION: type=main&layout=footer} </div>
|
||||
<div class="container">
|
||||
<p class="m-0 text-center text-white">{SITEDISCLAIMER}</p>
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
</footer>';*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Optional {---CAPTION---} processing.
|
||||
* @shortcode {---CAPTION---}
|
||||
* @return string
|
||||
*/
|
||||
function sc_caption($caption)
|
||||
{
|
||||
return $caption;
|
||||
}
|
||||
|
||||
/**
|
||||
* Will only function on the news page.
|
||||
* @example {THEME_NEWS_BANNER: type=date}
|
||||
* @example, {THEME_NEWS_BANNER: type=image}
|
||||
* @example {THEME_NEWS_BANNER: type=author}
|
||||
* @param null $parm
|
||||
* @return string|null
|
||||
*/
|
||||
function sc_theme_news_banner($parm=null)
|
||||
{
|
||||
/** @var news_shortcodes $news */
|
||||
$sc = e107::getScBatch('news');
|
||||
$news = $sc->getScVar('news_item');
|
||||
|
||||
$ret = '';
|
||||
$type = varset($parm['type']);
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case "title":
|
||||
$ret = $sc->sc_news_title();
|
||||
break;
|
||||
|
||||
case "date":
|
||||
$ret = $sc->sc_news_date();
|
||||
break;
|
||||
|
||||
case "comment":
|
||||
$ret = $sc->sc_news_comment_count();
|
||||
break;
|
||||
|
||||
case "author":
|
||||
$ret = $sc->sc_news_author();
|
||||
break;
|
||||
|
||||
case "image":
|
||||
default:
|
||||
if(!empty($news['news_thumbnail']))
|
||||
{
|
||||
$tmp = explode(',', $news['news_thumbnail']);
|
||||
|
||||
$opts = array(
|
||||
'w' => 1800,
|
||||
'h' => null,
|
||||
'crop' => false,
|
||||
);
|
||||
|
||||
$ret = e107::getParser()->toImage($tmp[0], $opts);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user