Beiträge von Re:Later

    Ist ja wurst, wo du es reinpackst. Geht ja darum, dass kein Intro- Bild gefunden wird. Gibt's denn garantiert ein "Einelitungsbild" zu Beitrag?


    Debug halt mal: Vor die Zeile

    PHP
    <?php
    echo ' DEBUG images: <pre>' . print_r($this->item->images, true) . '</pre>';
    echo ' DEBUG images JSON DECODED : <pre>' . print_r(json_decode($this->item->images), true) . '</pre>';
    exit;
    ?>
    PHP
    <?php echo json_decode($this->item->images)->image_intro; ?>

    Setze Fehler berichten auf Maximum bei Spielereien am Code. Dann wird's offensichtlich:

    Zitat

    Notice: Undefined variable: item in...

    Notice: Trying to get property 'images' of non-object in...

    Notice: Trying to get property 'image_intro' of non-object in...

    Zitat

    TypeError: window.addEvent is not a function

    Der Fehler tritt auch auf der Seite von svanschu auf.

    Weil Mootools nicht geladen wird. Die Mootools-Zeiten sind in Joomla ja auch komplett vorbei und man sollte das JavaScript wenigstens auf JQuery umbauen. Am allerbesten gleich auf Vanilla-JS. Alle modernen Browser können mittlerweile mit

    Code
    document.addEventListener('DOMContentLoaded'

    und

    Code
    document.querySelectorAll(

    umgehen.


    Egal was, muss jede erweiterung sich selbst darum kümmern, dass die benötigte JS-Library (Mootools, JQuery) lädt, wenn die Erweiterung sie in Folge benötigt.


    Fügst also für Mootools vor der Zeile

    Code
    $url = $this->params->get('mathjax', ...und so weiter...

    ein:

    Code
    JHtml::_('behavior.framework');

    JavaScript-Fehler können harmlos sein, aber sich eben auch dramatisch auf nachfolgende JavaScripte auswirken, je nachdem an welcher Stelle sie im Ablauf/in der Reihenfolge auftauchen.


    Da mittlerweile aus Joomla 3 Core alle Verwendungen von Mootools entfernt wurden, lädt also auch keine Joomla-Funktionalität mehr Mootools zufällig, so, dass das Plugin das nicht selbst tun muss.


    Ob das nun bei deinem Problem weiterhilft musst sehen, nachdem du Browser-Cache gelöscht hast und nachdem du im Seitenquelltext irgendwo 'mootools....js' findest. Ich habe nämlich auch Erweiterungen, die das Laden von Mootools rigoros unterbinden, weil eh nur nervt.


    Vielleicht formatiert dein Template ja zahlreich mit JavaScript.


    Aber wir sehen dein Problem ja nicht. Also Ja:

    Zitat

    Kann gerne eine Test-Seite einrichten

    Geh mit phpMyAdmin in die Datenbank, wo rechts dann alle Tabellen der Joomla-DB angezeigt werden:


    Sichere die Datenbank via Reiter "Exportieren"


    Klicke oben den Reiter "SQL".

    Leere das Eingabefeld und poste folgendes Script ein und führe es dann aus.

    Zusammengekramt aus https://github.com/joomla/joom…braries/src/Form/Form.php

    und https://github.com/joomla/joom…omla/form/fields/list.php


    Zu viele Eigenschaften und Methoden von JForm sind protected und wenig intuitiv zu verwenden. Also zurück zu den PHP-Wurzeln (Jform macht ja nix anderes). Man könnte natürlich auch eine eigene Helferklasse verwenden, die JForm oder andere extended, um die protected-Restriktionen zu umschiffen.

    Genau. Ein Template weiß ja nicht, was es anzeigen wird und, wenn es dann was anzeigt, ist das ja schon fertig zusammengebastelt, sozusagen. Die Variablen und Daten werden vorher "verworfen" und sind im Template nicht mehr verfügbar.


    Mit einem eigenen Plugin könnte man das zwar bewerkstelligen, das Template wissend zu machen. Kommt dann aber immer darauf an, wo und was sinnvoll ist = Individuallösung.

    Da das Template mit Bootstrap 2 läuft, wird das nicht einfach per CSS machbar sein, ohne tiefer in flex-Anweisungen einzusteigen und reichlich am Template umbauen zu müssen. Falls das Template selbst keine solchen Einstellmöglichkeiten hat.


    Du könntest die Module doppelt anlegen/anzeigen, in verschiedenen Positionen, aber je nach Bildschirmbreite, per CSS den einen oder anderen Bereich ausblenden. Sind's viele Module, geht das nat. heftig auf die Ladezeiten. Was gerade für Smartphones etc. Sünde ist.


    Weitere Variante den Advanced Module Manager von RegularLabs verwenden. Zwar musst dann auch die Module doppelt anlegen, aber es gibt Einstellungen, welche auf welcher Geräteart geladen werden (Mobil, Tablet, Desktop).

    Vielleicht geht aber sogar noch mehr. Kenn das Ding nicht so genau.


    Weitere Variante: Auf die Mehrspaltigkeit verzichten...

    aber wer hat schon eins für alpha-versionen?

    Da kennst mich schlecht. Weiß nicht, wie viele mühsame Erweiterungs-Programmierungen, die ich auf Testseiten gemacht habe und dann länger pausiert habe, beim Neuaufsetzen blöde in's Nirvana geschickt habe ;)

    Nachdem ich ein eigenes Plugin installiert habe, ist die DB-Fix-Aufforderung wieder da. Aber dafür das Plugin unter Erweiterungen NICHT zu sehen. Per "Überprüfen" geht's dann aber. Am Plugin liegt's nicht. Eh fast nix drin.

    Es gab noch einen Hinweis auf Datenbank-Fix.

    Selbst bei einer Neuinstallation, heutiges Nightly, und Installation Blog-Sample-Datas (weiß der Teufel, an was es nun liegt) wird unter "System" ein DB-Fehler angezeigt, den man erst fixen muss.


    Leider zeigt Joomla4 die jeweiligen Fehler bzw. Tabellen ja nicht mehr an. Kann man also nur rätseln...

    Und die "einfachen" Redirect-Regeln sind generell mit äußerster Vorsicht zu genießen. Noch dazu, wenn viele verwendet werden. Weil sie nicht exakt matchen. Und die richtige Reihenfolge einen dann zum Wahnsinn treiben kann.


    Aber sie können sehr praktisch sein, wenn sich bspw. nur ein Ordner mit pdfs geändert hat. Ein Typo3 -> Joomla-Beispiel:

    Code
    Redirect permanent /fileadmin/opitz/Literaturliste/ /images/opitz/Literaturliste/

    Und weil es eben nicht exakt matcht, werden auch Unterordner gleich berücksichtigt.


    Ein altes

    Code
    /fileadmin/opitz/Literaturliste/fritzilein/lampe.pdf

    findet damit sein neues Ziel, obwohl /fritzilein/ in der Regel nicht enthalten

    Code
    /images/opitz/Literaturliste/fritzilein/lampe.pdf

    So funktionierts auf meiner Testseite:

    Apache Configuration
    RewriteCond %{REQUEST_URI} ^\/index\.php$
    RewriteCond %{QUERY_STRING} ^id=11$
    RewriteRule .* /erste-manschaft/spieltag-01.html? [R=301,L]

    Wenn Uri exakt gleich "/index.php",

    UND exakt Query-String (der Teil hinter dem Fragezeichen in der URL) gleich "id=11" (nicht mehr und nicht weniger),

    dann leite um und entferne den Query-String (das ist die Magie des Fragezeichens hinter dem "html").

    Wenn der Querystring nicht entfernt wird, interpretiert den Joomla ggf. als irgendwas anderes. Z.B. eine Kategorie-ID. Muss nicht, kann aber.


    Möglichst früh in der htaccess setzen, damit keine Joomla-Regeln oder sonstige irgendwas damit anstellen können.


    EDIT: Und verwendet doch bitte den Code Button im Editor für Codes. Seht ja selber, dass man das bei Euch kaum lesen kann...