v1.10
-fixed CSS of item image
This commit is contained in:
@@ -99,6 +99,11 @@ $isExpired = !is_null($this->item->publish_down) && $this->item->publish
|
||||
echo $this->item->toc;
|
||||
endif; ?>
|
||||
<div itemprop="articleBody" class="com-content-article__body">
|
||||
<?php
|
||||
if (strpos($this->pageclass_sfx, 'no-toc') === false) {
|
||||
echo '<nav id="toc" data-toggle="toc"></nav>';
|
||||
}
|
||||
?>
|
||||
<?php echo $this->item->text; ?>
|
||||
</div>
|
||||
|
||||
|
||||
145
templates/moko-cassiopeia/html/com_content/article/no-toc.php
Normal file
145
templates/moko-cassiopeia/html/com_content/article/no-toc.php
Normal file
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @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\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Associations;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\FileLayout;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\Component\Content\Administrator\Extension\ContentComponent;
|
||||
use Joomla\Component\Content\Site\Helper\RouteHelper;
|
||||
|
||||
// Create shortcuts to some parameters.
|
||||
$params = $this->item->params;
|
||||
$canEdit = $params->get('access-edit');
|
||||
$user = Factory::getUser();
|
||||
$info = $params->get('info_block_position', 0);
|
||||
$htag = $this->params->get('show_page_heading') ? 'h2' : 'h1';
|
||||
|
||||
// Check if associations are implemented. If they are, define the parameter.
|
||||
$assocParam = (Associations::isEnabled() && $params->get('show_associations'));
|
||||
$currentDate = Factory::getDate()->format('Y-m-d H:i:s');
|
||||
$isNotPublishedYet = $this->item->publish_up > $currentDate;
|
||||
$isExpired = !is_null($this->item->publish_down) && $this->item->publish_down < $currentDate;
|
||||
?>
|
||||
<div class="com-content-article item-page<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="https://schema.org/Article">
|
||||
<meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*') ? Factory::getApplication()->get('language') : $this->item->language; ?>">
|
||||
<?php if ($this->params->get('show_page_heading')) : ?>
|
||||
<div class="page-header">
|
||||
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
|
||||
</div>
|
||||
<?php endif;
|
||||
if (!empty($this->item->pagination) && !$this->item->paginationposition && $this->item->paginationrelative) {
|
||||
echo $this->item->pagination;
|
||||
}
|
||||
?>
|
||||
|
||||
<?php $useDefList = $params->get('show_modify_date') || $params->get('show_publish_date') || $params->get('show_create_date')
|
||||
|| $params->get('show_hits') || $params->get('show_category') || $params->get('show_parent_category') || $params->get('show_author') || $assocParam; ?>
|
||||
|
||||
<?php if ($params->get('show_title')) : ?>
|
||||
<div class="page-header">
|
||||
<<?php echo $htag; ?> itemprop="headline">
|
||||
<?php echo $this->escape($this->item->title); ?>
|
||||
</<?php echo $htag; ?>>
|
||||
<?php if ($this->item->state == ContentComponent::CONDITION_UNPUBLISHED) : ?>
|
||||
<span class="badge bg-warning text-light"><?php echo Text::_('JUNPUBLISHED'); ?></span>
|
||||
<?php endif; ?>
|
||||
<?php if ($isNotPublishedYet) : ?>
|
||||
<span class="badge bg-warning text-light"><?php echo Text::_('JNOTPUBLISHEDYET'); ?></span>
|
||||
<?php endif; ?>
|
||||
<?php if ($isExpired) : ?>
|
||||
<span class="badge bg-warning text-light"><?php echo Text::_('JEXPIRED'); ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($canEdit) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.icons', ['params' => $params, 'item' => $this->item]); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php // Content is generated by content plugin event "onContentAfterTitle" ?>
|
||||
<?php echo $this->item->event->afterDisplayTitle; ?>
|
||||
|
||||
<?php if ($useDefList && ($info == 0 || $info == 2)) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.info_block', ['item' => $this->item, 'params' => $params, 'position' => 'above']); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($info == 0 && $params->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?>
|
||||
<?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?>
|
||||
|
||||
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php // Content is generated by content plugin event "onContentBeforeDisplay" ?>
|
||||
<?php echo $this->item->event->beforeDisplayContent; ?>
|
||||
|
||||
<?php if ((int) $params->get('urls_position', 0) === 0) : ?>
|
||||
<?php echo $this->loadTemplate('links'); ?>
|
||||
<?php endif; ?>
|
||||
<?php if ($params->get('access-view')) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.full_image', $this->item); ?>
|
||||
<?php
|
||||
if (!empty($this->item->pagination) && !$this->item->paginationposition && !$this->item->paginationrelative) :
|
||||
echo $this->item->pagination;
|
||||
endif;
|
||||
?>
|
||||
<?php if (isset($this->item->toc)) :
|
||||
echo $this->item->toc;
|
||||
endif; ?>
|
||||
<div itemprop="articleBody" class="com-content-article__body">
|
||||
|
||||
<?php echo $this->item->text; ?>
|
||||
</div>
|
||||
|
||||
<?php if ($info == 1 || $info == 2) : ?>
|
||||
<?php if ($useDefList) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.info_block', ['item' => $this->item, 'params' => $params, 'position' => 'below']); ?>
|
||||
<?php endif; ?>
|
||||
<?php if ($params->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?>
|
||||
<?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?>
|
||||
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
if (!empty($this->item->pagination) && $this->item->paginationposition && !$this->item->paginationrelative) :
|
||||
echo $this->item->pagination;
|
||||
?>
|
||||
<?php endif; ?>
|
||||
<?php if ((int) $params->get('urls_position', 0) === 1) : ?>
|
||||
<?php echo $this->loadTemplate('links'); ?>
|
||||
<?php endif; ?>
|
||||
<?php // Optional teaser intro text for guests ?>
|
||||
<?php elseif ($params->get('show_noauth') == true && $user->get('guest')) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.intro_image', $this->item); ?>
|
||||
<?php echo HTMLHelper::_('content.prepare', $this->item->introtext); ?>
|
||||
<?php // Optional link to let them register to see the whole article. ?>
|
||||
<?php if ($params->get('show_readmore') && $this->item->fulltext != null) : ?>
|
||||
<?php $menu = Factory::getApplication()->getMenu(); ?>
|
||||
<?php $active = $menu->getActive(); ?>
|
||||
<?php $itemId = $active->id; ?>
|
||||
<?php $link = new Uri(Route::_('index.php?option=com_users&view=login&Itemid=' . $itemId, false)); ?>
|
||||
<?php $link->setVar('return', base64_encode(RouteHelper::getArticleRoute($this->item->slug, $this->item->catid, $this->item->language))); ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.readmore', ['item' => $this->item, 'params' => $params, 'link' => $link]); ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
if (!empty($this->item->pagination) && $this->item->paginationposition && $this->item->paginationrelative) :
|
||||
echo $this->item->pagination;
|
||||
?>
|
||||
<?php endif; ?>
|
||||
<?php // Content is generated by content plugin event "onContentAfterDisplay" ?>
|
||||
<?php echo $this->item->event->afterDisplayContent; ?>
|
||||
</div>
|
||||
32
templates/moko-cassiopeia/html/mod_custom/hero.php
Normal file
32
templates/moko-cassiopeia/html/mod_custom/hero.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage mod_custom
|
||||
*
|
||||
* @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @copyright (C) 2025 Jonathan Miler || Moko Consulting <https://mokoconsulting.tech>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
|
||||
$modId = 'mod-custom' . $module->id;
|
||||
|
||||
if ($params->get('backgroundimage')) {
|
||||
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||
$wa = $app->getDocument()->getWebAssetManager();
|
||||
$wa->addInlineStyle('
|
||||
#' . $modId . '{background-image: url("' . Uri::root(true) . '/' . HTMLHelper::_('cleanImageURL', $params->get('backgroundimage'))->url . '");}
|
||||
', ['name' => $modId]);
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="mod-custom custom hero-overlay" id="<?php echo $modId; ?>">
|
||||
<div class="overlay">
|
||||
<?php echo $module->content; ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -47,14 +47,14 @@ if ($params_GoogleTagManager && $params_GoogleTagManagerID) {
|
||||
}
|
||||
|
||||
// Browsers support SVG favicons
|
||||
$this->addHeadLink(HTMLHelper::_('image', '../media/templates/site/moko-cassiopeia/images/favicon/favicon.svg', '', [], true, 1), 'icon', 'rel', ['type' => 'image/svg+xml']);
|
||||
$this->addHeadLink(HTMLHelper::_('image', '../media/templates/site/moko-cassiopeia/images/favicon/favicon.ico', '', [], true, 1), 'alternate icon', 'rel', ['type' => 'image/vnd.microsoft.icon']);
|
||||
$this->addHeadLink(HTMLHelper::_('image', '../media/templates/site/moko-cassiopeia/images/favicon/favicon.svg', '', [], true, 1), 'mask-icon', 'rel', ['color' => '#fff']);
|
||||
$this->addHeadLink(HTMLHelper::_('image', '/media/templates/site/moko-cassiopeia/images/favicon/favicon.svg', '', [], true, 1), 'icon', 'rel', ['type' => 'image/svg+xml']);
|
||||
$this->addHeadLink(HTMLHelper::_('image', '/media/templates/site/moko-cassiopeia/images/favicon/favicon.ico', '', [], true, 1), 'alternate icon', 'rel', ['type' => 'image/vnd.microsoft.icon']);
|
||||
$this->addHeadLink(HTMLHelper::_('image', '/media/templates/site/moko-cassiopeia/images/favicon/favicon.svg', '', [], true, 1), 'mask-icon', 'rel', ['color' => '#fff']);
|
||||
?>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="../media/templates/site/moko-cassiopeia/images/favicon/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../media/templates/site/moko-cassiopeia/images/favicon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../media/templates/site/moko-cassiopeia/images/favicon/favicon-16x16.png">
|
||||
<link rel="manifest" href="../media/templates/site/moko-cassiopeia/images/favicon/site.webmanifest">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/media/templates/site/moko-cassiopeia/images/favicon/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/media/templates/site/moko-cassiopeia/images/favicon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/media/templates/site/moko-cassiopeia/images/favicon/favicon-16x16.png">
|
||||
<link rel="manifest" href="/media/templates/site/moko-cassiopeia/images/favicon/site.webmanifest">
|
||||
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||
@@ -156,15 +156,46 @@ if ($this->params->get('fA6KitCode')) {
|
||||
} else {
|
||||
$wa->getAsset('style', 'fontawesome')->setAttribute('rel', 'lazy-stylesheet');
|
||||
}
|
||||
// Add Bootstrap TOC CSS
|
||||
$this->addStyleSheet('https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.css');
|
||||
|
||||
// Add Bootstrap TOC JS (should be loaded after Bootstrap JS)
|
||||
$this->addScript('https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js');
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
|
||||
<head>
|
||||
<?php if (trim($params_custom_head_start)) : ?><?php echo $params_custom_head_start; ?><?php endif; ?>
|
||||
<jdoc:include type="head" />
|
||||
<script>
|
||||
window.addEventListener('DOMContentLoaded', function () {
|
||||
var ua = navigator.userAgent || navigator.vendor || window.opera;
|
||||
var isFacebookBrowser = ua.indexOf('FBAN') > -1 || ua.indexOf('FBAV') > -1;
|
||||
|
||||
if (isFacebookBrowser) {
|
||||
var warning = document.createElement('div');
|
||||
warning.textContent = '⚠️ KNOWN ISSUE: Images do not load in Facebook Web browser. Please open in external browser for full experience.';
|
||||
warning.style.position = 'fixed';
|
||||
warning.style.top = '0';
|
||||
warning.style.left = '0';
|
||||
warning.style.right = '0';
|
||||
warning.style.zIndex = '10000';
|
||||
warning.style.backgroundColor = '#007bff'; // Blue background
|
||||
warning.style.color = '#fff';
|
||||
warning.style.padding = '15px';
|
||||
warning.style.textAlign = 'center';
|
||||
warning.style.fontWeight = 'bold';
|
||||
warning.style.fontSize = '16px';
|
||||
warning.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
|
||||
|
||||
document.body.appendChild(warning);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php if (trim($params_custom_head_end)) : ?><?php echo $params_custom_head_end; ?><?php endif; ?>
|
||||
</head>
|
||||
<body class="site <?php echo $option . ' ' . $wrapper . ' view-' . $view . ($layout ? ' layout-' . $layout : ' no-layout') . ($task ? ' task-' . $task : ' no-task') . ($itemid ? ' itemid-' . $itemid : '') . ($pageclass ? ' ' . $pageclass : '') . $hasClass . ($this->direction == 'rtl' ? ' rtl' : ''); ?>">
|
||||
<body data-bs-spy="scroll" data-bs-target="#toc" class="site <?php echo $option . ' ' . $wrapper . ' view-' . $view . ($layout ? ' layout-' . $layout : ' no-layout') . ($task ? ' task-' . $task : ' no-task') . ($itemid ? ' itemid-' . $itemid : '') . ($pageclass ? ' ' . $pageclass : '') . $hasClass . ($this->direction == 'rtl' ? ' rtl' : ''); ?>">
|
||||
<?php if ($params_GoogleTagManager && $params_GoogleTagManagerID) : ?>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=<?php echo $params_GoogleTagManagerID; ?>" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="template" client="site" method="upgrade">
|
||||
<updateservers>
|
||||
<server type="extension" name="Moko Consulting">https://mokoconsulting.tech/updates/updates.xml</server>
|
||||
</updateservers>
|
||||
<name>moko-cassiopeia</name>
|
||||
<version>1.0</version>
|
||||
<version>1.10</version>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Jonathan Miller || Moko Consulting</author>
|
||||
<authorEmail>jmiller@mokoconsulting.tech</authorEmail>
|
||||
<copyright>(C)GNU General Public License Version 2 - 2023 Meae Wellness, Inc.</copyright>
|
||||
<copyright>(C)GNU General Public License Version 2 - 2025 Moko Consulting</copyright>
|
||||
<description>TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION</description>
|
||||
<inheritable>1</inheritable>
|
||||
<files>
|
||||
@@ -149,8 +152,10 @@
|
||||
>
|
||||
<option value="colors_standard">TPL_MOKO-CASSIOPEIA_COLOR_NAME_STANDARD</option>
|
||||
<option value="colors_alternative">TPL_MOKO-CASSIOPEIA_COLOR_NAME_ALTERNATIVE</option>
|
||||
<option value="colors_meaewellness">TPL_MOKO-CASSIOPEIA_COLOR_NAME_MEAEWELLNESS</option>
|
||||
<option value="colors_sra">TPL_MOKO-CASSIOPEIA_COLOR_NAME_SRA</option>
|
||||
<option value="colors_custom">TPL_MOKO-CASSIOPEIA_COLOR_NAME_CUSTOM</option>
|
||||
<option value="colors_custom_meaewellness">TPL_MOKO-CASSIOPEIA_COLOR_NAME_CUSTOM_MEAEWELLNESS</option>
|
||||
<option value="colors_custom_sra">TPL_MOKO-CASSIOPEIA_COLOR_NAME_CUSTOM_SRA</option>
|
||||
<option value="colors_custom_optain">TPL_MOKO-CASSIOPEIA_COLOR_NAME_CUSTOM_OPTAIN</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
@@ -231,8 +236,8 @@
|
||||
name="drawerLeftIcon"
|
||||
type="text"
|
||||
default="fa-solid fa-chevron-right"
|
||||
label="TPL_MOKO_CASSIOPEIA_DRAWER_LEFT_ICON_LABEL"
|
||||
description="TPL_MOKO_CASSIOPEIA_DRAWER_LEFT_ICON_DESC"
|
||||
label="TPL_MOKO-CASSIOPEIA_DRAWER_LEFT_ICON_LABEL"
|
||||
description="TPL_MOKO-CASSIOPEIA_DRAWER_LEFT_ICON_DESC"
|
||||
filter="string"
|
||||
/>
|
||||
|
||||
@@ -240,8 +245,8 @@
|
||||
name="drawerRightIcon"
|
||||
type="text"
|
||||
default="fa-solid fa-chevron-left"
|
||||
label="TPL_MOKO_CASSIOPEIA_DRAWER_RIGHT_ICON_LABEL"
|
||||
description="TPL_MOKO_CASSIOPEIA_DRAWER_RIGHT_ICON_DESC"
|
||||
label="TPL_MOKO-CASSIOPEIA_DRAWER_RIGHT_ICON_LABEL"
|
||||
description="TPL_MOKO-CASSIOPEIA_DRAWER_RIGHT_ICON_DESC"
|
||||
filter="string"
|
||||
/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user