feat: change to other sitepakage
This commit is contained in:
2
packages/base/Resources/Private/.htaccess
Normal file
2
packages/base/Resources/Private/.htaccess
Normal file
@@ -0,0 +1,2 @@
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<div class="frame frame-type-{data.CType}">
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<h2>{data.header}</h2>
|
||||
</div>
|
||||
<f:render section="Main" optional="true" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
11
packages/base/Resources/Private/Language/locallang.xlf
Normal file
11
packages/base/Resources/Private/Language/locallang.xlf
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<xliff version="1.0">
|
||||
<file source-language="en" datatype="plaintext" original="messages" date="2024-12-11UTC16:10:160">
|
||||
<header>
|
||||
<authorName>Test</authorName>
|
||||
<authorEmail>test@test.at</authorEmail>
|
||||
</header>
|
||||
<body>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
23
packages/base/Resources/Private/Language/locallang_be.xlf
Normal file
23
packages/base/Resources/Private/Language/locallang_be.xlf
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<xliff version="1.0">
|
||||
<file source-language="en" datatype="plaintext" original="messages" date="2024-12-11UTC16:10:160">
|
||||
<header>
|
||||
<authorName>Test</authorName>
|
||||
<authorEmail>test@test.at</authorEmail>
|
||||
</header>
|
||||
<body>
|
||||
<trans-unit id="backend_layout.default">
|
||||
<source>Default</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backend_layout.column.stage">
|
||||
<source>Stage</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backend_layout.column.normal">
|
||||
<source>Normal</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backend_layout.column.right">
|
||||
<source>Right</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
11
packages/base/Resources/Private/Language/locallang_db.xlf
Normal file
11
packages/base/Resources/Private/Language/locallang_db.xlf
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<xliff version="1.0">
|
||||
<file source-language="en" datatype="plaintext" original="messages" date="2024-12-11UTC16:10:160">
|
||||
<header>
|
||||
<authorName>Test</authorName>
|
||||
<authorEmail>test@test.at</authorEmail>
|
||||
</header>
|
||||
<body>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,21 @@
|
||||
<header>
|
||||
<!-- Main Navigation -->
|
||||
<f:render partial="Navigation/Main" arguments="{_all}" />
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<!-- Main Section -->
|
||||
<f:render section="Main" />
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<f:cObject
|
||||
typoscriptObjectPath="lib.dynamicContentSlide"
|
||||
data="{pageUid: '{data.uid}', colPos: '90'}"
|
||||
/>
|
||||
<f:cObject
|
||||
typoscriptObjectPath="lib.dynamicContentSlide"
|
||||
data="{pageUid: '{data.uid}', colPos: '91'}"
|
||||
/>
|
||||
<p>© {f:format.date(date: 'now', format: 'Y')} Your Company</p>
|
||||
</footer>
|
||||
@@ -0,0 +1,6 @@
|
||||
<f:layout name="Default" />
|
||||
<f:section name="Main">
|
||||
|
||||
<f:render partial="Content" arguments="{records: content.main.records}"/>
|
||||
|
||||
</f:section>
|
||||
@@ -0,0 +1,7 @@
|
||||
<f:for each="{records}" as="record">
|
||||
<f:cObject
|
||||
typoscriptObjectPath="{record.mainType}"
|
||||
data="{record}"
|
||||
table="{record.mainType}"
|
||||
/>
|
||||
</f:for>
|
||||
@@ -0,0 +1,29 @@
|
||||
<nav class="main-nav" id="mainNav">
|
||||
<div class="container">
|
||||
<a href="/" class="nav-logo">Brand Logo</a>
|
||||
<button class="nav-toggle" id="navToggle" aria-label="Toggle Menu">
|
||||
<span class="nav-toggle-icon"></span>
|
||||
</button>
|
||||
|
||||
<ul class="nav-links" id="navLinks">
|
||||
<f:for each="{mainnavigation}" as="mainnavigationItem">
|
||||
<li class="nav-item{f:if(condition: mainnavigationItem.active, then:' active')}{f:if(condition: mainnavigationItem.children, then:' has-submenu')}">
|
||||
<a href="{mainnavigationItem.link}" target="{mainnavigationItem.target}" title="{mainnavigationItem.title}">
|
||||
{mainnavigationItem.title}
|
||||
</a>
|
||||
<f:if condition="{mainnavigationItem.children}">
|
||||
<ul class="sub-menu">
|
||||
<f:for each="{mainnavigationItem.children}" as="child">
|
||||
<li class="{f:if(condition: child.active, then:'active')}">
|
||||
<a class="nav-link" href="{child.link}" target="{child.target}" title="{child.title}">
|
||||
{child.title}
|
||||
</a>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:if>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
0
packages/base/Resources/Public/Css/layout.css
Normal file
0
packages/base/Resources/Public/Css/layout.css
Normal file
3
packages/base/Resources/Public/Css/rte.css
Normal file
3
packages/base/Resources/Public/Css/rte.css
Normal file
@@ -0,0 +1,3 @@
|
||||
/**
|
||||
* Created by get.typo3.org/sitepackage
|
||||
*/
|
||||
1
packages/base/Resources/Public/Fonts/.gitkeep
Normal file
1
packages/base/Resources/Public/Fonts/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
3
packages/base/Resources/Public/Icons/Extension.svg
Normal file
3
packages/base/Resources/Public/Icons/Extension.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="83.098" height="84.172" viewBox="43.201 42.122 83.098 84.172">
|
||||
<path fill="#FF8700" d="M106.074 100.128c-1.247.368-2.242.506-3.549.506-10.689 0-26.389-37.359-26.389-49.793 0-4.577 1.083-6.104 2.613-7.415-13.084 1.527-28.784 6.329-33.806 12.433-1.085 1.529-1.743 3.926-1.743 6.98 0 19.41 20.718 63.455 35.332 63.455 6.765.001 18.164-11.112 27.542-26.166M99.25 42.122c13.52 0 27.049 2.18 27.049 9.812 0 15.483-9.819 34.246-14.832 34.246-8.942 0-20.065-24.867-20.065-37.301.001-5.67 2.181-6.757 7.848-6.757"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 563 B |
BIN
packages/base/Resources/Public/Icons/favicon.ico
Normal file
BIN
packages/base/Resources/Public/Icons/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
packages/base/Resources/Public/Images/BackendLayouts/default.png
Normal file
BIN
packages/base/Resources/Public/Images/BackendLayouts/default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 182 B |
1
packages/base/Resources/Public/JavaScript/main.js
Normal file
1
packages/base/Resources/Public/JavaScript/main.js
Normal file
@@ -0,0 +1 @@
|
||||
console.log('WE LOVE TYPO3');
|
||||
41
packages/base/Resources/Public/JavaScript/navigation.js
Normal file
41
packages/base/Resources/Public/JavaScript/navigation.js
Normal file
@@ -0,0 +1,41 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const nav = document.getElementById('mainNav');
|
||||
const toggle = document.getElementById('navToggle');
|
||||
const navLinks = document.getElementById('navLinks');
|
||||
let lastScrollTop = 0;
|
||||
|
||||
// Toggle menu on mobile
|
||||
toggle.addEventListener('click', function () {
|
||||
nav.classList.toggle('open');
|
||||
toggle.classList.toggle('active');
|
||||
});
|
||||
|
||||
// Sticky on scroll
|
||||
window.addEventListener('scroll', function () {
|
||||
const currentScroll = window.pageYOffset || document.documentElement.scrollTop;
|
||||
if (currentScroll > 0) {
|
||||
nav.classList.add('sticky');
|
||||
} else {
|
||||
nav.classList.remove('sticky');
|
||||
}
|
||||
lastScrollTop = currentScroll <= 0 ? 0 : currentScroll;
|
||||
});
|
||||
|
||||
// Optionally handle dropdowns on mobile (if desired)
|
||||
// For example:
|
||||
const submenuParents = document.querySelectorAll('.nav-item.has-submenu');
|
||||
submenuParents.forEach(parent => {
|
||||
parent.addEventListener('click', (e) => {
|
||||
if (window.innerWidth <= 992) {
|
||||
e.preventDefault();
|
||||
const subMenu = parent.querySelector('.sub-menu');
|
||||
if (subMenu) {
|
||||
const isOpen = subMenu.style.display === 'block';
|
||||
// Close all open submenus first (optional)
|
||||
document.querySelectorAll('.sub-menu').forEach(sm => sm.style.display = 'none');
|
||||
subMenu.style.display = isOpen ? 'none' : 'block';
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
10
packages/base/Resources/Public/Scss/abstracts/_mixins.scss
Normal file
10
packages/base/Resources/Public/Scss/abstracts/_mixins.scss
Normal file
@@ -0,0 +1,10 @@
|
||||
// Example mixin for transitions
|
||||
@mixin transition($property: all, $duration: 0.3s, $timing: ease-in-out) {
|
||||
transition: $property $duration $timing;
|
||||
}
|
||||
|
||||
@mixin respond($breakpoint) {
|
||||
@media (min-width: $breakpoint) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// Example variables, extend as needed
|
||||
$primary-color: #4b4b4b;
|
||||
$secondary-color: #ffffff;
|
||||
$brand-color: #6B8E23;
|
||||
$font-stack: 'Helvetica', sans-serif;
|
||||
|
||||
// Breakpoints
|
||||
$breakpoint-sm: 576px;
|
||||
$breakpoint-md: 768px;
|
||||
$breakpoint-lg: 992px;
|
||||
$breakpoint-xl: 1200px;
|
||||
20
packages/base/Resources/Public/Scss/base/_container.scss
Normal file
20
packages/base/Resources/Public/Scss/base/_container.scss
Normal file
@@ -0,0 +1,20 @@
|
||||
.container {
|
||||
margin: auto;
|
||||
padding: 3rem 1rem;
|
||||
|
||||
@include respond($breakpoint-sm) {
|
||||
max-width: 540px;
|
||||
}
|
||||
|
||||
@include respond($breakpoint-md) {
|
||||
max-width: 720px;
|
||||
}
|
||||
|
||||
@include respond($breakpoint-lg) {
|
||||
max-width: 960px;
|
||||
}
|
||||
|
||||
@include respond($breakpoint-xl) {
|
||||
max-width: 1140px;
|
||||
}
|
||||
}
|
||||
5
packages/base/Resources/Public/Scss/base/_global.scss
Normal file
5
packages/base/Resources/Public/Scss/base/_global.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
body {
|
||||
font-family: $font-stack;
|
||||
color: $primary-color;
|
||||
line-height: 1.5;
|
||||
}
|
||||
6
packages/base/Resources/Public/Scss/base/_reset.scss
Normal file
6
packages/base/Resources/Public/Scss/base/_reset.scss
Normal file
@@ -0,0 +1,6 @@
|
||||
// A simple CSS reset, adapt as needed
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
3
packages/base/Resources/Public/Scss/base/base.scss
Normal file
3
packages/base/Resources/Public/Scss/base/base.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
@import 'reset';
|
||||
@import 'global';
|
||||
@import 'container';
|
||||
@@ -0,0 +1,19 @@
|
||||
.content-element {
|
||||
margin: 2rem auto;
|
||||
padding: 2rem;
|
||||
background-color: #f5f5f5; // default background
|
||||
|
||||
// Apply responsive widths at breakpoints using the respond mixin
|
||||
|
||||
&--blue {
|
||||
background-color: #cceeff;
|
||||
}
|
||||
|
||||
&--gray {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
&--image {
|
||||
background: url('EXT:my_sitepackage/Resources/Public/Images/background-image.jpg') no-repeat center/cover;
|
||||
}
|
||||
}
|
||||
142
packages/base/Resources/Public/Scss/components/_navigation.scss
Normal file
142
packages/base/Resources/Public/Scss/components/_navigation.scss
Normal file
@@ -0,0 +1,142 @@
|
||||
.main-nav {
|
||||
width: 100%;
|
||||
background: $secondary-color url('EXT:my_sitepackage/Resources/Public/Images/linen-texture.png') repeat;
|
||||
position: relative;
|
||||
z-index: 1000;
|
||||
|
||||
&.sticky {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 0 auto;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.nav-logo {
|
||||
img {
|
||||
display: block;
|
||||
max-height: 50px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-toggle {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: none; // hidden by default on desktop
|
||||
position: relative;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
|
||||
.nav-toggle-icon {
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
background: $primary-color;
|
||||
display: block;
|
||||
position: relative;
|
||||
@include transition(all, 0.3s);
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: '';
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
background: $primary-color;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
@include transition(all, 0.3s);
|
||||
}
|
||||
|
||||
&::before {
|
||||
top: -8px;
|
||||
}
|
||||
|
||||
&::after {
|
||||
top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
&.active .nav-toggle-icon {
|
||||
background: transparent;
|
||||
|
||||
&::before {
|
||||
transform: rotate(45deg) translate(5px, 5px);
|
||||
}
|
||||
|
||||
&::after {
|
||||
transform: rotate(-45deg) translate(5px, -5px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
|
||||
.nav-item {
|
||||
margin: 0 1rem;
|
||||
|
||||
.nav-link {
|
||||
text-decoration: none;
|
||||
color: $primary-color;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
font-size: 1rem;
|
||||
@include transition(color);
|
||||
|
||||
&:hover {
|
||||
color: $brand-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Responsive: show hamburger and collapse menu on smaller screens
|
||||
@media (max-width: $breakpoint-lg) {
|
||||
.nav-toggle {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// Hide links by default on mobile and show only when toggled
|
||||
.nav-links {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
flex-direction: column;
|
||||
background: $secondary-color url('EXT:my_sitepackage/Resources/Public/Images/linen-texture.png') repeat;
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
@include transition(max-height, 0.4s);
|
||||
|
||||
.nav-item {
|
||||
margin: 0;
|
||||
padding: 1rem;
|
||||
border-top: 1px solid rgba(0,0,0,0.1);
|
||||
|
||||
&:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.open .nav-links {
|
||||
max-height: 500px; // Adjust to fit all items
|
||||
}
|
||||
}
|
||||
}
|
||||
4
packages/base/Resources/Public/Scss/main.scss
Normal file
4
packages/base/Resources/Public/Scss/main.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
@import 'abstracts/variables';
|
||||
@import 'abstracts/mixins';
|
||||
@import 'base/base';
|
||||
@import 'components/navigation';
|
||||
Reference in New Issue
Block a user