diff --git a/local_packages/psi/Classes/ViewHelpers/SubpagesViewHelper.php b/local_packages/psi/Classes/ViewHelpers/SubpagesViewHelper.php new file mode 100644 index 0000000..9bbb01a --- /dev/null +++ b/local_packages/psi/Classes/ViewHelpers/SubpagesViewHelper.php @@ -0,0 +1,59 @@ +registerArgument('uid', 'int', 'the UID of the Page to Look for Subpages', true); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ): array { + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('pages'); + $resultsArray = []; + $id = (int)$arguments['uid']; + + $results = $queryBuilder + ->select('*') + ->from('pages') + ->where( + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter($id, Connection::PARAM_INT) + ) + ) + ->executeQuery(); + + while ($row = $results->fetchAssociative()) { + array_push($resultsArray, $row); + } + return $resultsArray; + } + +} diff --git a/local_packages/psi/Resources/Private/Language/es.locallang.xlf b/local_packages/psi/Resources/Private/Language/es.locallang.xlf index e2fc433..2105438 100644 --- a/local_packages/psi/Resources/Private/Language/es.locallang.xlf +++ b/local_packages/psi/Resources/Private/Language/es.locallang.xlf @@ -83,6 +83,10 @@ Download Descargar + + Read more + Sigue leyendo + diff --git a/local_packages/psi/Resources/Private/Language/locallang.xlf b/local_packages/psi/Resources/Private/Language/locallang.xlf index be9c29a..0989435 100644 --- a/local_packages/psi/Resources/Private/Language/locallang.xlf +++ b/local_packages/psi/Resources/Private/Language/locallang.xlf @@ -74,6 +74,9 @@ Download + + Read more + diff --git a/local_packages/psi/Resources/Private/Templates/Content/MenuSubpages.html b/local_packages/psi/Resources/Private/Templates/Content/MenuSubpages.html index 43124f4..6e20ed9 100644 --- a/local_packages/psi/Resources/Private/Templates/Content/MenuSubpages.html +++ b/local_packages/psi/Resources/Private/Templates/Content/MenuSubpages.html @@ -1 +1,41 @@ -{data.header} \ No newline at end of file +{namespace uzi=Jacuzzi\Psi\ViewHelpers} + + + + +
+
+
    + +
  • +
    + + +

    +
    +
    + + +

    {page.location}

    +
    +
    +
    +

    + {page.title} +

    + + + + + + + + +
  • +
    +
