Ergebnis 1 bis 9 von 9

Thema: simple_ajax -> BE_USER_LOGGED_IN wird nicht aufgelöst

  1. #1
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard simple_ajax -> BE_USER_LOGGED_IN wird nicht aufgelöst

    Hallo zusammen,

    habe per simple_ajax und vue.js einen Zugriff auf eine eigene Klasse umgesetzt, um dort vorhandene News über folgende Funktion aufzugreifen.

    PHP-Code:
        public function getNews()
        {

            
    $newsArchives = array($this->archives['news']);

            
    $result NewsModel::findPublishedByPids($newsArchives$blnFeatured=null$this->intLimit$this->intOffset$arrOptions=array());

            
    //  find last news
            
    $maxResult NewsModel::findPublishedByPids($newsArchives);

            
    $countAll $maxResult->count();

            if (
    $result->count() > 0) {

                
    $i 1;
                while (
    $result->next()) {
    ... 
    Nun zu meinem Problem: Ich bekomme immer sämtliche News zurück, egal ob veröffentlicht oder nicht, ob in der Zukunft anzuzeigen oder nicht. In NewsModel.php habe ich dann mal bei findPublishedByPids nachgesehen, dort wird diese Prüfung öffentlich ja/nein, etc. nach folgender Abfrage vorgenommen:

    PHP-Code:
    if (!BE_USER_LOGGED_IN || TL_MODE == 'BE') {
    ...

    TL_MODE kann ich mir dort via AJAX tatsächlich ausgeben lassen, allerdings wird BE_USER_LOGGED_IN dort immer mit dem gleichen Wert ausgegeben, also BE_USER_LOGGED_IN = 'BE_USER_LOGGED_IN'.

    Hat jemand eine Idee warum? Liegt das am AJAX-Call?

    Liebe Grüße

    Christian

  2. #2
    Contao-Fan Avatar von Thraile
    Registriert seit
    17.12.2009.
    Ort
    Detmold
    Beiträge
    501
    Partner-ID
    6306

    Standard

    BE_USER_LOGGED_IN ist gesetzt, wenn du noch im Backend eingelogged bist .
    Definiert wird das entweder in der initialize (im mode TL_BE) oder im der FrontendIndex.php irgendwo.

  3. #3
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard

    Ja, es ist mir klar, dass das dort gesetzt wird. Nicht klar ist mir, warum diese Variable dann nicht leer ist, sondern mit der Variablenbezeichnung als String dargestellt wird. Gebe ich BE_USER_LOGGED_IN im vom AJAX-Request angesprochenen File per echo aus, erhalte ich 'BE_USER_LOGGED_IN' und nicht wie erwartet '' oder FALSE.

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

    Standard

    Diese Variablen werden gesetzt, wenn du SimpleAjaxFrontend.php benutzt. Welche Version der Extension setzt du eigentlich ein? Für Contao >= 3.2 wäre der 3.2 Branch zu empfehlen: https://bitbucket.org/leo-unglaub/co...ax/src/?at=3.2
    Leider gibt es dafür keinen Release - müsstest du manuell runterladen bzw. den Branch in deiner composer.json setzen.

  5. #5
    Contao-Fan Avatar von Thraile
    Registriert seit
    17.12.2009.
    Ort
    Detmold
    Beiträge
    501
    Partner-ID
    6306

    Standard

    Zitat Zitat von dillscher Beitrag anzeigen
    Gebe ich BE_USER_LOGGED_IN im vom AJAX-Request angesprochenen File per echo aus, erhalte ich 'BE_USER_LOGGED_IN' und nicht wie erwartet '' oder FALSE.
    Und? Bist du noch im Backend angemeldet? Zumindest scheint Contao in einem Cookie noch einen gültigen hash zu finden.

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

    Standard

    Wie gesagt, wenn 'BE_USER_LOGGED_IN' ausgegeben wird, dann hat er die SimpleAjax.php statt SimpleAjaxFrontend.php verwendet.

  7. #7
    Contao-Fan Avatar von Thraile
    Registriert seit
    17.12.2009.
    Ort
    Detmold
    Beiträge
    501
    Partner-ID
    6306

    Standard

    Anders herum . Die SimpleAjaxFrontend ruft ja auch nur die getLoginStatus auf. Es muss also ein gültiger BE-cookie vorhanden sein, oder nicht?

    Gesendet von meinem D5803 mit Tapatalk

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

    Standard

    Ja natürlich, aber dann ist die Variable immerhin gesetzt und es wird true oder false ausgegeben

  9. #9
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard

    Vielen Dank Euch beiden! War mein Denkfehler mit der Zugriff via SimpleAjax statt über SimpleAjaxFrontend. Schreibe ich mir mal hinter die Ohren :-). Hing die ganze Zeit beim Debugging an der SimpleAjax.php fest.

    Habe mir auch den von Dir spooky genannten Branch von bitbucket gezogen.

    Liebe Grüße

    Christian

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
  •