Ich habe da etwas, was man umfunktionieren könnte. Eine Lösung mit einem Token. Statt eines Zettels mit Benutzernamen und Passwort würde sie eine URL bekommen. https://example.com/der-beitrag?t=DEIN_TOKEN_HIER - Aufruf ohne Token würde in ein 404 laufen. Das könnte man dann noch ein wenig ausbauen. Jeder kann einen eigenen Token bekommen, man könnte das mit einem Ablauf versehen. Nach Tagen, oder nach Aufrufen.
Beiträge von -OJ-
-
-
die den zugang aktiv erhalten...
Was heißt das genau? Wie findet aktiv statt?
-
Was ist denn von den Benutzern, die Zugriff haben dürfen, bekannt?
Ich denke da an einen Abgleich, z.B. der E-Mail-Adressen. Benutzer gibt E-Mail-Adresse in ein Formular ein, es wird geprüft, ob die E-Mail-Adresse berechtigt ist, und das Dokument wird dann an die E-Mail-Adresse gesendet. Oder angezeigt..angezeigt …. Das würde mit ConvertForms funktionieren.
-
Ich habe nur kurz in eure Datenschutzerklärung geschaut..
WICHTIG: Ist keine Rechtsberatung.
Eure Datenschutzerklärung sagt:
- Google Analytics, YouTube, Maps, Facebook-Plugins etc. werden eingesetzt.
- Google Analytics wird auf Basis berechtigter Interessen (Art. 6 Abs. 1 lit. f DSGVO) eingesetzt.
Datentransfer in die USA stützt sich auf das alte „Privacy Shield“.
Aktuelle Rechtslage (Deutschland / EU):Tracking-/Analyse-Cookies (Google Analytics) und Marketing-/Third-Party-Cookies benötigen vor dem Setzen eine aktive Einwilligung (TTDSG + DSGVO).
Privacy Shield ist seit dem EuGH-Urteil „Schrems II“ (2020) für Datentransfer in die USA nicht mehr zulässig. Stattdessen gibt es das neue EU-US Data Privacy Framework bzw. Standardvertragsklauseln etc.
-
Aha. Dann bin ich also doch nicht der einzige der das gerne anders hätte und ich frage mich auch ernsthaft, warum man es nicht so gelöst hat wie ich es sage.
Dein Problem und mein Problem sind zwei ganz unterschiedliche. Ich habe noch nie etwas mit Tags gemacht. Die nutze ich nicht und werden bei mir komplett deaktiviert. Mir geht es lediglich um die Gewichtung der Suchergebnisse. Vor allem wenn dein Problem es ist, jemandem zu sagen, dass er die Programme findet, wenn er in der Suche "Programme" eingibt, dann ist das schon ein Problem. Wie wäre es mit "Im Menü auf Linkliste klicken und dann die Programme auswählen" Aber es steht dir frei, ein weiteres Search-Plugin zu schreiben oder schreiben zu lassen, was dafür sorgt, dass die Beiträge mit entsprechenden Tags auch als einzelnes Ergebnis in der Suche auftauchen.
Redest du von meta name="keywords" ? Es war doch früher DIE Möglichkeit, festzulegen unter welchen Suchbegriffen deine Webseite gefunden wird? Legen Suchmaschinen das inzwischen selbst fest?
Inzwischen ist gut... Dem ist bereits seit 2009 so (
).Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Das Problem kenne ich...
und was Pest schreibt, kommt der Lösung schon sehr nahe. Du musst dein Suchwort "künstlich" hinterlegen. Dafür gibt es 2 Lösungen, wodurch du Inhalte über die Suche findest, auch wenn das Keyword "nicht" im Beitrag steht.
1: Du arbeitest mit dem Eintrag Schlüsselwörter unter Veröffentlichung - Metadaten im jeweiligen Beitrag. Gib dort in deinem Fall einfach den entsprechenden Kategorienamen mit an - also Programme.
2: In den Optionen unter der Komponente Suchindex passt du unter Index die Faktoren an. Da musst du probieren, was bei dir am besten passt. Bei mir hat sich eigentlich bewährt den Faktor: Pfadangaben am höchsten zu setzen, gefolgt von dem Faktor: Metadaten. Das bringt in der Suche dann, dass die Ergebnisse erst nach der entsprechenden Kategorie und dann nach den Metadaten gelistet werden.
Möglichkeit 2 - die bessere Lösung
1: Custom Field vom Typ Text anlegen. Die Anzeige kannst du auf "Keine automatische Anzeige" stellen – das Feld wird nur für die Suche genutzt. Wichtig: Suchindex durchsuchbar machen.
2: Die Faktoren im Suchindex anpassen, wenn es nötig sein sollte.
Warum das die bessere Lösung ist...
Suchmaschinen ignorieren mittlerweile die hinterlegten Suchwörter, und ich denke, es ist eine Frage der Zeit, bis diese auch aus Joomla verschwinden. -
Danke dir bembelimen - habe mal wieder zu kompliziert gedacht. "display:none" und schon gibt es keine Fehlermeldung mehr. Habe das Ganze noch mit einer if - Abfrage nach der ID des Menüeintrags kombiniert. Hat den Vorteil, dass ich nur ein Override nutzen muss.
-
Ich benötige mal Schwarmwissen und/oder Ideen für die Bearbeitung der Benutzerprofile im Frontend.
Worum geht es genau?
Es sollen die UserCustomFields nicht in der Standardbenutzerbearbeitung erscheinen (was kein Problem ist - kann über ein Override ausgeblendet werden). Wenn ich nun über ein Override genau den anderen Weg wähle, also alles raus mit Ausnahme der UserCustomFields - das Ganze dann bei der Verlinkung im Menü als Alternativlayout wähle, kommt es beim Speichern durch die Benutzerverwaltung zu einer Fehlermeldung (Passwort / Benutzername).
Kurz gesagt...
Hat jemand eine Idee, wie ich (index.php?option=com_users&view=profile&layout=edit) nur mit UserCustomFields ansprechen kann?
-
Ich habe z.B. keine Ahnung ob #8 und #12 bezüglich Alternativem Layout von Modulen beim Astroid funktioniert oder ob man dann andere Dateipfade hierzu verwenden muß...
Läuft genauso wie du es kennst, ohne Pfade zu ändern oder sonst was.
-
-
Problem gefunden. Ich hatte noch eine andere class im Override. Angepasst, und schon waren Input und Flexbox gute Freunde.
-
Die Idee ist gut, aber auch mit Flexbox passiert nichts. Egal, ob ich nur versuche, mit CSS einzugreifen, ob ich ein Override erstelle – nichts passiert.
Das Override greift, das habe ich durch etwas "Mustertext" getestet. Im Einsatz ist das Astroid Framework mit dem Template III.
-
Hat jemand einen Lösungsvorschlag, wie ich die Searchbox in der Größe auf 100 % anpassen kann? Also Suchbox + Button = 100 %, wobei der Button immer die gleiche Größe hat.
-
Auf der Webseite find ich das:
Abook versions
4.0.6 for J4 and J5 (Current versionBeta)
Vielleicht liegt es daran, dass es bis dato eine Betaversion ist. Ansonsten würde ich es dort vielleicht im Forum versuchen.
-
Das hab ich jetzt gemacht.
Heißt das letztendlich, dass ich gar kein Cookie-Banner benötigen würde?
Richtig! Und das ist mal wieder ein Vorteil im Vergleich zu WP

-
Entweder du verzichtest auf die vorgegebenen Headereinstellungen und baust dir das nur über Module, wie du es haben möchtest, oder du erstellst ein Override von der Datei, die den Header (müsste erst schauen, welche das ist) steuert. Dafür wirst du dich ein wenig in die Materie einarbeiten müssen. Joomla oder auch ein Template-Framework sind kein Webbaukästen.
-
-
-
Kann man die Inhalte dann personenbeziehbar mit einem Wasserzeichen versehen?
Oder sonstwie schützen, um eine illegale Weitergabe zu vermeiden?User ID, Bestelldatum, Bestellnummer etc on the fly mit FFmpeg generieren wäre möglich.
-
Vielen Dank für den Workaround! Das funktioniert aber nur, wenn ich auch das Off-Canvas-Menu einschalte, und so habe ich jetzt 2 Menuburger auf der rechten Seite. Wie kriege ich das andere abgeschaltet?
Nimm für die horizontal.php folgenden Override:
PHP
Alles anzeigen<?php /** * @package Astroid Framework * @author Astroid Framework Team https://astroidframe.work * @copyright Copyright (C) 2025 AstroidFrame.work. * @license https://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later * DO NOT MODIFY THIS FILE DIRECTLY AS IT WILL BE OVERWRITTEN IN THE NEXT UPDATE * You can easily override all files under /frontend/ folder. * Just copy the file to ROOT/templates/YOURTEMPLATE/html/frontend/header/ folder to create and override */ // No direct access. defined('_JEXEC') or die; extract($displayData); $template = Astroid\Framework::getTemplate(); $document = Astroid\Framework::getDocument(); $params = $template->getParams(); $mode = $params->get('header_horizontal_menu_mode', 'left'); $block_1_type = $params->get('header_block_1_type', 'blank'); $block_1_position = $params->get('header_block_1_position', ''); $block_1_style = $params->get('header_block_1_style', 'none'); $block_1_custom = $params->get('header_block_1_custom', ''); $block_2_type = $params->get('header_block_2_type', 'blank'); $block_2_position = $params->get('header_block_2_position', ''); $block_2_style = $params->get('header_block_2_style', 'none'); $block_2_custom = $params->get('header_block_2_custom', ''); $header_menu = $params->get('header_menu', 'mainmenu'); $header_menu_method = $params->get('header_menu_method', 'default'); $mobile_menu_method = $params->get('mobile_menu_method', 'default'); $header_menu_module_position = $params->get('header_menu_module_position', 'astroid-header-menu'); $mobile_menu_module_position = $params->get('mobile_menu_module_position', 'astroid-header-mobilemenu'); $header_breakpoint = $params->get('header_breakpoint', 'lg'); $enable_offcanvas = $params->get('enable_offcanvas', FALSE); $header_mobile_menu = $params->get('header_mobile_menu', ''); $offcanvas_animation = $params->get('offcanvas_animation', 'st-effect-1'); $offcanvas_direction = $params->get('offcanvas_direction', 'offcanvasDirLeft'); $offcanvas_position = $params->get('offcanvas_position', 'offcanvasRight'); $offcanvas_togglevisibility = $params->get('offcanvas_togglevisibility', 'd-block'); $class = ['astroid-header', 'astroid-horizontal-header', 'astroid-horizontal-' . $mode . '-header']; $navClass = ['nav', 'astroid-nav', 'd-none', 'd-'.$header_breakpoint.'-flex']; $navWrapperClass = ['align-self-center', 'd-none', 'd-'.$header_breakpoint.'-block']; $headAttrs = $header_menu_method == 'default' ? ' data-megamenu data-megamenu-class=".has-megamenu" data-megamenu-content-class=".megamenu-container" data-dropdown-arrow="'.($params->get('dropdown_arrow', 0) ? 'true' : 'false').'" data-header-offset="true" data-transition-speed="'.$params->get('dropdown_animation_speed', 300).'" data-megamenu-animation="'.$params->get('dropdown_animation_type', 'fade').'" data-easing="'.$params->get('dropdown_animation_ease', 'linear').'" data-astroid-trigger="'.$params->get('dropdown_trigger', 'hover').'" data-megamenu-submenu-class=".nav-submenu,.nav-submenu-static"' : ''; ?> <!-- header starts --> <header id="astroid-header" class="<?php echo implode(' ', $class); ?>"<?php echo $headAttrs; ?>> <div class="d-flex flex-row justify-content-between"> <div class="header-left-section as-gutter-x-xl@lg d-flex justify-content-start<?php echo $mode == 'left' ? ' flex-'.$header_breakpoint.'-grow-1' : ''; ?>"> <?php if ($enable_offcanvas && $offcanvas_position === 'offcanvasLeft') { ?> <?php echo '<div class="d-none d-'.$header_breakpoint.'-flex me-4 offcanvas-button '.$offcanvas_position.'">'; ?> <?php $document->include('offcanvas.trigger', ['offcanvas' => '#astroid-offcanvas', 'visibility' => $offcanvas_togglevisibility, 'effect' => $offcanvas_animation, 'direction' => $offcanvas_direction]); ?> <?php echo '</div>'; ?> <?php } ?> <?php $document->include('logo'); ?> <?php if ($block_2_type != 'blank') : ?> <div class="header-left-block d-none d-<?php echo $header_breakpoint; ?>-block align-self-center ms-4"> <?php if ($block_2_type == 'position') { echo '<div class="header-block-item d-flex justify-content-start align-items-center">'; echo $document->position($block_2_position, $block_2_style); echo '</div>'; } if ($block_2_type == 'custom') { echo '<div class="header-block-item d-flex justify-content-start align-items-center">'; echo $block_2_custom; echo '</div>'; } ?> </div> <?php endif; ?> <?php if ($mode == 'left') { // header nav starts if ($header_menu_method == 'module_position') { echo $document->position($header_menu_module_position); } else { Astroid\Component\Menu::getMenu($header_menu, $navClass, null, 'left', 'horizontal', $navWrapperClass); } // header nav ends } ?> </div> <?php if (!$enable_offcanvas) : ?> <div class="min-w-30 d-<?php echo $header_breakpoint; ?>-none"></div> <?php endif; ?> <?php if ($mode == 'center') { echo '<div class="header-center-section d-none d-'.$header_breakpoint.'-flex justify-content-center' . ($mode == 'center' ? ' flex-'.$header_breakpoint.'-grow-1' : '') . '">'; // header nav starts if ($header_menu_method == 'module_position') { echo $document->position($header_menu_module_position); } else { Astroid\Component\Menu::getMenu($header_menu, $navClass, null, 'left', 'horizontal', $navWrapperClass); } // header nav ends echo '</div>'; } ?> <?php if (!empty($header_mobile_menu)) { if ($mobile_menu_method == 'module_position') { echo $document->position($mobile_menu_module_position); } else { echo $document->include('burger', ['containerClass' => 'd-flex d-'.$header_breakpoint.'-none justify-content-start']); } } ?> <?php if ($block_1_type != 'blank' || $mode == 'right' || $enable_offcanvas) : ?> <div class="header-right-section as-gutter-x-xl@lg <?php echo ($enable_offcanvas ? 'd-flex min-w-30' : 'd-'.$header_breakpoint.'-flex d-none'); ?> justify-content-end<?php echo $mode == 'right' ? ' flex-'.$header_breakpoint.'-grow-1' : ''; ?>"> <?php if ($mode == 'right') { // header nav starts if ($header_menu_method == 'module_position') { echo $document->position($header_menu_module_position); } else { Astroid\Component\Menu::getMenu($header_menu, $navClass, null, 'left', 'horizontal', $navWrapperClass); } // header nav ends } ?> <?php if ($block_1_type != 'blank') : ?> <div class="header-right-block d-none d-<?php echo $header_breakpoint; ?>-block align-self-center"> <?php if ($block_1_type == 'position') { echo '<div class="header-block-item d-flex justify-content-end align-items-center">'; echo $document->position($block_1_position, $block_1_style); echo '</div>'; } if ($block_1_type == 'custom') { echo '<div class="header-block-item d-flex justify-content-end align-items-center">'; echo $block_1_custom; echo '</div>'; } ?> </div> <?php endif; ?> <?php if ($enable_offcanvas) { ?> <?php echo '<div class="'.($offcanvas_position === 'offcanvasRight' ? 'd-flex' : 'd-'.$header_breakpoint.'-none d-flex').' offcanvas-button offcanvasRight">'; ?> <?php $document->include('offcanvas.trigger', ['offcanvas' => '#astroid-offcanvas', 'visibility' => $offcanvas_togglevisibility, 'effect' => $offcanvas_animation, 'direction' => $offcanvas_direction]); ?> <?php echo '</div>'; ?> <?php } ?> </div> <?php endif; ?> </div> </header> <!-- header ends -->