[gelöst] bestimmte Anzahl von Beiträgen erreicht

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • marrxx
    Contao-Nutzer
    • 06.08.2009
    • 48

    #1

    [gelöst] bestimmte Anzahl von Beiträgen erreicht

    Hallo Community,

    Für mein TL-Projekt wurde eine Funktion gewünscht, welche zu einer bestimmten Beitragsanzahl den entsprechenden Poster incl. Post anzeigt.

    Diesen Wunsch konnte ich auch mit folgendem per InsertTag {{file::xxx.php}} aufgerufenen PHP-Script realisieren:

    PHP-Code:
    $aktuell            =    3;        
    $anzahl        =    1000;
    $data = $this->Database->prepare("SELECT id,poster,tstamp FROM `tl_helpdesk_messages` Limit ". $anzahl .",1")->execute();
    $result = $data->numRows;
    if ($result > 0)
    {
        $postzeit = $data->tstamp;
        $diff = (time() - $postzeit) / (60*60*24) ;
            if ($diff < $aktuell)
            {
            echo "<div class=\"xbeitrag\">";
            echo "Herzlichen Gl&uuml;ckwunsch an " . $data->poster . " .<br />Es wurde der <a href=\"forum/message/". $nmi->id .".html\">" . $anzahl .". Beitrag </a>mit der Nummer #".$data->id." erstellt!"; 
            echo "</div>";
            }
    } 
    
    Dieses Script beglücktwünscht den 1000sten Beitrag für 3 Tage lang.

    So, nun zu meinem Problem.
    Ich habe eine Entwicklungsumgebung und ich habe eine Produktivumgebung. Beide befinden sich bei demselben Provider, allerdings unterschiedliche Server.
    In der Entwicklungsumgebung läuft das Script und der Produktivumgebung kommt folgender Fehler:
    Code:
    Call to a member function prepare() on a non-object in /var/www/web76/html/templates/anzahlbeitrag.php
    Aus lauter Verzweifelung habe ich mir lokal eine XAMPP-Umgebung aufgebaut und folgende Konstellation geprüft:

    TL PROD - DB PROD ->gleicher Fehler
    TL ENTW - DB PROD ->gleicher Fehler
    TL PROD - DB ENTW ->gleicher Fehler
    edit: TL ENTW - DB ENTW -> geht
    TL NEU - DB PROD -> gleicher Fehler

    HILFE!! Hat jemand eine Idee???

    Gruß
    Marrxx
    Zuletzt geändert von marrxx; 19.10.2009, 20:51.
  • FloydThreepwood
    Gesperrt
    • 22.07.2009
    • 113

    #2
    Erbt das PHP Script auch von einer TL-Klasse? $this->Database gibt es nur wenn man eine von Controller abgeleitete Klasse ausführt.

    Kommentar

    • marrxx
      Contao-Nutzer
      • 06.08.2009
      • 48

      #3
      Hallo FloydThreepwood,

      erstmal vielen Dank, das Du versuchst mir zu helfen.
      ich gebe zu, ich bin nicht so fit in OOP. Ich weiß nicht, ob die Klasse abgeleitet wurde, aber in der Entwicklungsumgebung funktioniert es ja, und da habe ich nichts anders gemacht.
      Wie bzw. wo müßte ich ich dann die Klasse ableiten?

      So was in der Art wie
      Code:
      class database extends Frontend
      vielleicht??

      Gruß
      Marrxx

      Kommentar

      • FloydThreepwood
        Gesperrt
        • 22.07.2009
        • 113

        #4
        genau, das was du da geschrieben hast sollte in

        PHP-Code:
        class MyClassName extends Frontend {
           public function theName() {
              [....]
           }
        }
        $objMy = new MyClassName();
        $objMy->theName(); 
        
        eingeschlossen sein. Dein Fehler ist Typisch für das fehlen eines solchen Rumpfes. Warum das jetzt einmal funktioniert und sonst nie kann ich dir leider auch nicht sagen. Du kannst mal mit Hilefe von print_r() gucken wir sich deine Objekte wo verhalten.

        MFG Jan

        Kommentar

        • marrxx
          Contao-Nutzer
          • 06.08.2009
          • 48

          #5
          Hallo FloydThreepwood,

          vielen Dank für Deinen Tip. Habe es hinbekommen. Den "Fehler" habe ich auch gefunden!!!
          In der Entwicklungsumgebung hatte ich ein Flashelement per insert_modul eingebunden, dieser insertTag hat mir auf der Seite die benötigte Klasse bereits instanziert. Darum hat es in der Entwicklungsumgebung funktioniert.
          Soviel zur identischen Installation beider Umgebungen.

          Danke nochmal.

          Gruß Marrxx

          Kommentar

          Lädt...