ilch Forum » Ilch CMS 2.X » Module und Modifikationen » falsches Timestam in RadioHoererCharts

Geschlossen
  1. #1
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    Hallo Community,

    seit kurzem habe ich mir das Modul RadioHoererCharts V1.4.3 runtergeladen und installiert. Es funktioniert soweit einwandfrei, bis auf das Erstell Datum, welches nur im Adminbereich zu sehen ist. m.E.n. muss ein Timestamp-Fehler vorliegen, welches beim Speichern verursacht wird. In der DB wird bei datecreate bei allen Titeln der Wert 0000-00-00 00:00:00 angezeigt, im Adminbereich bei allen Titeln steht 30.11.-0001 00:00.

    Ich vermute mal, dass der Fehler in der Datei views/admin/index/treat.php zu suchen ist.

    if($entrie != ''){
    $datenow = new \Ilch\Date($entrie->getDateCreate());
    echo $datenow->format('d.m.Y H:i');
    }else{
    echo $this->getTrans('new');
    }

    Kann mir da mal einer weiterhelfen, dass das korrekte Eintragdatum in der DB übergeben wird?
    Wäre vllt. auch eine direkte Frage an den Autor des Moduls "hhunderter".

    Danke schon mal für die Hilfe.


    verwendete ilch Version: 2.1.x
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Also wie es aussieht, wird einfach gar kein Datum beim Erstellen angegeben.

    Du könntest vorm Speichern in der Datenbank einfach noch fix das Datum beim Model setzen.

                    if ($validation->isValid()) {
                        if ($this->getRequest()->getParam('id')) {
                            $hoererchartsModel->setId($this->getRequest()->getParam('id'));
                        }else{
                            $hoererchartsModel->setDateCreate(new Date());
                            if ($this->getUser()) $hoererchartsModel->setUser_Id($this->getUser()->getId());
                        }
    
                        if (!$this->getRequest()->getParam('suggestion')) $hoererchartsModel->setSetFree($this->getRequest()->getPost('setfree'));
                        $hoererchartsModel->setInterpret($this->getRequest()->getPost('interpret'))
                            ->setSongTitel($this->getRequest()->getPost('songtitel'))
                            ->setVotes(0);
    
                        if ($this->getRequest()->getParam('suggestion')) $hoererchartssuggestionMapper->save($hoererchartsModel);
                        else $hoererchartsMapper->save($hoererchartsModel);


    Alles andere war mir zu wirr, kann also sein, dass ich irgendwas übersehen hab.


    Zuletzt modifiziert von dastiii am 22.07.2020 - 00:30:40
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    Hallo dastiii,

    danke für deine schnelle Hilfsbereitschaft, doch diese zus. Zeile verursacht ein Fatal Error:

    Fatal error: Uncaught Error: Class 'Modules\RadioHoererCharts\Controllers\Admin\Date' not found in /var/www/vhosts/hfr1.de/httpdocs/application/modules/radiohoerercharts/controllers/admin/Index.php:172 Stack trace: #0 /var/www/vhosts/hfr1.de/httpdocs/application/libraries/Ilch/Page.php(237): Modules\RadioHoererCharts\Controllers\Admin\Index->treatAction() #1 /var/www/vhosts/hfr1.de/httpdocs/application/libraries/Ilch/Page.php(130): Ilch\Page->loadController() #2 /var/www/vhosts/hfr1.de/httpdocs/index.php(63): Ilch\Page->loadPage() #3 {main} thrown in /var/www/vhosts/hfr1.de/httpdocs/application/modules/radiohoerercharts/controllers/admin/Index.php on line 172

    Es muss wohl noch wo anders gesetzt werden.

    Ich hab jetzt mal in der view/admin/index/treat.php am Ende nach </form> folgenden php code hinzugefügt, um mir das aktuelle Datum und die aktuelle Uhrzeit anzeigen zu lassen, was auch funktioniert.

    <?php
    $hourdiff = "2"; /* 0=Winterzeit, 2=Sommerzeit */
    $timeadjust = ($hourdiff * 60 * 60);
    $melbdate = date("d.m.Y H:i",time() + $timeadjust);
    print (" $melbdate");
    ?>

    Ergebnis war: 22.07.2020 14:41


    Die treat.php führt die Speicherung aus, aber mit falschem Timestamp. In der DB steht 0000-00-00 00:00:00 und im Adminbereich wird 30.11.-0001 00:00 angezeigt.
    Zeile 12 in der treat.php $datenow = new \Ilch\Date($entrie->getDateCreate()); scheint offensichtlich nichts auszuführen, denn Zeile 13 echo $datenow->format('d.m.Y H:i'); gibt kein echo zurück.


    Zuletzt modifiziert von WeLo am 22.07.2020 - 15:33:42
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    hhunderter Entwickler
    Registriert seit
    12.08.2018
    Beiträge
    501
    Beitragswertungen
    87 Beitragspunkte
    Hi,
    ich konnte dein Problem nachstellen...
    Würde mich freuen wenn du diesen fix ausprobieren würdest und dann eine kurze rückmeldung geben:
    github.com/hhunderter/radiohoerercharts
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    Hallo hhunderter,

    jetzt stimmt das Erstell Datum und die Uhrzeit. Besten Dank für deine Bemühungen und das fix.
    Darf man fragen wo der Fehler lag? Würde evt. weiterhelfen, da ich ja auch Programmiere.
    Ich konnte nur nicht den korrekten Speichern Vorgang finden. Man möchte ja nicht wegen jeder
    Kleinigkeit nerven. zwinker

    Bei ilch 1.1P konnte ich mich zurecht finden und hab da auch viele eigene Projekte eingebunden,
    aber jetzt mit dem neuen ilch 2.1.36 und PHP7 ist das nicht mehr so einfach.

    Nochmals vielen Dank für deine Bemühungen.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    hhunderter Entwickler
    Registriert seit
    12.08.2018
    Beiträge
    501
    Beitragswertungen
    87 Beitragspunkte
    Kein Problem dafür bin ich unter anderem da zwinker

    ich habe das Modul ja für Ilch2 umgesetzt also kannst mich ruhig auch "nerven" oder mir verbesserungen mittteilen, dass andere auch davon was haben.
    Oder halt ein pull requests auf das Modul machen dann gucke ich mir das an.

    Der Fehler lag darin das das Datum nicht mit gespeichert wurde github.com/hhunderter/radiohoerercharts/commit/2dcc6e4e6e8bb4026a30a322d415f77f24f39a10#diff-939c7b7e0eb87dcc72393d9638be4534R140
    habe da wohl durch eine umstellung was vergessen zu übergeben...
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    OK, danke für die Info. Ich werde wohl noch eine Weile brauchen, um mich im Script zurecht zu finden. zwinker

    Ich glaube, das geht auch anderen so. Wenn ich ein Projekt programmiere, weis ich auch wo Fehler zu suchen und zu finden sind. Ich denke, dass ist bei dir nicht anders. Du weist eben am besten, wo Du in deinem Script suchen musst.

    Du möchtest einen Verbesserungsvorschlag?

    Ja, da hätte ich wahrlich einen. Die Hörercharts würden sich noch besser machen, wenn man nach Platz, also vor Interpret, noch ein Bild 30x30 oder 40x40 pixel vom Cover oder Interpret, im Adminbereich über die treat.php einfügen könnte. Wenn kein Bild ausgewählt wurde, soll einfach ein neutrales Bild gesetzt werden. Das eilt aber nicht. Wenn Du mal viel Zeit und Lust hast, kannst Du es ja mal versuchen und mir dann Bescheid geben. zwinker

    Nochmals vielen Dank für die Info und die Bemühung und dem fix.


    Zuletzt modifiziert von WeLo am 24.07.2020 - 22:24:34
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    hhunderter Entwickler
    Registriert seit
    12.08.2018
    Beiträge
    501
    Beitragswertungen
    87 Beitragspunkte
    Deinen Vorschlag habe ich mal vorgemerkt github.com/hhunderter/radiohoerercharts/issues/1
    Bei der module Programmierung wenn du da Fragen oder Probleme hast einfach im forum fragen.
    Ich gebe zu die wiki ist nicht gerade vollständig meine Kenntnisse zu ilch2 hab ich mir auch nach und nach angeeignet und man lent ja nie aus zwinker
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    ZitatZitat geschrieben von WeLo
    Hallo dastiii,

    danke für deine schnelle Hilfsbereitschaft, doch diese zus. Zeile verursacht ein Fatal Error:

    Fatal error: Uncaught Error: Class 'Modules\RadioHoererCharts\Controllers\Admin\Date' not found in /var/www/vhosts/hfr1.de/httpdocs/application/modules/radiohoerercharts/controllers/admin/Index.php:172 Stack trace: #0 /var/www/vhosts/hfr1.de/httpdocs/application/libraries/Ilch/Page.php(237): Modules\RadioHoererCharts\Controllers\Admin\Index->treatAction() #1 /var/www/vhosts/hfr1.de/httpdocs/application/libraries/Ilch/Page.php(130): Ilch\Page->loadController() #2 /var/www/vhosts/hfr1.de/httpdocs/index.php(63): Ilch\Page->loadPage() #3 {main} thrown in /var/www/vhosts/hfr1.de/httpdocs/application/modules/radiohoerercharts/controllers/admin/Index.php on line 172

    Es muss wohl noch wo anders gesetzt werden.

    Ich hab jetzt mal in der view/admin/index/treat.php am Ende nach </form> folgenden php code hinzugefügt, um mir das aktuelle Datum und die aktuelle Uhrzeit anzeigen zu lassen, was auch funktioniert.

    <?php
    $hourdiff = "2"; /* 0=Winterzeit, 2=Sommerzeit */
    $timeadjust = ($hourdiff * 60 * 60);
    $melbdate = date("d.m.Y H:i",time() + $timeadjust);
    print (" $melbdate");
    ?>

    Ergebnis war: 22.07.2020 14:41


    Die treat.php führt die Speicherung aus, aber mit falschem Timestamp. In der DB steht 0000-00-00 00:00:00 und im Adminbereich wird 30.11.-0001 00:00 angezeigt.
    Zeile 12 in der treat.php $datenow = new \Ilch\Date($entrie->getDateCreate()); scheint offensichtlich nichts auszuführen, denn Zeile 13 echo $datenow->format('d.m.Y H:i'); gibt kein echo zurück.


    Zuletzt modifiziert von WeLo am 22.07.2020 - 15:33:42


    Jo sorry, hab nen Teil vergessen zu kopieren. nachdenken

    Da fehlte noch das use-Statement oder statt Date \Ilch\Date, aber nun wurds ja entsprechend abgeändert.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    @hhunderter

    Kannst Du mir bitte mitteilen, wo und wie ich im Adminbereich unter Verwaltung die Anzeige so anzeigen lassen kann, dass die Reihenfolge der gevoteten Titel nach der Anzahl der Stimmen absteigend angezeigt werden? Beim Auswerten wäre das sehr erleichternd, ansonsten muss man ständig rauf- und runterscrollen, was doch sehr lässtig ist.

    Ich hab es in der views/admin/index.php in Zeile 65 mit sort() probiert, erhalte aber immer ein Parse Error.
    Entweder bin ich an der falschen Stelle, oder es ist ein Denkfehler bei mir.

    Wäre nett, für eine kurze Antwort.

    PS.: Ich kann auch im TS3 erscheinen und wir können uns dort unterhalten, wenn es genehm ist.
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    @hhunderter

    Hallo hhunderter,

    ein Kollege und ich sind der Meinung, dass die Vote-Liste auf der HP, für den User, nicht nach votes sortiert sein sollten, was sie jedoch sind. Das macht aber keinen Sinn, weil man dann sofort erkennen kann, wie die Reihenfolge der Platzierung aussieht und somit das Ergebnis für die Zuhörer bereits einsehbar ist und die sich ggf. an künftigen Votes nicht mehr beteiligen. Ich habe daher die Datei radiohoerercharts/controllers/Index.php wie folgt geändert:

    Zeile 61

    $this->getView()->set('entries', $hoererchartsMapper->getEntriesBy(['setfree' => 1], ['votes' => 'DESC','id' => 'DESC']));

    geändert in:

    $this->getView()->set('entries', $hoererchartsMapper->getEntriesBy(['setfree' => 1], ['datecreate' => 'ASC','id' => 'ASC']));

    Also nicht nach votes absteigend sortiert, sondern nach datecreate aufsteigend. Dies bringt die Ansicht unsortiert durcheinander, was ja auch Sinn ergibt. Nur im Adminbereich sollen die Platzierungen nach Votes sortiert sein, was wir ja bereits geändert hatten und funktioniert. Diese Info soll dir dazu dienen, dies für zukünftige Updates zu berücksichtigen, danke.


    Zuletzt modifiziert von WeLo am 06.08.2020 - 13:42:59
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    hhunderter Entwickler
    Registriert seit
    12.08.2018
    Beiträge
    501
    Beitragswertungen
    87 Beitragspunkte
    Die Zeile 61 bezieht sich auf die anzeige wenn schon gevotet wurde siehe zeile 59
    ...->is_voted...
    .
    in der Zeile 96
    $this->getView()->set('entries', $hoererchartsMapper->getEntries(['setfree' => 1]));
    ist die Ausgabe für alle anderen User (also die noch nicht abgestimmt haben) da wird nach ID quasi sortiert was das erstelldatum auch wiedergibt zwinker

    habe auch schon ein Update auf mein Github für die Sortierung gemacht github.com/hhunderter/radiohoerercharts


    Zuletzt modifiziert von hhunderter am 06.08.2020 - 18:09:59
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    WeLo Mitglied
    Registriert seit
    22.05.2012
    Beiträge
    108
    Beitragswertungen
    17 Beitragspunkte
    Ich hab grad das Update runtergeladen und installiert.
    Jetzt stimmt die Sortierung im Adminbereich wieder nicht mehr. Es wird wieder alles durcheinander angezeigt. Und auf der HP wird wieder nach votes absteigend angezeigt.
    Ich setze wieder zurück auf die 1.4.4 Version.


    Zuletzt modifiziert von WeLo am 06.08.2020 - 20:27:14
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten