Contao-Camp 2024
Seite 3 von 8 ErsteErste 123457 ... LetzteLetzte
Ergebnis 81 bis 120 von 297

Thema: [calendar_editor] Kalender-Events im Frontend bearbeiten

  1. #81
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Ich habe aktuell leider recht wenig Zeit hierfür. Die HTML-Templates werde ich mir mal anschauen und der nächsten Version hinzufügen.

    Das mit den Default-Werten sollte über die Hooks gehen, die ich hier beschrieben habe. In der Hook-Funktion müsste man dann, wenn kein vorhandenes Event bearbeitet wird, und kein Submit stattfindet, die Checkbox setzen, also in etwa
    PHP-Code:
    $result['fields']['published']['value'] = '1'
    .

    Eventuell bau ich für die Veröffentlichung auch eine Option in das Modul ein.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  2. #82
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard Zusätzliche Feldwerte werden nicht in entsprechende Datenbank-Felder geschrieben

    Hallo zusammen,

    ich bin im Programmieren keine besonders große Leuchte, daher vermute ich mal, dass hinter meinem Problem mal wieder nur meine Unkenntnis steckt:

    Ich habe wie in der Anleitung geschrieben, das Frontend über den zusätzlichen Hook mit Feldern aus der Erweiterung Calender_Plus erweitert.
    Alles funktioniert so weit prima. Jedoch werden die Werte aus dem Frontend nur in die Details geschrieben.

    Weder beim Editieren noch beim Anlegen werden die Werte aus cep_location in das entsprechende Datenbank-Feld ge- bzw. überschrieben.

    Habe ich irgendetwas übersehen?

    Vielen Dank für Eure Hilfe.
    LG
    PAndroid

  3. #83
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    In der Anleitung steckt wahrscheinlich zuviel des Guten.

    Da werden ja zwei Hooks erläutert - einmal der zum Einfügen weiterer Felder, und danach der zum Ändern der Post-Daten vor dem Eintrag in die DB. In diesem zweiten Hook werden in dem Beispiel die cep_*-Werte wieder gelöscht und mit ins Detail-feld geschrieben. Du müsstes dann einfach diesen Teil löschen, also inder config den Hook
    PHP-Code:
    $GLOBALS['TL_HOOKS']['prepareCalendarEditData']['EditPlus'] = array('EventEditHookPlus''prepareData'); 
    entfernen und in der EventEditHookPlus.php die Funktion
    PHP-Code:
    public function prepareData($eventData
    löschen.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  4. #84
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo Gausi,

    vielen Dank für den Hinweis. Jetzt klappts...
    Super Erweiterung, super Support.
    LG
    PAndroid

  5. #85
    Contao-Nutzer
    Registriert seit
    15.11.2011.
    Beiträge
    81

    Standard Doppelbuchung verhindern ?

    Hallo Gausi,

    super Erweiterung, soweit ich das gelesen habe.
    Damit ich sie einsetzen kann, wäre aber folgende optionale Funktion nötig.

    Ein Zeitraum darf in einem Kalender nur einmal belegt werden, also eine Doppelbuchung muss mit einer Fehlermeldung verhindert werden. Dann könnte man die Erweiterung z.B. für Flugzeugreservierungen verwenden und pro Flugzeug einen Kalender anlegen.
    Hier muss dann natürlich verhindert werden, dass ein Flugzeug mehrfach gechartert wird.

    Könnte man so etwas einbauen und wenn ja, hast Du eine Idee ?

    Gruß
    Olli

  6. #86
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hallo olli1770,

    die Einträge im Kalender heißen im Backend zu Recht 'Event' und nicht 'Ressource'.
    Ich verstehe deinen Gedanken, aber es gibt eben zwischen Events und Ressourcen genau den von dir angesprochenen Unterschied: Eine Ressource kann zu einem Zeitpunkt nur einmal verwendet werden. Aber natürlich kann es im Kalender mehrere Veranstaltungen zur gleichen Zeit geben.

    Beide Objekte können Daten und Uhrzeiten / Zeiträumen zugeordnet werden.

    Bedenke aber, dass Gausis Erweiterung nur die Frontend-Eingabe für die Contao-Events ermöglicht. Für eine korrekte Verwaltung von Ressourcen müsste eine Doppelbelegung auch im Backend verhindert werden.
    Deine Anregung richtet sich also eher an den Contao-Core und die darin enthaltene Kalender/Event-Funktionalität.
    Ich stimme dir aber natürlich zu, dass es viele denkbare Einsatzmöglichkeiten für einen Ressourcen-Planer gäbe...

    Gruß, folkfreund

  7. #87
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard Event-Titel im Subject der Benachrichtung integrieren

    Hallo zusammen,

    ich würde gern den Eventtitel im Betreff der Benachrichtigung ausgeben lassen.
    Die betreffenden Stellen in der ModuleEventEditor.php habe ich schon gefunden. Mir fehlt jedoch das Wissen, das ordentlich umzusetzen.
    Könnt Ihr mir bitte dabei helfen?

    PHP-Code:
        protected function SendNotificationMail($NewEventData$editID$User
        {
            
    $Notification = new Email();
            
    $Notification->from $GLOBALS['TL_ADMIN_EMAIL'];
            
            
    $host $this->Environment->host;
            
            if (
    $editID) {
                if (
    $editID == -1) {
                    
    $Notification->subject sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectDelete'], $host);
                } else {
                    
    $Notification->subject sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectEdit'], $host);
                }
            } else {
                
    $Notification->subject sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectNew'], $host);
                  }
            
            
    $arrRecipients trimsplit(','$this->caledit_mailRecipient);
            
    $mText $GLOBALS['TL_LANG']['MSC']['caledit_MailEventdata']." \n\n";
            if (!
    FE_USER_LOGGED_IN) {
                
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_MailUnregisteredUser']." \n";
            } else {
                
    $mText .= sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailUser'], $User)." \n";
            }
            
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_startdate'].': '.$NewEventData['startDate']." \n";
            
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_enddate'].': '.$NewEventData['endDate']."\n";
            
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_starttime'].': '.$NewEventData['startTime']."\n";
            
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_endtime'].': '.$NewEventData['endTime']."\n";
            
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_title'].': '.$NewEventData['title']."\n";
            if (
    $NewEventData['published']) {
                
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_publishedEvent'];                
            } else {
                
    $mText .= $GLOBALS['TL_LANG']['MSC']['caledit_unpublishedEvent'];
            }
            
            if (!
    $this->caledit_allowPublish) {
                
    $mText .= "\n\n".$GLOBALS['TL_LANG']['MSC']['caledit_BEUserHint'];
            }
            
    $Notification->text $mText
    Falls es sogar updatesicher über die langconfig ginge, wäre das noch besser!

    Vielen Dank.
    LG
    PAndroid

  8. #88
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Hallo pandroid,

    nur per langconfig geht wahrscheinlich nicht, da du auf jeden Fall an dem bereits von dir gefundenen Code was ändern musst.

    Hier ein Beispiel, wie man das machen könnte:
    1. die Vorgaben der Betreffs anpassen - die %s werden im folgenden durch die übergebenen Parameter ersetzt.
    PHP-Code:
    $GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectNew'] = "Neues Event '%s' auf %s";
    $GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectEdit'] = "Event '%s' wurde bearbeitet auf %s";
    $GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectDelete'] = "Event '%s' wurde gelöscht auf %s"
    2. die Parameterübergabe in der von dir genannten Funktion SendNotificationMail bearbeiten
    PHP-Code:
    if ($editID

      if (
    $editID == -1)
      { 
        
    $Notification->subject sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectDelete'], 
                                         
    $NewEventData['title'], $host); 
      } 
      else 
      { 
        
    $Notification->subject sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectEdit'],
                                         
    $NewEventData['title'], $host); 
      } 

    else 

      
    $Notification->subject sprintf($GLOBALS['TL_LANG']['MSC']['caledit_MailSubjectNew'], 
                                       
    $NewEventData['title'], $host); 

    Gruß, folkfreund

  9. #89
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo Folkfreund,

    vielen Dank für Deine Hilfe.
    Das hat prima funktioniert.
    LG
    PAndroid

  10. #90
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard Frontend User in Template event_full ausgeben

    Nochmal hallo an alle,

    ich würde gern den Namen des Frontend-Users im Template event_full ausgeben.
    Mit "showTemplateVars" ist zu erkennen, dass die Ausgabe auf die ID des FE_User beschränkt ist.

    Habt Ihr eine Lösung wie ich aus der ID den Mitgliedernamen machen kann?

    Vielen Dank für Eure Hilfe.
    LG
    PAndroid

  11. #91
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Versuch es mal mit einem Inserttag: {{user::username}}
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  12. #92
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo Thomas,

    danke für den Tipp.
    Ich möchte aber NICHT den derzeit angemeldeten User ausgeben, sondern den User, der über calendar_editor als Frontend User und "Besitzer/Ersteller" des Kalendereintrags hinterlegt ist.
    LG
    PAndroid

  13. #93
    Contao-Nutzer Avatar von lonni
    Registriert seit
    11.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard Calendar_editor - MultitextWizard

    Hallo zusammen,

    ich möchte gerne die Frontendeingabe eines Termins für unsere Mitglieder vereinfachen.

    Wie kann ich die:

    a) die css-Klasse über dca ansprechen und diese mit einem bestimmten Wert belegen? Danach würde ich das Feld im Frontend mit display:none unsichtbar machen, und

    b) die Anweisung "Termin veröffentlichen" von vorneherein mit Häkchen laden und dann ebenfalls über css ausblenden.

    Habe schon etliche dca-Anweisungen ausprobiert, aber leider nicht die richtige gefunden. Wäre dankbar für Tipps oder auch andere bessere Lösungsvorschläge.

    Viele Grüße

  14. #94
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Für den Ersteller des Events in den Anzeige-Templates müsste man wohl diese Information in das Template einbringen. Das wäre eine kleine SQL-Abfrage, die in die Methode addEventInformation in der Datei EventEditor.php eingefügt werden müsste, um dann den Namen in ein passendes Templatefeld einzufügen. Ich schau mal, dass ich das beim nächsten Update mit einbaue.
    Updatesicher könnte man fürs erste afaik diese SQL-Abfrage auch in das Template event_full übernehmen. Wie die Abfrage aber genau aussehen muss, kann ich jetzt nicht sagen.


    Werte vorbelegen könnte so gehen. Aber dann darf das zugehörige Feld nicht einfach über css ausgeblendet werden, sondern darf gar nicht im Formular auftauchen (Template anpassen). Das Formular wird nämlich angezeigt, bevor in der DB ein Eintrag erstellt wird, und da greift DCA dann nicht, wenn ich das richtig sehe. Published ist aber auch ein Feld in den Events selber, d.h. diese Änderung würde sich dann vermutlich auch auf das Backend auswirken.
    Ansonsten sollte das Vorbelegen der Felder im Formular über den Hook buildCalendarEditForm funktionieren, den ich be den Erweiterungen beschrieben habe.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  15. #95
    Contao-Nutzer Avatar von lonni
    Registriert seit
    11.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard

    Hallo Gausi,

    danke für die Hinweise und Tipps. Werde mich weiter durchwuseln - mal sehen, was draus wird. ;-)

    Gruß

  16. #96
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Hallo, Gausi!

    Ich habe mir für eine Frontendbearbeitung das Template folgender maßen angepasst:
    Code:
    <div class="<?php echo $this->class; ?> ce_text block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    
    <?php if ($this->headline): ?>
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    
    <h3><?php echo $GLOBALS['TL_LANG']['MSC']['caledit_currentActionHint']; ?></h3>
    <p class="caledit_info">
    <?php if ($this->CurrentEventLink): ?>
    <?php if ($this->CurrentPublished): ?>
    <span class="date"><?php echo $this->CurrentDate; ?>: </span><a href="<?php echo $this->CurrentEventLink; ?>" title="<?php echo $this->CurrentTitle; ?>"> <?php echo $this->CurrentTitle; ?> </a>
    <?php else: ?>
    <span class="date"><?php echo $this->CurrentDate; ?>: </span><span class="title"><?php echo $this->CurrentTitle; ?></span>
    <?php endif; ?>
    <span class= "caledit_publishinfo"><?php echo $this->CurrentPublishedInfo; ?></span>
    <?php if ($this->DeleteEventLink): ?>
    <span class="deletelink">
    <a href="<?php echo $this->DeleteEventLink; ?>" title="<?php echo $this->DeleteEventTitle; ?>"> <?php echo $this->DeleteEventTitle; ?> </a>
    </span>
    <?php endif; ?>
    <?php else: ?>
    <span class= "caledit_publishinfo"><?php echo $this->CurrentPublishedInfo; ?></span>
    <?php endif; ?>
    </p>
    
    <h3><?php echo $this->EditHeadline ?></h3>
    <?php if (!$this->fields): ?>
    <p class="error"><?php echo $this->FatalError; ?></p>
    <?php else: ?>
    <div class="event<?php echo $this->classList; ?>">
    
    <?php if ($this->deleteHint): ?>
    <p class="caledit_delete"><?php echo $this->deleteHint; ?></p>
    <?php endif; ?>
    
    <div class="form">
            <form action="<?php echo $this->action; ?>" method="post">
            <input type="hidden" name="FORM_SUBMIT" value="caledit_submit" /><?php echo $this->messages; ?>
    		<input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
            <input type="hidden" value="{{user::username}}" name="gast_nr">
            <input type="hidden" value="{{user::id}}" name="FE_User">
    		<input type="hidden" value="event" name="cssClass">
    
    <div class="info">Um eine Zuordnung zu gewährleisten wird Deine Gaststättennummer <strong>{{user::username}}</strong> automatisch gespeichert!</div>
    
    <div class="form_calendar_edit">
    
    <?php if ($this->fields['title']): ?>
    <?php $objWidget = $this->fields['title']; ?>	
    <div class="calender_edit_field title_field">			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w70"><?php echo $objWidget->generateWithError(); ?></div>	
    </div>	
    <?php endif; ?>
    
    <?php if ($this->fields['tour']): ?>
    <?php $objWidget = $this->fields['tour']; ?>				
    <div class="calender_edit_field tour">			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w30"><?php echo $objWidget->generateWithError(); ?></div>	
    </div>			
    <?php endif; ?>
    
    <?php if ($this->fields['just_dart']): ?>
    <?php $objWidget = $this->fields['just_dart']; ?>				
    <div class="calender_edit_field just_dart">			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w30"><?php echo $objWidget->generateWithError(); ?></div>	
    </div>			
    <?php endif; ?>
    				
    <?php if ($this->fields['startDate']): ?>
    <?php $objWidget = $this->fields['startDate']; ?>				
    <div class="calender_edit_field date_time">			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w30"><?php echo $objWidget->generateWithError(); ?></div>	
    			
    <?php endif; ?>
    
    <?php if ($this->fields['startTime']): ?>
    <?php $objWidget = $this->fields['startTime']; ?>				
    			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w30"><?php echo $objWidget->generateWithError(); ?></div>	
        <div class="clearing"></div>
    </div>			
    <?php endif; ?>
    
    <?php if ($this->fields['disz1']): ?>
    <?php $objWidget = $this->fields['disz1']; ?>				
    <div class="calender_edit_field disziplin">			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w20"><?php echo $objWidget->generateWithError(); ?></div>					
    <?php endif; ?>
    
    <?php if ($this->fields['disz2']): ?>
    <?php $objWidget = $this->fields['disz2']; ?>							
        <div class="value w20"><?php echo $objWidget->generateWithError(); ?></div>			
    <?php endif; ?>
    
    <?php if ($this->fields['disz3']): ?>
    <?php $objWidget = $this->fields['disz3']; ?>							
        <div class="value w40"><?php echo $objWidget->generateWithError(); ?></div>	
        <div class="clearing"></div>
    </div>				
    <?php endif; ?>
    
    <?php if ($this->fields['details']): ?>
    <?php $objWidget = $this->fields['details']; ?>				
    <div class="calender_edit_field textarea">			
        <div class="label w10"><?php echo $objWidget->generateLabel(); ?></div>
        <div class="value w70"><?php echo $objWidget->generateWithError(); ?></div>	
    </div>				
    <?php endif; ?>
    
    <?php if ($this->fields['published']): ?>
    <?php $objWidget = $this->fields['published']; ?>
    <div class="calender_edit_field">	
        <div class="info"><strong>Du bist Dir noch nicht sicher, das Turnier öffentlich zu machen?</strong><br />Macht nichts, einfach den Haken hier nicht setzen. Später kannst Du Dir im Gaststättenbereich, die unveröffentlichten Tunriere anzeigen lassen und den Haken nachträglich setzen oder weitere Informationen bearbeiten!</div>				
        <div class="value w70"><?php echo $objWidget->generateWithError(); ?></div>		
    </div>	
    <?php endif; ?>
    <div class="calender_edit_field">								
        <div class="value w100"><input type="submit" class="submit" value="Turnier eintragen" /></div>
    </div>
    </div>      
    </form>
    </div>
    </div>
    <?php endif; ?>
    </div>
    Die Textausgaben wandern bei Zeiten noch in die langconfig.

    Leider speichert Deine Erweiterung, nach einem Serverumzug, die Start- & Endzeit zwar als Timestamp, aber nur noch mit der Zeit 00:00.
    Ich habe festgestellt, dass in allen Variablen (startTime, endTime, startDate & tstamp) der Timestamp vom Startdatum eingetragen wird, endDate bleibt dagegen leer (sollte ja auch so sein).
    Ein Eintrag aus dem Backend funktioniert dagegen einwandfrei und wird auch korrekt in die DB geschrieben.

    An Deinem Script habe ich nichts geändert oder angepasst.

    Bevor ich es noch vergesse!
    Ich habe den Kalender um diverse Felder erweitert, damit es meinen Anforderungen gerecht wird. Hier werden aber nur Texte oder Selectwerte eingetragen, die sich darauf nicht auswirken dürften.

    EDIT:
    Ich habe mir die aktuelle Version nochmal aus dem Rep. geholt und per FTP hoch geladen. Es hätte ja sein können, dass ein Übertragungsfehler vorliegt, aber keine Besserung.
    Geändert von Thomas (27.01.2012 um 08:09 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  17. #97
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Wenn trotz Angabe einer Start- oder Endzeit der Timestamp vom Datum mit 0:00 Uhr gespeichert wird, dann werden die Strings vermutlich irgendwie falsch in ein Datum konvertiert.

    Wenn eine Startzeit angegeben wird, dann wird das so verarbeitet:
    PHP-Code:
    $s $eventData['startDate'] . ' ' $eventData['startTime'];
    $startTime = new Date($s$GLOBALS['TL_CONFIG']['datimFormat']);
    $eventData['startTime'] = $startTime->tstamp
    Evtl. läuft da bei $GLOBALS['TL_CONFIG']['datimFormat'] etwas schief. Ansonsten habe ich da auf die Schnelle auch keine Idee.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  18. #98
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Danke erst mal für den Ansatz.

    Im gesamten System funktioniert es ja, demnach müsste da was am event_editor verbogen sein, warum auch immer.

    Ich versuche gleich nochmal in den Code zu schauen, ob ich da auf die Schnelle was finde.

    Wie gesagt, ich habe nur das Template angepasst und benötige dort nur startTime als Variable.

    Ich habe gerade mal die INPUT-Feld (startTime) für des BE mit dem FE verglichen.
    Dort sehe ich nur einen Unterschied in der class - BE -> tl_text und FE -> text, ein mandatory bekommt es auch noch dazu.

    Könnte das schon entscheidend sein?
    Ich kann mir das nicht denken.

    Wenn es nötig ist, gebe ich dem endTime eine dummy-Zeit (23:59) mit, als dirty-Lösung.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  19. #99
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Braucht es vielleicht besondere Servereinstellungen?

    Ich habe die Seite auf einen neuen Server umgezogen.
    Allerdings kann ich mir das nicht vorstellen, dann würde das gesamte Contao betroffen sein.

    Wie sieht es mit Unverträglichkeiten zu anderen Modulen aus?
    Gibt es da vielleicht einen Ansatz?

    Bei mir ist zusätzlich calenderfield installiert.

    EDIT:
    Auffällig ist, dass der automatische Timestamp (tstamp), in der DB, mit dem Wert von startTime überschrieben wird. Obendrein wird dem, scheinbar die falsche Zeit angehängt. Das Datum ist immer korrekt, nur die Zeit stimmt nicht.
    Geändert von Thomas (30.01.2012 um 12:07 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  20. #100
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo zusammen,

    auch ich habe leider das Problem, dass die Erweiterung, nach einem Serverumzug, die Start- & Endzeit nur noch mit 00:00 speichert.
    Ich habe die Erweiterung calendarfield mal deaktiviert und auch das Standard-Template anstelle meines angepassten Templates eingesetzt - leider beides ohne Erfolg.

    Ich erinnere mich, dass bei der Erweiterung calendar_extended mal Probleme wegen der PHP-Version auf dem Server gab. Vielleicht könnte das hier auch der Fall sein?
    @Thomas: Könntest Du das bitte bei Dir auch mal prüfen?

    Hat jemand noch eine Idee, woran es liegen könnte?
    LG
    PAndroid

  21. #101
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Ich habe php5 5.3.3-7+squeeze6 laufen!

    Diese Version habe ich gerade aktualisiert, in der Hoffnung es würde sich etwas ändern.
    Ob das nun an der Version liegt, kann ich nicht sagen.
    Ich mache bei einem laufenden Server sicherlich kein Downgrade mehr.

    Aber gut, dass es nicht nur ein Phänomen bei mir ist, ich war schon am verzweifeln.

    Wie gesagt, Neuinstallation, Deinstallation von anderen Modulen oder Default-Templates ändern nichts an der Tatsache.
    Ich habe den Code von calenderfield schon rauf und runter, aber die Erweiterung hält sich an den Vorgaben von Contao.

    Für das Problem habe ich nochmal eigens einen Thread eröffnet, sonst wird das hier unübersichtlich:
    https://www.contao-community.de/show...des-Timestamps

    Vielleicht kann das ja ein Moderator kurz dahin verschieben, danke.
    Geändert von Thomas (31.01.2012 um 17:58 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  22. #102
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Ich habe nun mal alles durchgetestet:

    1. Contao 2.9.5 (MusicAcademy) und Calendar_Editor frisch auf Contao2Go aufgesetzt - alles funktioniert prächtig
    2. Contao 2.10.3 (MusicAcademy) und Calendar_Editor frisch auf Contao2Go aufgesetzt - alles funktioniert prächtig
    3. Contao 2.10.3 und Calendar_Editor Live-Version vom Server auf Contao2Go importiert - gleicher Fehler
    4. Alle Erweiterungen deaktiviert, alle zusätzlichen Felder über Calendar_Editor_Plus entfernt, Calendar_Editor deinstalliert und neu installiert, Standard-Templates eingestellt - gleicher Fehler


    Ich bin jetzt ehrlich am verzweifeln, woran es liegen kann!
    In der frischen 2.10.3 (MusicAcademy) wird im Template ein Captcha angezeigt, in meiner importierten Serverversion mit neuer Installation und Standard-Template wird es jedoch nicht angezeigt.
    LG
    PAndroid

  23. #103
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Ich verstehe es vor allem nicht, dass es aus dem BE heraus funktioniert.
    Meine Schlussfolgerung ist eben, dass es da ein Problem zwischen der Erweiterung und Contao geben muss.

    Interessant ist es, dass es nicht funktioniert, wenn Du eine identische Contoa-Version aus einem Live-System importierst und es dort dann nicht mehr funktioniert.

    Es ist jetzt die Frage, ob es ein Ticket wert ist!?
    Für einige ist die Funktion ja elementar wichtig und ich gerate langsam unter Zeitdruck, bis Sonntag müsste schon zumindest ein Workarround erarbeitet sein. Mir fehlen dafür aber leider die Mittel.
    Was mich daran ärgert, dass es vorher einwandfrei funktionierte.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  24. #104
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Ich habe jetzt nochmal über Contao2Go eine blanke 2.10.4 und die Erweiterung installiert - das funktionierte auch wie es soll.
    Anschließend habe ich alle Erweiterungen, die ich live einsetze dort ebenfalls installiert - auch dann lief die Erweiterung ohne den Fehler.

    Dann habe ich alles wieder blank gesetzt, meine Datenbank aus dem Live-System (2.10.3) importiert, den Ordner tl_files, templates und module aus dem Live-System kopiert und natürlich das Install-Tool aufgerufen. Mit dem Ergebnis, dass das Problem wieder auftrat, obwohl ich für Calendar_editor das Standard-Template benutzte. Da alles andere frisch aus der 2.10.4 kam, kann der Fehler also nur in der Datenbank (was auch immer) oder in den angepassten Templates für die anderen Module liefen, oder???
    LG
    PAndroid

  25. #105
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Vielleicht ist es genau das selbe Phänomen, wie es im Catalog auftritt und tatsächlich der MYSQL-Version geschuldet.
    Ich habe keine Ahnung.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  26. #106
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Das Catalog-Problem kenne ich noch gar nicht.

    Aber scheinbar liegt es hier doch auch an der Datenbank.
    Ich habe jetzt mal in eine blanke 2.10.4 mit C2G nur die Live-Datenbank (ohne Templates, ohne Erweiterungen etc.) importiert und dann noch Calendar_Editor installiert. Ergebnis: Wieder der alte Fehler.

    Wenn ich jedoch Calendar_Editor in einer blanken (also leeren Datenbank) mit 2.10.4 auf C2G installiere, funktioniert die Erweiterung!

    @Thomas
    Konnte das Problem beim Catalog gelöst werden? Unter welchem Stichwort kann ich denn danach am besten Suchen?
    LG
    PAndroid

  27. #107
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Bis jetzt gibt es auch da noch keine Lösung!
    Da geht es nur darum, ein Feld vom Typ Zahlenwert in der DB zu speichern.

    https://www.contao-community.de/show...vom-Typ-Nummer
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  28. #108
    Contao-Nutzer Avatar von Gr3yh0und
    Registriert seit
    23.02.2011.
    Ort
    Bavaria
    Beiträge
    30

    Standard

    Ich habe derzeit das lustige Problem, dass das Captcha mal geht und mal nicht. Jetzt liefs wieder 10 Tage und aktuell kommt wieder sowas
    PHP-Code:
    Fatal errorCall to a member function generateQuestion() on a non-object in /..../templates/eventEdit_....xhtml on line 194 

  29. #109
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Taucht bei Euch im Quelltext auch das alte typolight Javascript auf?
    Code:
    <script type="text/javascript" src="typolight/typolight.js"></script>
    Das habe ich nur beim Editor mit drin, vielleicht stört genau das den Editor.

    Die Funktion new date() ist eine von Javascript genutzte Funktion und genau da vermute ich das Problem.
    Ich werde erst mal sehen wo das Script her kommt. Da das Script unter Contao nicht mehr vorhanden ist, könnte es da schon das Problem geben.

    Folgende Änderung, um zumindest die Anpassung für Contao zu gewährleisten:
    modules/calendar_editor/ModuleEventEditor.php - Zeile 65
    Code:
    $GLOBALS['TL_JAVASCRIPT']['rte'] = 'typolight/typolight.js';
    mit Folgendem ersetzen:
    Code:
    $GLOBALS['TL_JAVASCRIPT']['rte'] = 'contao/contao.js';
    Damit wird zumindest das richtige Script für den Tiny geladen.

    Ändert aber nichts an der falschen Speicherung.
    Geändert von Thomas (03.02.2012 um 08:03 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  30. #110
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Nur zur Info: Ich lese hier eifrig mit. Aber da ich das Problem nicht nachstellen kann, und ich nicht so tief in PHP und/oder SQL drinstecke, kann ich aktiv zur Lösung nichts beitragen. Das scheint ja ein recht merkwürdiger, aber hartnäckiger Fehler zu sein.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  31. #111
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Ja, Gausi, das ist es!
    Ich bin aber gerade schon eifrig dabei, Deinen Code etwas zu editieren.
    Vielleicht übernimmst Du das dann in eine spätere Version.
    Den Fehler selbst werde ich aber wahrscheinlich nicht finden.
    Mir ist es einfach unerklärlich, warum Contao das startDate als tstamp übernimmt und die Zeit nicht richtig speichert, bzw. daraus ein 00:00 macht.
    Ich habe schon mit der Serverzeit gespielt, aber alles steht auf Europe/Berlin, auch die Server interne Zeit.

    Ich habe hier gleich die nächste Verbesserung:
    modules/calendar_editor/ModuleEventEditor.php - Zeile 701
    Code:
    'eval' => array('rgxp' => 'date', 'mandatory' => true)
    ändern in:
    Code:
    'eval' => array('rgxp' => 'date', 'mandatory' => true, 'maxlength' => 128, 'decodeEntities' => true)
    maxlength ist hier zwar nicht so wichtig, aber ich finde es wichtig die Entities zu decodieren (Sicherheit).
    In allen weiteren Feldern hast Du es drin, aber hier fehlt es.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  32. #112
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Ab welcher Stelle ist der Timstamp eigentlich falsch? D.h. wie sieht $eventData unmittelbar vor dem Eintrag in die DB aus (Zeile 364 in ModuleEventEditor, "$objInsert = $this->Database->prepare ..."). Könntest du da mal für Testzwecke eine Ausgabe in eine andere Datei oder so reinbauen?

    Dann wäre der Fehler zumindest schonmal eingegrenzt auf die Verarbeitung der Strings aus dem Formular, oder auf die Speicherung der Timestamps in der DB durch das Contao Framework. Womit ich den schwarzen Peter nicht weitergeben möchte - evtl. sind ja die Daten, die ich da liefere, ja nicht zu 100% in dem Format, das Contao da erwartet.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  33. #113
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Wenn Du mir auch sagst wie ich so etwas am Besten machen kann?
    Ich habe keinen Plan, wie man dort eine Ausgabe generiert.

    Am Besten wäre ja, wenn die Ausgabe vor dem Eintrag in die DB erfolgt und vorerst auch keinen Eintrag vornimmt, sondern dort ein break macht.

    Oder eine Übergabe an die Bestätigungsseite!
    Damit könnte man auch gleich eine Ausgabe erzeugen, welche Daten gespeichert wurden.
    Dazu fehlen mir die Mittel.
    Geändert von Thomas (03.02.2012 um 15:13 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  34. #114
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Mist, ich dachte, du wüsstest das. Wie man sowas am besten macht, ist mir nämlich auch noch etwas schleierhaft.

    Ist zwar nicht schön formatiert, aber das
    PHP-Code:
    file_put_contents('caleditDEBUG.txt'serialize($arrEvent)); 
    vor dem Block mit
    PHP-Code:
    $this->Database->prepare ... 
    sollte im Rootdir die Datei caleditDEBUG.txt anlegen und die Daten, die an die DB übergeben werden, in halbwegs lesbarer Form speichern.
    All of this has happened before - but the question remains: Does all of this have to happen again?

  35. #115
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Hmmm, da kommt nicht viel bei rum:
    Code:
    N;
    Sowohl als Ausgabe für einen Neueintrag, als auch für das Bearbeiten eines Events.

    Ich habe das jetzt hier eingesetzt (Zeile 366-375):
    Code:
    if (empty($OldId)) {
    // create new entry
    file_put_contents('caleditDEBUG_new_cal.txt', serialize($arrEvent));
    $objInsert = $this->Database->prepare('INSERT INTO tl_calendar_events %s')->set($eventData)->execute();
    }
    else {
    // update existing entry
    file_put_contents('caleditDEBUG_old_cal.txt', serialize($arrEvent));
    $objUpdate = $this->Database->prepare("UPDATE tl_calendar_events %s WHERE id=?")->set($eventData)->execute($OldId);
    }
    Fehlermeldung keine, er legt nur die Dateien an.
    Geändert von Thomas (03.02.2012 um 16:05 Uhr)
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  36. #116
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Kann euch das System-Log bei der Suche helfen?
    http://de.contaowiki.org/System-Log

    Gruß, folkfreund

  37. #117
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Ups, da hatte ich wohl eine alte Version zum rauskopieren des Codes genommen. Da hab ih wohl zwischendurch was umbenannt.

    In die Datei soll das Objekt, was auch in die DB kommen soll, also
    PHP-Code:
    file_put_contents('caleditDEBUG_new_cal.txt'serialize($eventData));
    $objInsert $this->Database->prepare('INSERT INTO tl_calendar_events %s')->set($eventData)->execute(); 
    All of this has happened before - but the question remains: Does all of this have to happen again?

  38. #118
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Ja, da folgt jetzt auch eine Ausgabe:

    1. Ausgabe:
    29.02.2012 - 12:00 Uhr
    Code:
    a:19:{s:9:"startDate";i:1330470000;s:7:"endDate";N;s:9:"startTime";i:1330470000;s:7:"endTime";i:1330470000;s:5:"title";s:15:"CD Tour Turnier";s:6:"teaser";N;s:7:"details";s:23:"<p>testen mit debug</p>";s:8:"cssClass";s:5:"event";s:3:"pid";s:1:"2";s:9:"published";s:0:"";s:7:"gast_nr";s:7:"gast120";s:4:"tour";s:12:"CD Tour 2012";s:5:"disz1";s:7:"Offenes";s:5:"disz2";s:6:"Einzel";s:5:"disz3";s:8:"301 M.O.";s:7:"FE_User";s:1:"3";s:5:"alias";s:18:"cd-tour-turnier-67";s:6:"tstamp";i:1330470000;s:7:"addTime";s:1:"1";}
    2. Ausgabe:
    28.02.2012 - 13:00 Uhr
    Code:
    a:19:{s:9:"startDate";i:1330383600;s:7:"endDate";N;s:9:"startTime";i:1330383600;s:7:"endTime";i:1330383600;s:5:"title";s:15:"CD Tour Turnier";s:6:"teaser";N;s:7:"details";s:23:"<p>testen mit debug</p>";s:8:"cssClass";s:5:"event";s:3:"pid";s:1:"2";s:9:"published";s:0:"";s:7:"gast_nr";s:7:"gast120";s:4:"tour";s:12:"CD Tour 2012";s:5:"disz1";s:7:"Offenes";s:5:"disz2";s:6:"Einzel";s:5:"disz3";s:8:"301 M.O.";s:7:"FE_User";s:1:"3";s:5:"alias";s:18:"cd-tour-turnier-68";s:6:"tstamp";i:1330383600;s:7:"addTime";s:1:"1";}
    Wie man sieht, werden die tstamps augenscheinlich hier schon verkehrt umgerechnet, bzw. falsch gefüllt.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  39. #119
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard

    Also liegt der Fehler nicht in Contao oder der Datenbank, sondern in meinem Code. Da dürften dann diese Zeilen verantwortlich sein
    PHP-Code:
    $s $eventData['startDate'] . ' ' $eventData['startTime'];
    $startTime = new Date($s$GLOBALS['TL_CONFIG']['datimFormat']);
    $eventData['startTime'] = $startTime->tstamp
    Da wird der startTime-String aus dem Formular durch den Timestamp ersetzt. Da ich nicht genau verstehe, was da passiert, bzw. wie die Erzeugung des Date-Objektes abläuft (den Teil habe ich aus diesem Posting), kann ich da nicht soviel zu sagen. Evtl. findest du per Google eine andere Möglichkeit, einen String in einen Timestamp umzuwandeln, der zuverlässiger funktioniert.
    (Evtl reicht einfach DateTime anstelle von Date? Oder ist $GLOBALS['TL_CONFIG']['datimFormat'] bei dir verkehrt gesetzt?)
    All of this has happened before - but the question remains: Does all of this have to happen again?

  40. #120
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Ich verstehe nicht ganz, warum Du hier new Date() verwendest.

    Wird die Uhrzeit denn mit Ajax (Javascript) geparsed?

    In PHP gibt es die Funktion new Date() ja nicht, aber für Javascript schon.

    PHP: time - Manual
    PHP: microtime - Manual
    PHP: date - Manual

    Interessant wäre vielleicht folgendes:
    Code:
    $startTime = date($eventData['startTime'], "H:i:s"); <-- Contao hat dafür eine Funktion, leider habe ich keinen Plan wo die gespeichert wird, in den Einstellungen kann man es angeben, aber in der localconfig.php wird sie nicht gespeichert, im Gegensatz zu dateFormat und datimFormat (vermutlich timeFormat)
    $eventData['startTime'] = $startTime->tstamp;
    Keine Ahnung ob das Funktioniert.

    Ich habe da nicht wirklich den Plan und für mich sind die meisten Dinge böhmische Dörfer, vielleicht hilft es Dir aber weiter.

    @folkfreund
    Nein, das bringt uns nicht weiter.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. [calendar_events_plus] Kalender Events Plus
    Von Russe im Forum Sonstige Erweiterungen
    Antworten: 38
    Letzter Beitrag: 09.08.2016, 14:22
  2. events bearbeiten funktioniert nicht
    Von juergen.vallant im Forum Nachrichten/Events/FAQ
    Antworten: 0
    Letzter Beitrag: 21.06.2010, 10:10
  3. Probleme mit Kalender bei wiederholenden Events
    Von gerdi im Forum Allgemeine Inhaltselemente
    Antworten: 6
    Letzter Beitrag: 21.02.2010, 08:20
  4. Kalender/Event Anzeige des Tagesaktuellen Events auf Startseite möglich?
    Von Der_Ritter im Forum Nachrichten/Events/FAQ
    Antworten: 4
    Letzter Beitrag: 15.08.2009, 22:51

Lesezeichen

Lesezeichen

Berechtigungen

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