Beiträge von axl-g

    J5.2
    Hoster Ionos
    php 8 irgendwas
    Seite: graf-automobile.de (im Aufbau)

    Ich habe meine Komponente soweit, dass ich sie in den Online-Testbetrieb bringen will. Beim Installieren bekomme ich aber immer eine Fehlermeldung, und zwar:

    Warnung JInstaller: :Install: SQL-Datei „[ROOT]/administrator/components/com_gdv4/sql/install.sql“ nicht gefunden

    Die Anweisung in der Manifestdatei (gdv4.xml) sieht so aus:

    Code
    <install>
    	<sql>
    		<file driver="mysqli" charset="utf8">sql/install.sql</file>
    	</sql>
    </install>

    Die Dateistruktur sieht so aus:

    - admin
    -- sql
    --- install.sql

    Ich habe schon mit verschiedenen Unterordnern gearbeitet, den Ordner admin in administrator umbenannt, ein unterverzeichnis com_gdv4 eingeführt, erhalte aber immer das gleiche Ergebnis.

    Wo liegt der Fehler?

    Hallo,

    ich habe ein Problem mit der Ausführung geplanter Aufgaben: Es sollte täglich eine Getanfrage abends um 19:10 Uhr ausgeführt werden. Der Termin sollte auch einigermassen eingehalten werden, weil andere Programme Daten zu liefern. In WIN10 ist eine Task eingestellt, die mir täglich (nächtlich) den Browser startet und die Seite aufruft. Wenn ich nun aber die Task z.B. zu Testzwecken zu einer anderen Zeit aufrufe, bleibt im Tab "Aufgabe bearbeiten" die Ausführungszeit auf 19:10. Im Tab "Verlauf der Ausführung" steht dann aber für die nächste Ausführung die Zeit der letzten Ausführung plus 1 Tag. Das scheint sich dann auch immer so fortzusetzen. Die vorgesehene Ausführungszeit wird nicht berücksichtigt, weil Joomla anscheinend sagt: "nee, hab ich heute schon ausgeführt, mach ich erst morgen um 14:00 Uhr wieder!" Das macht aber keinen Sinn, weil ich morgens bei Arbeitsbeginn die aktualisierten Daten brauche.
    Der Lazy-Zeitplaner ist aktiviert.

    Das ganze wäre ja nun kein Problem, wenn es nur um die Daten ginge, die ich hier im Haus benötige, kurz nach dem Aufruf des Browsers stehen sie mir ja zu Verfügung. Tatsächlich aber soll, der Taskplaner mir abends die aktualisierten Daten auf die Webseite laden, damit sie früh morgens dort bereit stehen. Die Daten für die Webseite sind recht umfangreich (SQL und viele Bilder) und dauert mehrere Minuten, was unter Tag mit einigen Zugriffen nicht besonders erfreulich ist. Ausserdem steht den Besuchern der Webseite unter Umständen ein Datensatz zur Verfügung, der im Extremfall fast einen ganzen Tag alt ist.

    Kann ich irgendwo einstellen, dass die eingestellte geplante Zeit auch tatsächlich eingehalten wird, oder muss ich ein Zeitintervall von wenigen Stunden einstellen - was ich wegen der großen Datenmengen nur ungern möchte?

    Hallo,

    in den Adminsitrator Logs wird immer die Zeit GMT angegeben. Ich hätte aber gerne MEZ bzw MEZ Sommerzeit. Im Joomla Testsystem ist als Zeitzone Berlin eingetragen und auch der Server ist korrekt eingestellt. Gleiches tritt auch auf meiner lokalen Produktivseite mit J5.1.0 und php 8.1, sowie auf der Remote Testinstallation bei ionos mit J 4.4.6 und php 8.1 auf.

    Hat jemand eine Idee ob und wie man das auf MEZ umstellen kann?

    Joomla ist halt menügesteuert.
    Ich habe dein Anliegen noch nicht genau verstanden, hast es ja mittlerweile auch gelöst, aber wenn ich was von Modulen und Startseite lese, muss ich immer an den "Advanced Module Manager" denken, der mir schon oft bei derartigen Problemen geholfen hat.

    Mein Problem war, dass mir bei der mehrstufigen Komponenten "Kategorienliste -> Objektliste -> Objekt" der Bezug zum Menüpunkt der Kategorienliste verloren gegangen ist und ich wußte nicht, wie ich diesen Bezug in die nächste Stufe mitnehmen konnte. Vielleicht konnte ich es damit besser erklären.
    Vielleicht aber auch anschaulicher auf der (zwar noch aktuellen, aber alten) Internetseite: https://graf-nutzfahrzeuge.de/fahrzeuge

    Kategorie (zB. Transporter) -> Liste -> einzelnes Fahrzeug

    Noch zur Ergänzung:

    Damit auch die Pagination einwandfrei verlinkt muss im zweiten Codefenster <form> wie folgt angepasst werden:

    PHP
    <form action="<?php echo JRoute::_('index.php?option=com_gdv4&view=fahrzeuge&Itemid=' . $vehiclesItemId); ?>" id="fahrzeuge" class="gdv4" method="post"> 

    Ich habe eine Lösung gefunden. Falls es jemanden interessiert:

    Wichtig ist also nicht <form>, sondern dass bei <input> unter value die Menu Item Id mit aufgeführt wird. Beim Aufruf des einzelnen Objektes (Fahrzeug) aus der Liste analog vorgehen:

    Das Formular benötige ich hier für was anderes, den Aufruf habe ich daher nur als Link ausgeführt. Aber auch hier ist die Menu Item Id wichtig.

    Fazit: bei forms, links und auch pathway immer die Menu Item Id mitgeben!

    Hallo,

    ich arbeite an einer Komponente die Datenblätter von gebrauchten Fahrzeugen darstellt. Es soll die neue Version dieser Seite werden: graf-nutzfahrzeuge.de/fahrzeuge

    Der Einstieg soll erfolgen über einen Menüpunkt "Fahrzeugkategorien".
    Die URL lautet hier: Jtest/index.php/fahrzeugkategorien?view=gdv4
    erwartet hätte ich Jtest/fahrzeugkategorien, was ja so auch funktioniert.

    Durch Anklicken einer Kategorie soll eine Liste von Fahrzeugen aufgerufen werden. Ich verwende

    PHP
    <form id="kategorien" method="post" action="<?php echo Route::_('fahrzeuge?'); ?>" >
    </form>

    hier erhalte ich analog: Jtest/index.php?option=com_gdv4&view=fahrzeuge&fahrzeugart=Transporter
    hier hätte ich gerne Jtest/fahrzeuge?fahrzeugart=Transporter

    Analog um nun das einzelne Fahrzeug auf zu rufen:

    PHP
    <form id="fahrzeuge" method="post" action="<?php echo Route::_('fahrzeug?'); ?>" >
    </form>

    Hintergrund ist, dass ich bestimmte Module auf der Seite nur auf der Startseite anzeigen lassen will. Bei Aufruf der Fahrzeugkategorien funktioniert das auch, wenn ich aber die Fahrzeuge (liste) aufrufe, springt das System aber nicht in den Menüpunkt Fahrzeuge sondern in die Startseite und zeigt mir ausser der Fahrzeugliste auch die installierten Module an. Das gleiche passiert dann auch, wenn ich über die Breadcrumbs zurück zu den Fahrzeugkategorien springen will.

    Eine default.xml exisiert für jede View und ich habe auch jeweils einen Menüpunkt angelegt. Wenn ich diese Menüpunkte anklicke habe ich jeweils eine korrekte Verlinkung auf die entsprechende View (bei fahrzeuge natürlich mit ?fahrzeugart=Art, manuell ergänzt). Die Module werden dann nicht angezeigt.

    Wie muss ich in den forms die Menüpunkte korrekt aufrufen? Oder was muss ich im Menü einstellen? Habe ich einen Denkfehler irgendwo?

    Beste Grüße aus Neustadt

    Alexander

    Mit dem Ordner von ausserhalb habe ich überhaupt kein Problem, das ist das lokale System.

    Ich habe es nur mit ins Spiel gebracht um zu zeigen, dass der Zugriff IMMER mit dem Schrägstrich möglich ist.

    Das Problem tritt erst auf, wenn ich mit dem online-System arbeite, dort greife ich auf den images Ordner von Joomla zu. Und zwar einmal ohne den Schrägstrich bei php Zugriffen, und einmal brauche ich den Schrägstrich, wenn ich mit Javascript zugreife.

    Das Template ist ein Child von Cassiopeia mit wenigen CSS-Anpassungen.

    Das lokale Verzeichnis ist ein Verzeichnis ausserhalb des Joomla-Stammverzeichnisses, aber gleiche Festplatte.

    Hier noch eine weitere Information, die nach meinen heutigen Recherchen vielleicht auch von Bedeutung sein könnten:

    Lokal läuft Joomla auf einem Apache Webserver unter Windows, während die online-Installation auf einem Apache unter Linux läuft. Vielleicht hat das jeweilige Server-OS einen Einfluss auf die Pfadangabe, was allerdings nicht erklärt, warum online mal mit und einmal ohne einleitenden Schrägstrich geroutet wird.

    Joomla 4.4.3

    php-Version online 8.1.27

    php-Version lokal 8.1.10

    online noch in nicht-öffentlicher Testversion, Vorgängerversion mit J3 hier: https://graf-nutzfahrzeuge.de/fahrzeuge?view=fahrzeuge

    (auf ein beliebiges Fahrzeugbild klicken, in der Einselansicht mit dem Mauszeiger über die kleinen Vorschaubilder fahren. Das ist der gewünschte Effekt)

    Hallo,

    ich habe ein eigenartiges, weil unterschiedliches Verhalten bei Pfadangaben in der online und in der lokalen Installation.

    Beim Verweis auf ein Bilderverzeichnis muss ich in der lokalen Version den Pfad so angeben:

    /Daten/Fahrzeuge/Fahrzeugbilder/ - mit einleitenden Schrägstrich

    und bei der online Version so:

    images/fahrzeugbilder/ - ohne einleitenden Schrägstrich

    Da ich die Pfadangabe sowieso irgendwo hinterlegen muss (Tabelle #__gdv4_config), könnte ich damit eigentlich leben, wenn nicht ein Folgefehler auftreten würde. Der tritt auf, wenn ein Javascript ausgeführt wird. Im einen Fall (lokal) findet das Script die Bilder, im anderen (online) nicht. Das heißt, die Vorschaubilder werden immer angezeigt. Beim Überfahren mit dem Mauszeiger verschwindet in der Online-Version aber das Hauptbild und erscheint auch bei mouseout nicht wieder. Das andere Bild wird gar nicht erst in der großen Ansicht angezeigt. Lokal funktioniert alles einwandfrei. Das ausserdem installierte Karoussell für das große Bild funktioniert in beiden Installationen.

    Wenn ich in der Online-Version den einführenden Schrägstrich setze, kann ich auf kein Bild mehr zugreifen, wenn ich ihn in der lokalen Version weg lasse genauso.

    Setze ich im Javascript den Schrägstrich, funktioniert es in der Online-Version, aber nicht mehr in der lokalen.

    Was läuft da schief?

    Das ist der Code mit dem Script:

    PHP
    <php $bilderpfad = $this->bildpfad;
    .....
    foreach ($bilder as $bild) {
    $bild_src = $bilderpfad . $bild; ?>
    <div class="fahrzeug_vorschaubild col-xl-2 col-lg-2 col-md-2 col-sm-3" >
    <a onmouseover="javascript:changeImg('<?php echo $bild_src; ?> ')" onmouseout="javascript:changeImg('<?php echo $bilderpfad . $bilder[0]; ?> ')"> 
    <img src="<?php echo $bild_src; ?>" alt="<?php echo $marke_modell; ?>, Interne Nummer: <?php echo $interne_nummer; ?>">  
    </a>
    </div>
    <?php } ?>

    Ich habe das jetzt entsprechend dem Vorschlag von Sieger66

    Zitat

    so lösen können:

    Code
    $result = JFactory::getDbo()->insertObject($tableName, $entry);

    Allerdings dauert das bei 10 Tabellen mit insgesamt ca. 17.000 Zeilen ganz schön lange, fast 4 Minuten.

    Das ist die vollständige Funktion:

    Joomla 4.4.2

    eigene Komponente

    läuft auf einem öffentlichen Server mit php 8.1.27, in einem geschützten Testbereich

    mysql 8.0.32

    Hallo,

    ich stehe irgendwie auf dem Schlauch. Beim Versuch den Inhalt einer XML-Datei in die Datenbank ein zu pflegen, bekomme ich folgende Fehlermeldung:

    Error inserting data into `#__dealer_vehicles`: Column count doesn't match value count at row 1

    Der Fehler tritt bereits bei der ersten Tabelle auf. Wenn ich in der XML-Datei diese Tabelle herausnehme, habe ich den gleichen Fehler auch bei der nächsten Tabelle.

    Der (meiner Meinung nach) relevante Code sieht so aus:

    Wobei die Query für Fields (columns) und Values so aussieht:

    $query->values:

    Code
    object(Joomla\Database\Query\QueryElement)#756 (3) {  ["name":protected]=>  string(2) "()"  ["elements":protected]=>  array(6) {    [0]=>    int(170218)    [1]=>    int(1400)    [2]=>    int(1)    [3]=>    NULL    [4]=>    float(1600)    [5]=>    float(1904)  }  ["glue":protected]=>  string(3) "),("
    }

    $query->columns:

    Code
    object(Joomla\Database\Query\QueryElement)#757 (3) {  ["name":protected]=>  string(2) "()"  ["elements":protected]=>  array(6) {    [0]=>    string(23) "`dealer_vehicle_number`"    [1]=>    string(16) "`vehicle_number`"    [2]=>    string(23) "`out_is_ready_for_sale`"    [3]=>    string(25) "`out_sales_contract_date`"    [4]=>    string(30) "`out_recommended_retail_price`"    [5]=>    string(16) "`out_sale_price`"  }  ["glue":protected]=>  string(1) ","
    }

    Mir fällt dabei auf, dass 'glue' bei den values "),(", bei den columns aber "," ist.

    Die Datenbanktabelle hat ebenfalls 6 Spalten.

    Ich habe auch schon versucht, die Values mit '$db->quoteName((string)' einzusetzen, das Ergebnis war aber das Gleiche.

    Hat jemand eine Idee, was ich da falsch mache?

    Danke für jede Information.