+
+
+
+
+ diff --git a/local_packages/psi/Resources/Private/Templates/Plugins/Felogin/Login/Logout.html b/local_packages/psi/Resources/Private/Templates/Plugins/Felogin/Login/Logout.html index be9ba87..66312b2 100644 --- a/local_packages/psi/Resources/Private/Templates/Plugins/Felogin/Login/Logout.html +++ b/local_packages/psi/Resources/Private/Templates/Plugins/Felogin/Login/Logout.html @@ -1,7 +1,5 @@ - -
diff --git a/local_packages/psi/Resources/Public/Css/main.css b/local_packages/psi/Resources/Public/Css/main.css index 365d7fb..c2eeade 100644 --- a/local_packages/psi/Resources/Public/Css/main.css +++ b/local_packages/psi/Resources/Public/Css/main.css @@ -1,4 +1,578 @@ #page-header { +@font-face { + font-family: "Nunito Sans", sans-serif; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(../Fonts/nunito-sans/NunitoSans-Regular.ttf) format("ttf"); +} + +@font-face { + font-family: "Nunito Sans", sans-serif; + font-style: bold; + font-weight: 600; + font-display: swap; + src: url(../Fonts/nunito-sans/NunitoSans-Bold.ttf) format("ttf"); +} + +@font-face { + font-family: "Nunito Sans", sans-serif; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(../Fonts/nunito-sans/NunitoSans-Italic.ttf) format("ttf"); +} + +@font-face { + font-family: "Nunito Sans", sans-serif; + font-style: bold; + font-weight: 600; + font-display: swap; + src: url(../Fonts/nunito-sans/NunitoSans-Bold.ttf) format("ttf"); +} + +@font-face { + font-family: "Chivo", sans-serif; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(../Fonts/chivo/Chivo-Bold.ttf) format("ttf"); +} + +:root { + --primary: #63B41D; + --secondary: #99D6B4; + --accent: #79C9B2; + --light: #F4F9F1; + --dark: #090C05; + --background: #F4F9F1; + --text: #090C05; + --success: #63B41D; + --error: #FF5D2D; + --warn: #F4C659; + --hint: #00B0FF; +} + +:root[data-theme=contrastMode] { + --primary: #FBEE14; + --secondary: #99D6B4; + --accent: #D5C904; + --background: #090C05; + --text: #F4F9F1; + --success: #63B41D; + --error: #FF5D2D; + --warn: #F4C659; + --hint: #00B0FF; +} + +@media (prefers-contrast: more) or (forced-colors: active) { + :root { + --primary: #FBEE14; + --secondary: #99D6B4; + --accent: #D5C904; + --background: #090C05; + --text: #F4F9F1; + --success: #63B41D; + --error: #FF5D2D; + --warn: #F4C659; + --hint: #00B0FF; + } +} + +*, +:before, +:after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +html { + font-size: calc(16 * 1px); +} + +body { + font-family: "Nunito Sans"; + font-weight: 400; + color: var(--text, #1d0b1e); + position: relative; + margin: 0; + background: var(--background, #fff); + overflow-x: hidden; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.h1, +h1 { + font-size: calc(48 * 1px); + line-height: calc(48 * 1.2 * 1px); + font-family: "Chivo"; + display: block; + text-rendering: optimizeLegibility; + hyphens: auto; + font-weight: bold; + word-wrap: break-word; +} + +.h2, +h2 { + font-size: calc(40 * 1px); + line-height: calc(40 * 1.2 * 1px); + font-family: "Chivo"; + display: block; + text-rendering: optimizeLegibility; + hyphens: auto; + font-weight: bold; + word-wrap: break-word; +} + +.h3, +h3 { + font-size: calc(34 * 1px); + line-height: calc(34 * 1.2 * 1px); + font-family: "Chivo"; + display: block; + text-rendering: optimizeLegibility; + hyphens: auto; + font-weight: bold; + word-wrap: break-word; +} + +.h4, +h4 { + font-size: calc(28 * 1px); + line-height: calc(28 * 1.2 * 1px); + font-family: "Chivo"; + display: block; + text-rendering: optimizeLegibility; + hyphens: auto; + font-weight: bold; + word-wrap: break-word; +} + +.h5, +h5 { + font-size: calc(24 * 1px); + line-height: calc(24 * 1.2 * 1px); + font-family: "Chivo"; + display: block; + text-rendering: optimizeLegibility; + hyphens: auto; + font-weight: bold; + word-wrap: break-word; +} + +.container { + --columns: 12; + --gutter: 24px; + --maxWidth: 1440px; + width: calc(100% - var(--gutter)); + max-width: var(--maxWidth); + margin-left: auto; + margin-right: auto; + padding-left: calc(var(--gutter) / 2); + padding-right: calc(var(--gutter) / 2); +} + +.container .row { + display: flex; + flex-flow: row wrap; + gap: var(--gutter); +} + +.container .col { + flex: 0 0 auto; + min-height: 0; + min-width: 0; + width: 100%; + flex-basis: auto; + box-sizing: border-box; + padding: 0 var(--gutter/2); +} + +@media screen and (min-width: 768px) { + .container .col { + padding: 0 var(--gutter); + } +} + +.col-1 { + flex-basis: calc((100% - 24px) / 12 * 1); +} + +.col-2 { + flex-basis: calc((100% - 24px) / 12 * 2); +} + +.col-3 { + flex-basis: calc((100% - 24px) / 12 * 3); +} + +.col-4 { + flex-basis: calc((100% - 24px) / 12 * 4); +} + +.col-5 { + flex-basis: calc((100% - 24px) / 12 * 5); +} + +.col-6 { + flex-basis: calc((100% - 24px) / 12 * 6); +} + +.col-7 { + flex-basis: calc((100% - 24px) / 12 * 7); +} + +.col-8 { + flex-basis: calc((100% - 24px) / 12 * 8); +} + +.col-9 { + flex-basis: calc((100% - 24px) / 12 * 9); +} + +.col-10 { + flex-basis: calc((100% - 24px) / 12 * 10); +} + +.col-11 { + flex-basis: calc((100% - 24px) / 12 * 11); +} + +.col-12 { + flex-basis: calc((100% - 24px) / 12 * 12); +} + +.col-sm-1 { + flex-basis: calc((100% - 24px) / 12 * 1); +} + +.col-sm-2 { + flex-basis: calc((100% - 24px) / 12 * 2); +} + +.col-sm-3 { + flex-basis: calc((100% - 24px) / 12 * 3); +} + +.col-sm-4 { + flex-basis: calc((100% - 24px) / 12 * 4); +} + +.col-sm-5 { + flex-basis: calc((100% - 24px) / 12 * 5); +} + +.col-sm-6 { + flex-basis: calc((100% - 24px) / 12 * 6); +} + +.col-sm-7 { + flex-basis: calc((100% - 24px) / 12 * 7); +} + +.col-sm-8 { + flex-basis: calc((100% - 24px) / 12 * 8); +} + +.col-sm-9 { + flex-basis: calc((100% - 24px) / 12 * 9); +} + +.col-sm-10 { + flex-basis: calc((100% - 24px) / 12 * 10); +} + +.col-sm-11 { + flex-basis: calc((100% - 24px) / 12 * 11); +} + +.col-sm-12 { + flex-basis: calc((100% - 24px) / 12 * 12); +} + +.col-md-1 { + flex-basis: calc((100% - 24px) / 12 * 1); +} + +.col-md-2 { + flex-basis: calc((100% - 24px) / 12 * 2); +} + +.col-md-3 { + flex-basis: calc((100% - 24px) / 12 * 3); +} + +.col-md-4 { + flex-basis: calc((100% - 24px) / 12 * 4); +} + +.col-md-5 { + flex-basis: calc((100% - 24px) / 12 * 5); +} + +.col-md-6 { + flex-basis: calc((100% - 24px) / 12 * 6); +} + +.col-md-7 { + flex-basis: calc((100% - 24px) / 12 * 7); +} + +.col-md-8 { + flex-basis: calc((100% - 24px) / 12 * 8); +} + +.col-md-9 { + flex-basis: calc((100% - 24px) / 12 * 9); +} + +.col-md-10 { + flex-basis: calc((100% - 24px) / 12 * 10); +} + +.col-md-11 { + flex-basis: calc((100% - 24px) / 12 * 11); +} + +.col-md-12 { + flex-basis: calc((100% - 24px) / 12 * 12); +} + +.col-lg-1 { + flex-basis: calc((100% - 24px) / 12 * 1); +} + +.col-lg-2 { + flex-basis: calc((100% - 24px) / 12 * 2); +} + +.col-lg-3 { + flex-basis: calc((100% - 24px) / 12 * 3); +} + +.col-lg-4 { + flex-basis: calc((100% - 24px) / 12 * 4); +} + +.col-lg-5 { + flex-basis: calc((100% - 24px) / 12 * 5); +} + +.col-lg-6 { + flex-basis: calc((100% - 24px) / 12 * 6); +} + +.col-lg-7 { + flex-basis: calc((100% - 24px) / 12 * 7); +} + +.col-lg-8 { + flex-basis: calc((100% - 24px) / 12 * 8); +} + +.col-lg-9 { + flex-basis: calc((100% - 24px) / 12 * 9); +} + +.col-lg-10 { + flex-basis: calc((100% - 24px) / 12 * 10); +} + +.col-lg-11 { + flex-basis: calc((100% - 24px) / 12 * 11); +} + +.col-lg-12 { + flex-basis: calc((100% - 24px) / 12 * 12); +} + +.headline-center { + text-align: center; +} + +.headline-left { + text-align: left; +} + +.headline-right { + text-align: right; +} + +.subheadline { + width: 100%; + display: block; +} + +.image__container { + flex-direction: column; + justify-content: center; + align-items: center; + max-width: 1440px; + margin-left: auto; + margin-right: auto; +} + +.image__figure { + margin: 0; +} + +.image__file { + width: 100%; + height: auto; +} + +.text-center { + text-align: center; +} + +.text-end { + text-align: right; +} + +.text-justify { + text-align: justify; +} + +.textpic__image figure { + margin: 0; +} + +.textpic__image-file { + width: 100%; + height: auto; + object-fit: cover; +} + +.textpic__image-right { + order: 2; +} + +@media (min-width: 768px) { + .textpic { + flex-direction: row; + } + + .textpic__container { + justify-content: center; + align-items: center; + column-gap: 8.3333333333%; + } +} + +.login { + justify-content: center; + align-items: center; + height: 100%; + min-height: 100vh; + background: #F2F0FF; +} + +.login__container { + padding: 45px; + background: #ffffff; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); +} + +.login__form { + display: flex; + flex-direction: column; +} + +.login__input { + width: 100%; + margin: 0 0 15px; + padding: 15px; + border: 0; + background: #f2f2f2; + box-sizing: border-box; + font-size: 14px; +} + +.login__input:focus { + outline: none; + background: #F2F0FF; +} + +.login__label { + font-size: 16px; + font-weight: 500; + line-height: 2; +} + +.login__submit { + align-self: center; + width: 100%; + margin: 15px 0 0; + padding: 15px; + border: 0; + background: #9B8BF4; + box-sizing: border-box; + font-size: 18px; + font-weight: 600; + color: #ffffff; + cursor: pointer; +} + +.login__submit:hover { + background: #c379b8; +} + +.profile { + padding-top: 60px; + padding-bottom: 60px; +} + +.profile__container { + max-width: 1440px; + margin-left: auto; + margin-right: auto; +} + +.profile__card, +.profile__info { + position: relative; + width: 100%; + padding: 1.25rem 1.5rem; + word-wrap: break-word; + border: 1px solid rgba(0, 0, 0, 0.05); + border-radius: 0.625rem; + background-color: #fff; + background-clip: border-box; + box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15); +} + +.profile__card { + display: flex; + flex-direction: column; + align-items: center; + height: fit-content; +} + +.profile__image { + object-fit: cover; + width: 200px; + height: 200px; +} + +.profile__header { + font-size: 0.75rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +@media (min-width: 768px) { + .profile__container { + flex-direction: row; + flex-flow: nowrap; + gap: 24px; + } +} + display: flex; height: 80px; } @@ -348,19 +922,39 @@ padding: 30px; } -.downloads-wrap { +.latestnews-inner { + padding: 30px 0; +} + +.downloads-wrap, +.latestnews-wrap { align-items: center; display: flex; gap: 25px; } -.downloads-single { +.downloads-single, +.latestnews-single { background-color: #FFF; display: block; flex: 0 1 calc(100% / 2 - 25px); max-width: calc(100% / 2 - 25px); } +.latestnews-single-link { + align-items: center; + color: #000; + display: flex; + gap: 5px; + font-size: 18px; + font-weight: 700; + text-decoration: none; +} + +.latestnews-single-link svg { + max-width: 24px; +} + .downloads-single p { margin-bottom: 10px; } @@ -380,3 +974,13 @@ .download-cta { line-height: 24px; } + +.latestnews-single-header { + align-items: center; + display: flex; + gap: 15px; +} + +.latestnews-single-title { + padding: 15px 0; +}