Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: Contao 4 Hooks

  1. #1
    Contao-Nutzer
    Registriert seit
    25.07.2015.
    Ort
    Graz
    Beiträge
    59

    Standard Contao 4 Hooks

    Hallo,
    ich plane meine Seite von Contao 3.5.6 auf Contao 4.8 umzustellen.
    Daher habe ich mal mit xampp eine lokale Installation eingerichtet und die Webseite läuft in der Grundfunktionalität bereits.
    Leider bringe ich aber die Formular Hooks nicht zum laufen. Habe mich mal mit dem Composer gespielt, wie auch mit der Developers Doku https://docs.contao.org/dev/framework/hooks/.
    Zuerst mal 2 grundsätzliche Fragen zur Verzeichnisstruktur, bezugnehmend auf die Developers-Doku zu den Hooks:
    Meine Installation hat den Pfad F:xampp\v7\htdocs\contao-48 und da liegt dann eben Contao 4.8. mit den entsprechenden Verzeichnissen, wie web, vendor, files, templates usw.
    Wenn im Guideline von "src/EventListener/AccountListener.php" die Rede ist, bin da direkt unter contao-48\src oder unter vendor\contao\src, oder soll es unter contao-48 noch ein contao-Verzeichnis geben, wo dann alles liegt ?
    Wo soll das App Verzeichnis liegen ?
    Unter Contao 3.5. hatte ich die config.php für den betreffenden Hook unter system/modules/hookxxx/config, wo muss die config.php unter Contao 4.x liegen ?
    Wenn man von ROOT spricht, reden wir von ...\contao-48 ?
    Sorry für diese grundsätzlichen Fragen, aber ich zweifle momentan, ob ich das alles richtig verstanden habe, weil ich doch schon einige Tage damit herum spiele.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    In vendor/ änderst du nie etwas. Die Pfade sind immer relativ zum Ordner deiner Contao Installation.

  3. #3
    Contao-Nutzer
    Registriert seit
    25.07.2015.
    Ort
    Graz
    Beiträge
    59

    Standard SQL Abfragen nicht mehr kompatibel ?

    Hallo,
    irgendwie laufen meine SQL Queries nicht mehr im Contao 4 - nach der Umstellung von Contao 3.
    Die Select Statements sind ok, aber die Update Query läuft nicht mehr. Bringt auch keine Exception, schreibt nur nichts in die DB. Kopiere ich den gleichen SQL String in den MySql Admin, wird der Update richtig durch geführt.

    Das bisher unter Contao-3 funktionierende Statement:
    $sql = "UPDATE reisen ";
    $sql .= "SET p_firstname='$pfname',p_lastname='$plname',k_name= '$kname',kf_name='$kfname',m_system='$msys',";
    $sql .= "periode='$periode',modUser='$uname',tmstamp='$tms tamp' ";
    $sql .= "WHERE id='$id'";
    $dataBase->prepare($sql)->execute();

    Danach fand ich nach ein bisschen googeln die Variante:
    $sql = "UPDATE reisen ";
    $sql .= "SET p_firstname=?, p_lastname=?, k_name=?, kf_name=?, m_system=? WHERE id=?";
    $dataBase->prepare($sql)->execute($pfname, $plname, $kname, $kfname, 'N', $id);
    Das bringt dann eine Exception mit "too few parameters to build the query.

    Ebenso wie diese Variante:
    $set = array('p_firstname' => $pfname, 'k_name' => $kname, .....);
    $this->Database->prepare("UPDATE reisen %s WHERE id=?")->set($set)->execute($id);

    Möglicherweise hat es mit dem tschechischen Zeichen in den Daten zu tun ?

    Zusätzlich habe ich noch das Problem, dass folgender Command nicht mehr funktioniert:
    // angemeldeter User
    // $this->import("FrontendUser","User");
    Geändert von stefanwin (15.02.2020 um 12:29 Uhr)

  4. #4
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wo hast Du $dataBase her?
    Das sollte dann vorher ein Zeile geben:
    PHP-Code:
    $dataBase = \Database::getInstance(); 

  5. #5
    Contao-Nutzer
    Registriert seit
    25.07.2015.
    Ort
    Graz
    Beiträge
    59

    Standard

    Genauso habe ich es auch gemacht ...
    Aber eben doch nicht genauso :-)
    Ich hatte $dataBase = \Contao\Database::getInstance(); Habe jetzt das \Contao weggelassen und alles läuft. Danke!!
    Interessant, dass die select - statements trotzdem liefen.

    Für das Import("FontendUser" .....) habe ich auch schon die Lösung gefunden, nach einem kleinen Ausflug in den Contao Code:
    $loggedUser = \FrontendUser::getInstance();
    Geändert von stefanwin (15.02.2020 um 19:28 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •