Added CSS theme seletor (dark/light)
This commit is contained in:
2025-08-20 01:12:59 -05:00
parent 0fa0593d14
commit 886262cdc1
108 changed files with 2245 additions and 1192 deletions

View File

@@ -1,7 +1,13 @@
; Joomla! Project
; (C) 2017 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8
;---------------------------------------------------
; Template: moko-cassiopeia
; File: en-GB.tpl_moko-cassiopeia.ini
; Version: 1.14
; Author: Jonathan Andrew Miller
; Copyright: (C) 2025 Jonathan Andrew Miller. All rights reserved.
; License: GNU General Public License v3 or later; see LICENSE.txt
; Description: Language strings for the frontend template.
; Note: All ini files must be saved as UTF-8 without BOM.
;---------------------------------------------------
MOKO-CASSIOPEIA="MOKO-CASSIOPEIA Site template"
TPL_MOKO-CASSIOPEIA_BACKTOTOP="Back to Top"

View File

@@ -1,7 +1,13 @@
; Joomla! Project
; (C) 2017 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8
;---------------------------------------------------
; Template: moko-cassiopeia
; File: en-GB.tpl_moko-cassiopeia.sys.ini
; Version: 1.14
; Author: Jonathan Andrew Miller
; Copyright: (C) 2025 Jonathan Andrew Miller. All rights reserved.
; License: GNU General Public License v3 or later; see LICENSE.txt
; Description: Language strings for the frontend template.
; Note: All ini files must be saved as UTF-8 without BOM.
;---------------------------------------------------
TPL_MOKO-CASSIOPEIA="Moko-Cassiopeia Site template"
TPL_MOKO-CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown"

View File

@@ -1,7 +1,13 @@
; Joomla! Project
; (C) 2017 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8
;---------------------------------------------------
; Template: moko-cassiopeia
; File: en-US.tpl_moko-cassiopeia.ini
; Version: 1.14
; Author: Jonathan Andrew Miller
; Copyright: (C) 2025 Jonathan Andrew Miller. All rights reserved.
; License: GNU General Public License v3 or later; see LICENSE.txt
; Description: Language strings for the frontend template.
; Note: All ini files must be saved as UTF-8 without BOM.
;---------------------------------------------------
MOKO-CASSIOPEIA="MOKO-CASSIOPEIA Site template"
TPL_MOKO-CASSIOPEIA_BACKTOTOP="Back to Top"

View File

@@ -1,7 +1,13 @@
; Joomla! Project
; (C) 2017 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8
;---------------------------------------------------
; Template: moko-cassiopeia
; File: en-US.tpl_moko-cassiopeia.sys.ini
; Version: 1.14
; Author: Jonathan Andrew Miller
; Copyright: (C) 2025 Jonathan Andrew Miller. All rights reserved.
; License: GNU General Public License v3 or later; see LICENSE.txt
; Description: Language strings for the frontend template.
; Note: All ini files must be saved as UTF-8 without BOM.
;---------------------------------------------------
TPL_MOKO-CASSIOPEIA="Moko-Cassiopeia Site template"
TPL_MOKO-CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown"
@@ -38,3 +44,4 @@ Features:
- Ideal for professional services, portfolios, and informational websites
Code Attribution: This template is based on the original Cassiopeia template developed by the Joomla! Project and released under the GNU General Public License. Modifications and enhancements have been made by Moko Consulting in accordance with open-source licensing standards. It includes integration with Bootstrap TOC (https://afeld.github.io/bootstrap-toc/), an open-source table of content

View File

@@ -1,7 +1,8 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */
/*!
* @package Joomla.Site
* @subpackage Templates.moko-cassiopeia
* @file /media/templates/sote/moko-cassiopeia/css/global/colors_alternative.css
* @file /media/templates/sote/moko-cassiopeia/css/global/colors_standard.css
*
* © 2025 Moko Consulting — All Rights Reserved
* @license GNU General Public License version 2 or later; see LICENSE.txt
@@ -12,16 +13,74 @@
*/
:root, [data-bs-theme="light"] {
color-scheme: light;
--color-primary: #112855;
--color-link: #224FAA;
--color-hover: #224FAA;
--header-background-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--header-background-position: auto;
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
--container-below-topbar-bg-image: ;
--container-below-topbar-bg-color ;
--container-below-topbar-bg-position: auto;
--container-below-topbar-bg-attachment: fixed;
--container-below-topbar-bg-repeat: repeat;
--container-below-topbar-bg-size: auto;
--container-below-topbar-border: ;
--container-below-topbar-border-radius: ;
--container-top-a-bg-image: ;
--container-top-a-bg-color: ;
--container-top-a-bg-position: auto;
--container-top-a-bg-attachment: fixed;
--container-top-a-bg-repeat: repeat;
--container-top-a-bg-size: auto;
--container-top-a-border: ;
--container-top-a-border-radius: ;
--container-top-b-bg-image: ;
--container-top-b-bg-color: ;
--container-top-b-bg-position: auto;
--container-top-b-bg-attachment: fixed;
--container-top-b-bg-repeat: repeat;
--container-top-b-bg-size: auto;
--container-top-b-border: ;
--container-top-b-border-radius: ;
--container-toc-bg: white;
--container-toc-color: var(--color-primary);
--container-sidebar-bg-image: ;
--container-sidebar-bg-color: ;
--container-sidebar-bg-position: auto;
--container-sidebar-bg-attachment: scroll;
--container-sidebar-bg-repeat: repeat;
--container-sidebar-bg-size: auto;
--container-sidebar-border: ;
--container-sidebar-border-radius: ;
--container-bottom-a-bg-image: ;
--container-bottom-a-bg-color: ;
--container-bottom-a-bg-position: auto;
--container-bottom-a-bg-attachment: fixed;
--container-bottom-a-bg-repeat: repeat;
--container-bottom-a-bg-size: auto;
--container-bottom-a-border: ;
--container-bottom-a-border-radius: 5px;
--container-bottom-b-bg-image: ;
--container-bottom-b-bg-color: ;
--container-bottom-b-bg-position: auto;
--container-bottom-b-bg-attachment: fixed;
--container-bottom-b-bg-repeat: repeat;
--container-bottom-b-bg-size: auto;
--container-bottom-b-border: ;
--container-bottom-b-border-radius: ;
--nav-text-color: white;
--nav-bg-color: #224FAA;
--accent-color-primary: #3f8ff0;
@@ -433,3 +492,293 @@
--btn-focus-shadow-rgb: 39, 39, 111;
text-decoration: underline;
}
/* -----------------------------------------------
* DARK THEME — append below your light block
* --------------------------------------------- */
:root[data-bs-theme='dark'], [data-bs-theme='dark'] {
/* System hint for native widgets */
color-scheme: dark;
/* Brand & links */
--color-primary: #c7d2ff;
--color-link: #8ab4f8;
--color-hover: #bcd1ff;
/* Header background (kept same image; works over dark bg) */
--header-background-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
/* Section containers */
--container-below-topbar-bg-image: ;
--container-below-topbar-bg-color: #0f141b;
--container-below-topbar-bg-position: center;
--container-below-topbar-bg-attachment: fixed;
--container-below-topbar-bg-repeat: no-repeat;
--container-below-topbar-bg-size: cover;
--container-below-topbar-border: 1px solid #2b323b;
--container-below-topbar-border-radius: 8px;
--container-top-a-bg-image: ;
--container-top-a-bg-color: #0e1319;
--container-top-a-bg-position: center;
--container-top-a-bg-attachment: fixed;
--container-top-a-bg-repeat: no-repeat;
--container-top-a-bg-size: cover;
--container-top-a-border: 1px solid #2b323b;
--container-top-a-border-radius: 8px;
--container-top-b-bg-image: ;
--container-top-b-bg-color: #0e1319;
--container-top-b-bg-position: center;
--container-top-b-bg-attachment: fixed;
--container-top-b-bg-repeat: no-repeat;
--container-top-b-bg-size: cover;
--container-top-b-border: 1px solid #2b323b;
--container-top-b-border-radius: 8px;
--container-toc-bg: #0f141b;
--container-toc-color: #dbe3ff;
--container-sidebar-bg-image: ;
--container-sidebar-bg-color: #0c1016;
--container-sidebar-bg-position: center;
--container-sidebar-bg-attachment: scroll;
--container-sidebar-bg-repeat: repeat;
--container-sidebar-bg-size: auto;
--container-sidebar-border: 1px solid #28303a;
--container-sidebar-border-radius: 8px;
--container-bottom-a-bg-image: ;
--container-bottom-a-bg-color: #0e141b;
--container-bottom-a-bg-position: center;
--container-bottom-a-bg-attachment: fixed;
--container-bottom-a-bg-repeat: no-repeat;
--container-bottom-a-bg-size: cover;
--container-bottom-a-border: 1px solid #2b323b;
--container-bottom-a-border-radius: 5px;
--container-bottom-b-bg-image: ;
--container-bottom-b-bg-color: #0e141b;
--container-bottom-b-bg-position: center;
--container-bottom-b-bg-attachment: fixed;
--container-bottom-b-bg-repeat: no-repeat;
--container-bottom-b-bg-size: cover;
--container-bottom-b-border: 1px solid #2b323b;
--container-bottom-b-border-radius: 8px;
/* Nav & accents */
--nav-text-color: #fff;
--nav-bg-color: #0e1a3c;
--accent-color-primary: #3f8ff0;
--accent-color-secondary: #6fb3ff;
--border: 5px;
--mainmenu-nav-link-color: #fff;
/* Palette */
--blue: #91a4ff;
--black: #000;
--indigo: #b19cff;
--purple: #c0a5ff;
--pink: #ff8fc0;
--red: #ff7a73;
--orange: #ff9c4d;
--yellow: #ffd166;
--green: #78d694;
--teal: #76e3ff;
--cyan: #6fb7ff;
--white: #fff;
/* Grays tuned for dark */
--gray-100: #161a20;
--gray-200: #1b2027;
--gray-300: #222831;
--gray-400: #2b323b;
--gray-500: #36404a;
--gray-600: #48525d;
--gray-700: #5b6672;
--gray-800: #cfd6de;
--gray-900: #e6ebf1;
/* Contextuals (keep brand hues) */
--primary: #010156;
--secondary: #48525d;
--success: #4aa664;
--info: #4f7aa0;
--warning: #c77a00;
--danger: #c23a31;
--light: #1b2027;
--dark: #0f1318;
/* RGB helpers */
--primary-rgb: 1,1,86;
--secondary-rgb: 72,82,93;
--success-rgb: 74,166,100;
--info-rgb: 79,122,160;
--warning-rgb: 199,122,0;
--danger-rgb: 194,58,49;
--light-rgb: 27,32,39;
--dark-rgb: 15,19,24;
/* Emphasis & subtle variants */
--primary-text-emphasis: #c7ccff;
--secondary-text-emphasis: #cfd6de;
--success-text-emphasis: #bde8c9;
--info-text-emphasis: #bcd6ee;
--warning-text-emphasis: #ffd9a6;
--danger-text-emphasis: #ffb7b2;
--light-text-emphasis: #d2d8df;
--dark-text-emphasis: #d2d8df;
--primary-bg-subtle: #0b1030;
--secondary-bg-subtle: #1e2430;
--success-bg-subtle: #0f2a1b;
--info-bg-subtle: #0d2232;
--warning-bg-subtle: #2a1e06;
--danger-bg-subtle: #2d1110;
--light-bg-subtle: #12161d;
--dark-bg-subtle: #1e2430;
--primary-border-subtle: #2b3a7a;
--secondary-border-subtle: #2b323b;
--success-border-subtle: #2b5b40;
--info-border-subtle: #254861;
--warning-border-subtle: #5a3c0e;
--danger-border-subtle: #5c2723;
--light-border-subtle: #222831;
--dark-border-subtle: #2b323b;
/* Typography & layout */
--body-font-family: var(--optain-cassiopeia-font-family-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
--body-font-size: 1rem;
--body-font-weight: 400;
--body-line-height: 1.5;
--body-color: #e6ebf1;
--body-color-rgb: 230, 235, 241;
--body-bg: #0e1318;
--body-bg-rgb: 14, 19, 24;
--emphasis-color: #fff;
--emphasis-color-rgb: 255, 255, 255;
--secondary-color: #e6ebf1bf;
--secondary-color-rgb: 230, 235, 241;
--secondary-bg: #151b22;
--secondary-bg-rgb: 21, 27, 34;
--tertiary-color: #e6ebf180;
--tertiary-color-rgb: 230, 235, 241;
--tertiary-bg: #10151b;
--tertiary-bg-rgb: 16, 21, 27;
--heading-color: #f1f5f9;
--link-color: #8ab4f8;
--link-color-rgb: 138, 180, 248;
--link-decoration: underline;
--link-hover-color: #c3d6ff;
--link-hover-color-rgb: 195, 214, 255;
--code-color: #ff7abd;
--highlight-color: #111;
--highlight-bg: #ffe28a1a;
--border-width: 1px;
--border-style: solid;
--border-color: #2b323b;
--border-color-translucent: #ffffff26;
--border-radius: .25rem;
--border-radius-sm: .2rem;
--border-radius-lg: .3rem;
--border-radius-xl: .3rem;
--border-radius-xxl: 2rem;
--border-radius-2xl: var(--border-radius-xxl);
--border-radius-pill: 50rem;
--box-shadow: 0 .5rem 1rem #00000066;
--box-shadow-sm: 0 .125rem .25rem #00000040;
--box-shadow-lg: 0 1rem 3rem #00000080;
--box-shadow-inset: inset 0 1px 2px #00000040;
--focus-ring-width: .25rem;
--focus-ring-opacity: .6;
--focus-ring-color: #5472ff66;
--form-valid-color: #78d694;
--form-valid-border-color: #78d694;
--form-invalid-color: #ff8e86;
--form-invalid-border-color: #ff8e86;
}
/* Buttons — inherit brand hues; ensure strong contrast on dark bg */
[data-bs-theme='dark'] .btn-primary {
--btn-color: hsl(0, 0%, 100%);
--btn-bg: hsl(240, 98%, 17%);
--btn-border-color: hsl(240, 98%, 17%);
--btn-hover-color: hsl(0, 0%, 100%);
--btn-hover-bg: #010149;
--btn-hover-border-color: #010145;
--btn-focus-shadow-rgb: 84, 114, 255;
--btn-active-color: hsl(0, 0%, 100%);
--btn-active-bg: #010145;
--btn-active-border-color: #010141;
}
[data-bs-theme='dark'] .btn-secondary {
--btn-color: var(--nav-text-color);
--btn-bg: var(--nav-bg-color);
--btn-border-color: #3a4250;
--btn-hover-color: #fff;
--btn-hover-bg: #1b2a55;
--btn-hover-border-color: #162448;
--btn-focus-shadow-rgb: 84, 114, 255;
--btn-active-color: #fff;
--btn-active-bg: #162448;
--btn-active-border-color: #12203f;
}
/* Outline buttons on dark: keep readable borders */
[data-bs-theme='dark'] .btn-outline-light {
--btn-color: #e6ebf1;
--btn-border-color: #e6ebf1;
--btn-hover-color: #111;
--btn-hover-bg: #e6ebf1;
--btn-hover-border-color: #e6ebf1;
--btn-active-color: #111;
--btn-active-bg: #d7dce2;
--btn-active-border-color: #d7dce2;
--gradient: none;
}
/* Links as buttons */
[data-bs-theme='dark'] .btn-link {
--btn-font-weight: 400;
--btn-color: var(--link-color);
--btn-bg: transparent;
--btn-border-color: transparent;
--btn-hover-color: var(--link-hover-color);
--btn-hover-border-color: transparent;
--btn-active-color: var(--link-hover-color);
--btn-active-border-color: transparent;
--btn-disabled-color: #6d7781;
--btn-disabled-border-color: transparent;
--btn-box-shadow: none;
--btn-focus-shadow-rgb: 84, 114, 255;
text-decoration: underline;
}
/* -----------------------------------------------
* OPTIONAL: small fix for .btn-secondary in light
* (uses var() so it picks up your nav colors)
* --------------------------------------------- */
[data-bs-theme='light'] .btn-secondary,
:root .btn-secondary {
--btn-color: var(--nav-text-color);
--btn-bg: var(--nav-bg-color);
}

View File

@@ -1,3 +1,4 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */
/*!
* @package Joomla.Site
* @subpackage Templates.moko-cassiopeia
@@ -12,6 +13,8 @@
*/
:root, [data-bs-theme="light"] {
color-scheme: light;
--color-primary: #112855;
--color-link: #224FAA;
--color-hover: #224FAA;
@@ -21,62 +24,62 @@
--header-background-repeat: repeat;
--header-background-size: auto;
--container-below-topbar-bg-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--container-below-topbar-bg-color: gray;
--container-below-topbar-bg-image: ;
--container-below-topbar-bg-color ;
--container-below-topbar-bg-position: auto;
--container-below-topbar-bg-attachment: fixed;
--container-below-topbar-bg-repeat: repeat;
--container-below-topbar-bg-size: auto;
--container-below-topbar-border: 0px solid black;
--container-below-topbar-border-radius: 5px;
--container-below-topbar-border: ;
--container-below-topbar-border-radius: ;
--container-top-a-bg-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--container-top-a-bg-color: gray;
--container-top-a-bg-image: ;
--container-top-a-bg-color: ;
--container-top-a-bg-position: auto;
--container-top-a-bg-attachment: fixed;
--container-top-a-bg-repeat: repeat;
--container-top-a-bg-size: auto;
--container-top-a-border: 1px solid black;
--container-top-a-border-radius: 5px;
--container-top-a-border: ;
--container-top-a-border-radius: ;
--container-top-b-bg-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--container-top-b-bg-color: gray;
--container-top-b-bg-image: ;
--container-top-b-bg-color: ;
--container-top-b-bg-position: auto;
--container-top-b-bg-attachment: fixed;
--container-top-b-bg-repeat: repeat;
--container-top-b-bg-size: auto;
--container-top-b-border: 1px solid black;
--container-top-b-border-radius: 5px;
--container-top-b-border: ;
--container-top-b-border-radius: ;
--container-toc-bg: white;
--container-toc-color: var(--color-primary);
--container-sidebar-bg-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--container-sidebar-bg-color: gray;
--container-sidebar-bg-image: ;
--container-sidebar-bg-color: ;
--container-sidebar-bg-position: auto;
--container-sidebar-bg-attachment: scroll;
--container-sidebar-bg-repeat: repeat;
--container-sidebar-bg-size: auto;
--container-sidebar-border: 1px solid black;
--container-sidebar-border-radius: 5px;
--container-sidebar-border: ;
--container-sidebar-border-radius: ;
--container-bottom-a-bg-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--container-bottom-a-bg-color: gray;
--container-bottom-a-bg-image: ;
--container-bottom-a-bg-color: ;
--container-bottom-a-bg-position: auto;
--container-bottom-a-bg-attachment: fixed;
--container-bottom-a-bg-repeat: repeat;
--container-bottom-a-bg-size: auto;
--container-bottom-a-border: 1px solid black;
--container-bottom-a-border: ;
--container-bottom-a-border-radius: 5px;
--container-bottom-b-bg-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--container-bottom-b-bg-color: gray;
--container-bottom-b-bg-image: ;
--container-bottom-b-bg-color: ;
--container-bottom-b-bg-position: auto;
--container-bottom-b-bg-attachment: fixed;
--container-bottom-b-bg-repeat: repeat;
--container-bottom-b-bg-size: auto;
--container-bottom-b-border: 1px solid black;
--container-bottom-b-border-radius: 5px;
--container-bottom-b-border: ;
--container-bottom-b-border-radius: ;
--nav-text-color: white;
--nav-bg-color: #224FAA;
@@ -489,3 +492,293 @@
--btn-focus-shadow-rgb: 39, 39, 111;
text-decoration: underline;
}
/* -----------------------------------------------
* DARK THEME — append below your light block
* --------------------------------------------- */
:root[data-bs-theme='dark'], [data-bs-theme='dark'] {
/* System hint for native widgets */
color-scheme: dark;
/* Brand & links */
--color-primary: #112855;
--color-link: #224FAA;
--color-hover: #224FAA;
/* Header background (kept same image; works over dark bg) */
--header-background-image: url('../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
/* Section containers */
--container-below-topbar-bg-image: ;
--container-below-topbar-bg-color: #0f141b;
--container-below-topbar-bg-position: center;
--container-below-topbar-bg-attachment: fixed;
--container-below-topbar-bg-repeat: no-repeat;
--container-below-topbar-bg-size: cover;
--container-below-topbar-border: 1px solid #2b323b;
--container-below-topbar-border-radius: 8px;
--container-top-a-bg-image: ;
--container-top-a-bg-color: #0e1319;
--container-top-a-bg-position: center;
--container-top-a-bg-attachment: fixed;
--container-top-a-bg-repeat: no-repeat;
--container-top-a-bg-size: cover;
--container-top-a-border: 1px solid #2b323b;
--container-top-a-border-radius: 8px;
--container-top-b-bg-image: ;
--container-top-b-bg-color: #0e1319;
--container-top-b-bg-position: center;
--container-top-b-bg-attachment: fixed;
--container-top-b-bg-repeat: no-repeat;
--container-top-b-bg-size: cover;
--container-top-b-border: 1px solid #2b323b;
--container-top-b-border-radius: 8px;
--container-toc-bg: #0f141b;
--container-toc-color: #dbe3ff;
--container-sidebar-bg-image: ;
--container-sidebar-bg-color: #0c1016;
--container-sidebar-bg-position: center;
--container-sidebar-bg-attachment: scroll;
--container-sidebar-bg-repeat: repeat;
--container-sidebar-bg-size: auto;
--container-sidebar-border: 1px solid #28303a;
--container-sidebar-border-radius: 8px;
--container-bottom-a-bg-image: ;
--container-bottom-a-bg-color: #0e141b;
--container-bottom-a-bg-position: center;
--container-bottom-a-bg-attachment: fixed;
--container-bottom-a-bg-repeat: no-repeat;
--container-bottom-a-bg-size: cover;
--container-bottom-a-border: 1px solid #2b323b;
--container-bottom-a-border-radius: 5px;
--container-bottom-b-bg-image: ;
--container-bottom-b-bg-color: #0e141b;
--container-bottom-b-bg-position: center;
--container-bottom-b-bg-attachment: fixed;
--container-bottom-b-bg-repeat: no-repeat;
--container-bottom-b-bg-size: cover;
--container-bottom-b-border: 1px solid #2b323b;
--container-bottom-b-border-radius: 8px;
/* Nav & accents */
--nav-text-color: #fff;
--nav-bg-color: #0e1a3c;
--accent-color-primary: #3f8ff0;
--accent-color-secondary: #6fb3ff;
--border: 5px;
--mainmenu-nav-link-color: #fff;
/* Palette */
--blue: #91a4ff;
--black: #000;
--indigo: #b19cff;
--purple: #c0a5ff;
--pink: #ff8fc0;
--red: #ff7a73;
--orange: #ff9c4d;
--yellow: #ffd166;
--green: #78d694;
--teal: #76e3ff;
--cyan: #6fb7ff;
--white: #fff;
/* Grays tuned for dark */
--gray-100: #161a20;
--gray-200: #1b2027;
--gray-300: #222831;
--gray-400: #2b323b;
--gray-500: #36404a;
--gray-600: #48525d;
--gray-700: #5b6672;
--gray-800: #cfd6de;
--gray-900: #e6ebf1;
/* Contextuals (keep brand hues) */
--primary: #010156;
--secondary: #48525d;
--success: #4aa664;
--info: #4f7aa0;
--warning: #c77a00;
--danger: #c23a31;
--light: #1b2027;
--dark: #0f1318;
/* RGB helpers */
--primary-rgb: 1,1,86;
--secondary-rgb: 72,82,93;
--success-rgb: 74,166,100;
--info-rgb: 79,122,160;
--warning-rgb: 199,122,0;
--danger-rgb: 194,58,49;
--light-rgb: 27,32,39;
--dark-rgb: 15,19,24;
/* Emphasis & subtle variants */
--primary-text-emphasis: #c7ccff;
--secondary-text-emphasis: #cfd6de;
--success-text-emphasis: #bde8c9;
--info-text-emphasis: #bcd6ee;
--warning-text-emphasis: #ffd9a6;
--danger-text-emphasis: #ffb7b2;
--light-text-emphasis: #d2d8df;
--dark-text-emphasis: #d2d8df;
--primary-bg-subtle: #0b1030;
--secondary-bg-subtle: #1e2430;
--success-bg-subtle: #0f2a1b;
--info-bg-subtle: #0d2232;
--warning-bg-subtle: #2a1e06;
--danger-bg-subtle: #2d1110;
--light-bg-subtle: #12161d;
--dark-bg-subtle: #1e2430;
--primary-border-subtle: #2b3a7a;
--secondary-border-subtle: #2b323b;
--success-border-subtle: #2b5b40;
--info-border-subtle: #254861;
--warning-border-subtle: #5a3c0e;
--danger-border-subtle: #5c2723;
--light-border-subtle: #222831;
--dark-border-subtle: #2b323b;
/* Typography & layout */
--body-font-family: var(--optain-cassiopeia-font-family-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
--body-font-size: 1rem;
--body-font-weight: 400;
--body-line-height: 1.5;
--body-color: #e6ebf1;
--body-color-rgb: 230, 235, 241;
--body-bg: #0e1318;
--body-bg-rgb: 14, 19, 24;
--emphasis-color: #fff;
--emphasis-color-rgb: 255, 255, 255;
--secondary-color: #e6ebf1bf;
--secondary-color-rgb: 230, 235, 241;
--secondary-bg: #151b22;
--secondary-bg-rgb: 21, 27, 34;
--tertiary-color: #e6ebf180;
--tertiary-color-rgb: 230, 235, 241;
--tertiary-bg: #10151b;
--tertiary-bg-rgb: 16, 21, 27;
--heading-color: #f1f5f9;
--link-color: #8ab4f8;
--link-color-rgb: 138, 180, 248;
--link-decoration: underline;
--link-hover-color: #c3d6ff;
--link-hover-color-rgb: 195, 214, 255;
--code-color: #ff7abd;
--highlight-color: #111;
--highlight-bg: #ffe28a1a;
--border-width: 1px;
--border-style: solid;
--border-color: #2b323b;
--border-color-translucent: #ffffff26;
--border-radius: .25rem;
--border-radius-sm: .2rem;
--border-radius-lg: .3rem;
--border-radius-xl: .3rem;
--border-radius-xxl: 2rem;
--border-radius-2xl: var(--border-radius-xxl);
--border-radius-pill: 50rem;
--box-shadow: 0 .5rem 1rem #00000066;
--box-shadow-sm: 0 .125rem .25rem #00000040;
--box-shadow-lg: 0 1rem 3rem #00000080;
--box-shadow-inset: inset 0 1px 2px #00000040;
--focus-ring-width: .25rem;
--focus-ring-opacity: .6;
--focus-ring-color: #5472ff66;
--form-valid-color: #78d694;
--form-valid-border-color: #78d694;
--form-invalid-color: #ff8e86;
--form-invalid-border-color: #ff8e86;
}
/* Buttons — inherit brand hues; ensure strong contrast on dark bg */
[data-bs-theme='dark'] .btn-primary {
--btn-color: hsl(0, 0%, 100%);
--btn-bg: hsl(240, 98%, 17%);
--btn-border-color: hsl(240, 98%, 17%);
--btn-hover-color: hsl(0, 0%, 100%);
--btn-hover-bg: #010149;
--btn-hover-border-color: #010145;
--btn-focus-shadow-rgb: 84, 114, 255;
--btn-active-color: hsl(0, 0%, 100%);
--btn-active-bg: #010145;
--btn-active-border-color: #010141;
}
[data-bs-theme='dark'] .btn-secondary {
--btn-color: var(--nav-text-color);
--btn-bg: var(--nav-bg-color);
--btn-border-color: #3a4250;
--btn-hover-color: #fff;
--btn-hover-bg: #1b2a55;
--btn-hover-border-color: #162448;
--btn-focus-shadow-rgb: 84, 114, 255;
--btn-active-color: #fff;
--btn-active-bg: #162448;
--btn-active-border-color: #12203f;
}
/* Outline buttons on dark: keep readable borders */
[data-bs-theme='dark'] .btn-outline-light {
--btn-color: #e6ebf1;
--btn-border-color: #e6ebf1;
--btn-hover-color: #111;
--btn-hover-bg: #e6ebf1;
--btn-hover-border-color: #e6ebf1;
--btn-active-color: #111;
--btn-active-bg: #d7dce2;
--btn-active-border-color: #d7dce2;
--gradient: none;
}
/* Links as buttons */
[data-bs-theme='dark'] .btn-link {
--btn-font-weight: 400;
--btn-color: var(--link-color);
--btn-bg: transparent;
--btn-border-color: transparent;
--btn-hover-color: var(--link-hover-color);
--btn-hover-border-color: transparent;
--btn-active-color: var(--link-hover-color);
--btn-active-border-color: transparent;
--btn-disabled-color: #6d7781;
--btn-disabled-border-color: transparent;
--btn-box-shadow: none;
--btn-focus-shadow-rgb: 84, 114, 255;
text-decoration: underline;
}
/* -----------------------------------------------
* OPTIONAL: small fix for .btn-secondary in light
* (uses var() so it picks up your nav colors)
* --------------------------------------------- */
[data-bs-theme='light'] .btn-secondary,
:root .btn-secondary {
--btn-color: var(--nav-text-color);
--btn-bg: var(--nav-bg-color);
}

View File

@@ -1,3 +1,4 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller — | Moko Consulting|https://mokoconsulting.tech */
@charset "UTF-8";
/*!
* @package Joomla.Site
@@ -14255,6 +14256,12 @@ th dd {
.com-contact__thumbnail {
text-align: left;
margin: 2em;
padding:1rem;
}
[data-bs-theme='dark'] .com-contact__thumbnail {
background-color: var(--nav-text-color);
}
@media (min-width: 1200px) {
@@ -14289,9 +14296,8 @@ th dd {
}
.com-contact__container .com-contact__thumbnail {
grid-column: 3/5;
grid-column: 1/5;
grid-row: 2/5;
margin-bottom: 1em;
text-align: right;
}
@@ -15403,7 +15409,7 @@ iframe {
}
.boxed .blog-item {
background-color: hsl(0, 0%, 100%);
background-color: var(--bs-body-bg);
}
.boxed .blog-item figure.item-image {
@@ -15944,7 +15950,7 @@ body.wrapper-fluid header>.grid-child {
}
footer .grid-child>div {
padding: 0 4em;
padding: 1rem 4em;
}
header .grid-child .navbar-brand {
@@ -17301,3 +17307,4 @@ form .form-select {
border-radius: var(--container-bottom-b-border-radius);
border: var(--container-bottom-b-border);
}

View File

@@ -0,0 +1,4 @@
/*!
* Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
* Copyright 2015 Aidan Feldman
* Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */nav[data-toggle=toc] .nav>li>a{display:block;padding:4px 20px;font-size:13px;font-weight:500;color:#767676}nav[data-toggle=toc] .nav>li>a:focus,nav[data-toggle=toc] .nav>li>a:hover{padding-left:19px;color:#563d7c;text-decoration:none;background-color:transparent;border-left:1px solid #563d7c}nav[data-toggle=toc] .nav-link.active,nav[data-toggle=toc] .nav-link.active:focus,nav[data-toggle=toc] .nav-link.active:hover{padding-left:18px;font-weight:700;color:#563d7c;background-color:transparent;border-left:2px solid #563d7c}nav[data-toggle=toc] .nav-link+ul{display:none;padding-bottom:10px}nav[data-toggle=toc] .nav .nav>li>a{padding-top:1px;padding-bottom:1px;padding-left:30px;font-size:12px;font-weight:400}nav[data-toggle=toc] .nav .nav>li>a:focus,nav[data-toggle=toc] .nav .nav>li>a:hover{padding-left:29px}nav[data-toggle=toc] .nav .nav>li>.active,nav[data-toggle=toc] .nav .nav>li>.active:focus,nav[data-toggle=toc] .nav .nav>li>.active:hover{padding-left:28px;font-weight:500}nav[data-toggle=toc] .nav-link.active+ul{display:block}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 979 B

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,2 @@
<!-- MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech -->

View File

@@ -0,0 +1,2 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */

View File

@@ -1,3 +1,4 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */
(function () {
'use strict';
@@ -27,3 +28,4 @@
});
})();

View File

@@ -1,3 +1,4 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */
/**
* @package Joomla.Site
* @subpackage Templates.Moko-Cassiopeia
@@ -23,3 +24,4 @@ document.addEventListener('DOMContentLoaded', () => {
});
});
});

View File

@@ -1,3 +1,4 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */
/**
* @package Joomla.Site
* @subpackage Templates.Moko-Cassiopeia
@@ -72,3 +73,4 @@ Joomla = window.Joomla || {};
document.addEventListener('joomla:updated', initTemplate);
})(Joomla, document);

View File

@@ -1,3 +1,4 @@
/* MOKO-COPYRIGHT: © 2025-08-10 Jonathan Miller || Moko Consulting — https://mokoconsulting.tech */
/*!
* Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
* Copyright 2015 Aidan Feldman

View File

@@ -245,7 +245,8 @@ $label = 'cta_hero';
## Changelog
- 1.0.0: Initial public release with FA6, BS5, TOC, GTM/GA hooks.
- 1.15: Added CSS theme seletor (dark/light)
- 1.00: Initial public release with FA6, BS5, TOC, GTM/GA hooks.
## License

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.Moko-Cassiopeia
@@ -86,3 +87,4 @@ $wa->getAsset('style', 'fontawesome')->setAttribute('rel', 'lazy-stylesheet');
<jdoc:include type="component" />
</body>
</html>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.moko-cassiopeia

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.moko-cassiopeia
@@ -228,3 +229,4 @@ $wa->getAsset('style', 'fontawesome')->setAttribute('rel', 'lazy-stylesheet');
<jdoc:include type="modules" name="debug" style="none" />
</body>
</html>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_contact
@@ -158,8 +159,6 @@ $htag = $tparams->get('show_page_heading') ? 'h2' : 'h1';
</div>
<div class="col-md-6">
<?php if ($tparams->get('show_email_form') && ($this->item->email_to || $this->item->user_id)) : ?>
<?php echo '<h3>' . Text::_('COM_CONTACT_EMAIL_FORM') . '</h3>'; ?>
<?php echo $this->loadTemplate('form'); ?>
<?php endif; ?>
</div>

View File

@@ -0,0 +1,177 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_contact
*
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Helper\ContentHelper;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\Component\Contact\Site\Helper\RouteHelper;
$tparams = $this->item->params;
$canDo = ContentHelper::getActions('com_contact', 'category', $this->item->catid);
$canEdit = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by === Factory::getUser()->id);
$htag = $tparams->get('show_page_heading') ? 'h2' : 'h1';
?>
<div class="com-contact contact" itemscope itemtype="https://schema.org/Person">
<?php if ($canEdit) : ?>
<div class="icons">
<div class="text-end">
<div>
<?php echo HTMLHelper::_('contacticon.edit', $this->item, $tparams); ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if ($tparams->get('show_page_heading')) : ?>
<h1>
<?php echo $this->escape($tparams->get('page_heading')); ?>
</h1>
<?php endif; ?>
<?php if ($this->item->name && $tparams->get('show_name')) : ?>
<div class="page-header">
<<?php echo $htag; ?>>
<?php if ($this->item->published == 0) : ?>
<span class="badge bg-warning text-light"><?php echo Text::_('JUNPUBLISHED'); ?></span>
<?php endif; ?>
<span class="contact-name" itemprop="name"><?php echo $this->item->name; ?></span>
</<?php echo $htag; ?>>
</div>
<?php endif; ?>
<div class="row gy-4 mb-4">
<div class="col-md-6">
<?php $show_contact_category = $tparams->get('show_contact_category'); ?>
<?php if ($show_contact_category === 'show_no_link') : ?>
<h3>
<span class="contact-category"><?php echo $this->item->category_title; ?></span>
</h3>
<?php elseif ($show_contact_category === 'show_with_link') : ?>
<?php $contactLink = RouteHelper::getCategoryRoute($this->item->catid, $this->item->language); ?>
<h3>
<span class="contact-category"><a href="<?php echo $contactLink; ?>">
<?php echo $this->escape($this->item->category_title); ?></a>
</span>
</h3>
<?php endif; ?>
<?php echo $this->item->event->afterDisplayTitle; ?>
<?php if ($tparams->get('show_contact_list') && count($this->contacts) > 1) : ?>
<form action="#" method="get" name="selectForm" id="selectForm">
<label for="select_contact"><?php echo Text::_('COM_CONTACT_SELECT_CONTACT'); ?></label>
<?php echo HTMLHelper::_(
'select.genericlist',
$this->contacts,
'select_contact',
'class="form-select" onchange="document.location.href = this.value"',
'link',
'name',
$this->item->link
);
?>
</form>
<?php endif; ?>
<?php if ($tparams->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?>
<div class="com-contact__tags">
<?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?>
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
</div>
<?php endif; ?>
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php if ($this->params->get('show_info', 1)) : ?>
<div class="com-contact__container">
<?php echo '<h3>' . Text::_('COM_CONTACT_DETAILS') . '</h3>'; ?>
<?php if ($this->item->image && $tparams->get('show_image')) : ?>
<div class="com-contact__thumbnail thumbnail">
<?php echo LayoutHelper::render(
'joomla.html.image',
[
'src' => $this->item->image,
'alt' => $this->item->name,
'itemprop' => 'image',
]
); ?>
</div>
<?php endif; ?>
<?php if ($this->item->con_position && $tparams->get('show_position')) : ?>
<dl class="com-contact__position contact-position dl-horizontal">
<dt><?php echo Text::_('COM_CONTACT_POSITION'); ?>:</dt>
<dd itemprop="jobTitle">
<?php echo $this->item->con_position; ?>
</dd>
</dl>
<?php endif; ?>
<div class="com-contact__info">
<?php echo $this->loadTemplate('address'); ?>
<?php if ($tparams->get('allow_vcard')) : ?>
<?php echo Text::_('COM_CONTACT_DOWNLOAD_INFORMATION_AS'); ?>
<a href="<?php echo Route::_('index.php?option=com_contact&view=contact&catid=' . $this->item->catslug . '&id=' . $this->item->slug . '&format=vcf'); ?>">
<?php echo Text::_('COM_CONTACT_VCARD'); ?></a>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php if ($tparams->get('show_links')) : ?>
<?php echo $this->loadTemplate('links'); ?>
<?php endif; ?>
<?php if ($tparams->get('show_articles') && $this->item->user_id && $this->item->articles) : ?>
<?php echo '<h3>' . Text::_('JGLOBAL_ARTICLES') . '</h3>'; ?>
<?php echo $this->loadTemplate('articles'); ?>
<?php endif; ?>
<?php if ($tparams->get('show_profile') && $this->item->user_id && PluginHelper::isEnabled('user', 'profile')) : ?>
<?php echo '<h3>' . Text::_('COM_CONTACT_PROFILE') . '</h3>'; ?>
<?php echo $this->loadTemplate('profile'); ?>
<?php endif; ?>
<?php if ($tparams->get('show_user_custom_fields') && $this->contactUser) : ?>
<?php echo $this->loadTemplate('user_custom_fields'); ?>
<?php endif; ?>
</div>
<div class="col-md-6">
<?php if ($tparams->get('show_email_form') && ($this->item->email_to || $this->item->user_id)) : ?>
<?php echo $this->loadTemplate('form'); ?>
<?php endif; ?>
</div>
</div>
<?php if ($this->item->misc && $tparams->get('show_misc')) : ?>
<?php echo '<h3>' . Text::_('COM_CONTACT_OTHER_INFORMATION') . '</h3>'; ?>
<div class="com-contact__miscinfo contact-miscinfo">
<div class="contact-misc">
<?php echo $this->item->misc; ?>
</div>
</div>
<?php endif; ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.moko-cassiopeia
@@ -154,3 +155,4 @@ $isExpired = !is_null($this->item->publish_down) && $this->item->publish
<?php // Content is generated by content plugin event "onContentAfterDisplay" ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.moko-cassiopeia
@@ -156,3 +157,4 @@ $isExpired = !is_null($this->item->publish_down) && $this->item->publish
<?php // Content is generated by content plugin event "onContentAfterDisplay" ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -29,3 +30,4 @@ $wa->usePreset('com_categories.shared-categories-accordion');
echo $this->loadTemplate('items');
?>
</div>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -73,3 +74,4 @@ if ($this->maxLevelcat != 0 && count($this->items[$this->parent->id]) > 0) :
<?php endforeach; ?>
</div>
<?php endif; ?>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -139,3 +140,4 @@ $htag = $this->params->get('show_page_heading') ? 'h2' : 'h1';
</div>
<?php endif; ?>
</div>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -82,3 +83,4 @@ if ($this->maxLevel != 0 && count($this->children[$this->category->id]) > 0) : ?
<?php endforeach; ?>
<?php endif;

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -98,3 +99,4 @@ $isUnpublished = ($this->item->state == ContentComponent::CONDITION_UNPUBLISHED
</div>
</section>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -23,3 +24,4 @@ use Joomla\Component\Content\Site\Helper\RouteHelper;
</li>
<?php endforeach; ?>
</ol>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -21,3 +22,4 @@ echo LayoutHelper::render('joomla.content.category_default', $this);
?>
</div>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -345,3 +346,4 @@ $currentDate = Factory::getDate()->format('Y-m-d H:i:s');
<input type="hidden" name="task" value="">
</div>
</form>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -81,3 +82,4 @@ $groups = $user->getAuthorisedViewLevels();
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -71,3 +72,4 @@ defined('_JEXEC') or die;
<?php endif; ?>
</div>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -117,3 +118,4 @@ $isUnpublished = $this->item->state == ContentComponent::CONDITION_UNPUBLISH
<?php // Content is generated by content plugin event "onContentAfterDisplay" ?>
<?php echo $this->item->event->afterDisplayContent; ?>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_content
@@ -22,3 +23,4 @@ use Joomla\Component\Content\Site\Helper\RouteHelper;
</li>
<?php endforeach; ?>
</ol>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package AkeebaEngage
* @copyright Copyright (c)2020-2025 Nicholas K. Dionysopoulos / Akeeba Ltd

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package AkeebaEngage
* @copyright Copyright (c)2020-2025 Nicholas K. Dionysopoulos / Akeeba Ltd

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package AkeebaEngage
* @copyright Copyright (c)2020-2025 Nicholas K. Dionysopoulos / Akeeba Ltd
@@ -282,3 +283,4 @@ $bsCommentStateClass = ($comment->enabled == 1) ? 'secondary' : (($comment->ena
</li>
<?php endif; ?>
<?php endfor; ?>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package AkeebaEngage
* @copyright Copyright (c)2020-2025 Nicholas K. Dionysopoulos / Akeeba Ltd

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -191,3 +192,4 @@ for ($i = 0 , $n = count($items) ; $i < $n ; $i++)
</div>
<?php
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -31,3 +32,4 @@ $message = "alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIS
<span class="icon-checkbox-partial" aria-hidden="true"></span>
<?php echo $title; ?>
</button>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -20,3 +21,4 @@ defined('_JEXEC') or die;
<span class="icon-checkbox-partial" aria-hidden="true"></span>
<?php echo $title; ?>
</button>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -52,3 +53,4 @@ for ($i = 0 , $n = count($items) ; $i < $n ; $i++)
</div>
<?php
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -227,3 +228,4 @@ for ($i = 0 , $n = count($items) ; $i < $n ; $i++)
</div>
<?php
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -23,3 +24,4 @@ foreach ($rowMembers as $rowMember)
}
echo implode("\r\n", $names);

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -32,3 +33,4 @@ defined('_JEXEC') or die;
document.payment_form.submit();
</script>
</form>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -125,3 +126,4 @@ $symbol = $item->currency_symbol ?: $item->currency;
}
?>
</table>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -66,3 +67,4 @@ else
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -229,3 +230,4 @@ if ($i % $numberColumns != 0)
{
echo '</div>' ;
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -257,3 +258,4 @@ if ($i % $numberColumns != 0)
{
echo '</div>' ;
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -125,3 +126,4 @@ use Joomla\CMS\Language\Text;
<div class="form-actions">
<input type="submit" class="<?php echo $this->bootstrapHelper->getClassMapping('btn btn-primary'); ?>" value="<?php echo Text::_('OSM_PROCESS_RENEW'); ?>"/>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -27,3 +28,4 @@ if (isset($introText))
<?php echo $msg; ?>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -172,3 +173,4 @@ $hiddenPhoneClass = $bootstrapHelper->getClassMapping('hidden-phone');
?>
</table>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -44,3 +45,4 @@ use Joomla\CMS\Language\Text;
}
?>
</ul>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -137,3 +138,4 @@ OSMembershipHelperHtml::addJSStrings($keys);
<input type="hidden" id="recurring" name="recurring" value="<?php echo (int) $this->item->recurring_subscription;?>" />
</form>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -169,3 +170,4 @@ if ($this->item->id && !$this->item->recurring_subscription)
<textarea name="conversion_tracking_code" class="form-control input-large" rows="10"><?php echo $this->item->conversion_tracking_code;?></textarea>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -162,3 +163,4 @@ if ((int)$this->item->expired_date)
<?php echo $editor->display('description', $this->item->description, '100%', '250', '75', '10') ; ?>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -41,3 +42,4 @@ $controlsClass = $bootstrapHelper->getClassMapping('controls');
<?php echo $this->lists['number_members_field']; ?>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -42,3 +43,4 @@ $controlsClass = $bootstrapHelper->getClassMapping('controls');
<?php echo $editor->display('card_layout', $this->item->card_layout, '100%', '550', '75', '8') ;?>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -77,3 +78,4 @@ $controlsClass = $bootstrapHelper->getClassMapping('controls');
}
?>
</fieldset>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -71,3 +72,4 @@ $controlsClass = $bootstrapHelper->getClassMapping('controls');
<?php echo $editor->display('third_reminder_email_body', $this->item->third_reminder_email_body, '100%', '250', '75', '8'); ?>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -58,3 +59,4 @@ $controlsClass = $bootstrapHelper->getClassMapping('controls');
}
?>
</fieldset>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -30,3 +31,4 @@ foreach ($form->getFieldset() as $field)
{
echo $field->input;
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -30,3 +31,4 @@ foreach ($form->getFieldset() as $field)
{
echo $field->input;
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -219,3 +220,4 @@ foreach ($this->languages as $language)
}
echo HTMLHelper::_('bootstrap.endTabSet');

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -37,3 +38,4 @@ foreach ($form->getFieldset() as $field)
{
echo $field->input;
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -35,3 +36,4 @@ $pullLeftClass = $this->bootstrapHelper->getClassMapping('pull-left');
echo $this->pagination->getLimitBox();
?>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -34,3 +35,4 @@ $pullLeftClass = $this->bootstrapHelper->getClassMapping('pull-left');
echo $this->pagination->getLimitBox();
?>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro
@@ -41,3 +42,4 @@ use Joomla\CMS\Router\Route;
}
?>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Joomla
* @subpackage Membership Pro

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.Moko-Cassiopeia
@@ -57,3 +58,4 @@ $header = '<' . $headerTag . ' ' . ArrayHelper::toString($headerAttribs) . '>' .
<?php echo $module->content; ?>
</div>
</<?php echo $moduleTag; ?>>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage Layout
@@ -84,3 +85,4 @@ $header = '<' . $headerTag . ' ' . ArrayHelper::toString($headerAttribs) . '>' .
<?php endif; ?>
<?php echo $module->content; ?>
</<?php echo $moduleTag; ?>>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.Moko-Cassiopeia
@@ -51,3 +52,4 @@ $header = '<' . $headerTag . ' ' . ArrayHelper::toString($headerAttribs) . '>' .
<?php endif; ?>
<?php echo $module->content; ?>
</<?php echo $moduleTag; ?>>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_custom
@@ -30,3 +31,4 @@ if ($params->get('backgroundimage')) {
<?php echo $module->content; ?>
</div>
</div>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_custom
@@ -30,3 +31,4 @@ if ($params->get('backgroundimage')) {
<?php echo $module->content; ?>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<?php
/**
* @package Tabaoca.Component.Gabble.Site
* @subpackage mod_gabble
@@ -156,3 +157,4 @@ $document->addScript('media/com_gabble/js/gabble_com.js');
</div>
<p style="text-align:right;" ><?php echo Text::_('COM_GABBLE_POWERED');?> <a href="https://tabaoca.org">Tabaoca</a></p>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
@@ -24,3 +25,4 @@ HTMLHelper::_('bootstrap.collapse');
<?php require __DIR__ . '/dropdown-metismenu.php'; ?>
</div>
</nav>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
@@ -106,3 +107,4 @@ $start = (int) $params->get('startLevel', 1);
endswitch;
}
?></ul>

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
@@ -75,3 +76,4 @@ echo HTMLHelper::link(OutputFilter::ampReplace(htmlspecialchars($item->flink, EN
if ($showAll && $item->deeper) {
echo '<button class="mm-collapsed mm-toggler mm-toggler-link" aria-haspopup="true" aria-expanded="false" aria-label="' . $item->title . '"></button>';
}

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
@@ -57,3 +58,4 @@ if ($showAll && $item->deeper) {
} else {
echo '<span ' . ArrayHelper::toString($attributes) . '>' . $linktype . '</span>';
}

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
@@ -57,3 +58,4 @@ if ($showAll && $item->deeper) {
} else {
echo '<span ' . ArrayHelper::toString($attributes) . '>' . $linktype . '</span>';
}

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
@@ -72,3 +73,4 @@ echo HTMLHelper::link(OutputFilter::ampReplace(htmlspecialchars($item->flink, EN
if ($showAll && $item->deeper) {
echo '<button class="mm-collapsed mm-toggler mm-toggler-link" aria-haspopup="true" aria-expanded="false" aria-label="' . $item->title . '"></button>';
}

View File

@@ -1,5 +1,6 @@
<?php
defined('_JEXEC') or die('Restricted access');
\Joomla\CMS\HTML\HTMLHelper::_('bootstrap.dropdown');

View File

@@ -1,5 +1,6 @@
<?php
/**
* @package Joomla.Site
* @subpackage Templates.vmbasic

View File

@@ -1,5 +1,6 @@
<?php
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Router\Route;

View File

@@ -1,5 +1,6 @@
<?php
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Factory;

View File

@@ -1,5 +1,6 @@
<?php
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Factory;

View File

@@ -1,5 +1,6 @@
<?php
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Router\Route;

Some files were not shown because too many files have changed in this diff Show More