Beiträge von Henning

    QUIQQER von mysql auf mysql strict

    Wenn kein Fehler bei einem Setup vorkommt, kannst du diesen Post ignorieren und alles läuft einwandfrei.


    Der Wechsel von mysql und mysql strict lässt sich leider nicht ganz automatisiert lösen.

    Daher gibt es hier ein kleinen Ablauf.

    Folgender Fehler kann beim Wechsel aufkommen:

    Zitat

    Something went wrong::SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '0000-00-00 00:00:00' for column 'lastexec' at row 2

    If the setup didn't worked properly, please test the following command for the update:


    Dies passiert wenn ein Cron Job existiert, welcher noch nicht ausgeführt wurde. Dieser Cron Job besitzt nun das Ausführungsdatum 0000-00-00 00:00:00, welches in mysql strict nicht erlaubt ist.

    Das Problem ist, solange dieser Eintrag existiert kann die Datenbanktabelle nicht angepasst werden.

    Lösung ist:

    Entweder löscht du den Cron Job, welcher noch nich ausgeführt wurde, oder setzt händisch in der Datenbanktabelle `cron` die lastexec Einträge auf ein altes Datum (1980-01-01 00:00:00).

    Wenn dies gemacht wurde, kann folgender Befehl noch zusätzlich ausgeführt werden:


    SQL
    1. ALTER TABLE `cron` CHANGE `active` `active` TINYINT( 1 ) NOT NULL,
    2. CHANGE `title` `title` VARCHAR( 60 ) NOT NULL ,
    3. CHANGE `min` `min` VARCHAR( 128 ) NOT NULL ,
    4. CHANGE `hour` `hour` VARCHAR( 128 ) NOT NULL ,
    5. CHANGE `day` `day` VARCHAR( 128 ) NOT NULL ,
    6. CHANGE `month` `month` VARCHAR( 128 ) NOT NULL ,
    7. CHANGE `dayOfWeek` `dayOfWeek` VARCHAR( 128 ) NOT NULL ,
    8. CHANGE `exec` `exec` TEXT NOT NULL ,
    9. CHANGE `params` `params` TEXT NOT NULL ,
    10. CHANGE `lastexec` `lastexec` DATETIME NULL DEFAULT NULL 


    Danach musst du das Setup von QUIQQER einmal ausführen und die Tabellen werden an MySQL Strict angepasst.


    Shell-Script
    1. php quiqqer.php setup

    Ich hoffe du hast an das bind gedacht ^^


    Also, das Problem ist behoben. Waren nun mehrere Sachen.

    Einmal der Editor wurde in die Settings geladen, dafür ist der Editor nicht geeignet. Das wurde nun unterbunden und der Editor muss immer in einer neuen Panel Kategorie angezeigt werden.


    Zusätzlich haben wir glaube ich die Toolbars von ihm geleert. Er hat WYSIWYG Module geladen die aber nicht aktiviert waren :-)

    Wenn es sich um Datenobjekte handelt sollte dies kein Problem sein.

    Bei richtig Instanziierten Objekten ist das so eine Sache. hier musst du auch aufpassen ob es Sinn macht solche Objekte mit serialize / unserialize zu Cachen.


    Die Sache ist, die Klasse sollte dann schon __wake und __sleep als Magic Methode mitbringen, es könnte dann sein dass das nicht ganz so funktioniert wie du das möchtest. Zusätzlich bin ich mir nicht sicher was serialize mit inharitance Objekten macht (Also Objekte im Objekt). Wenn das dann durch serialisiert wird, wird es plötzlich recht viel ... das ganze muss dann auch interpretiert werden. Hier solltest du dann echt auf die Performance achten.


    Wenn stark serialisiert wird und das dann im RAM liegt und du kräftig Besucher hast, wirst du wahrscheinlich deine Last runter bringen.

    Dein Bottleneck wird aber meist bei so Sachen sein wie

    • DNS Auflösung / Anfragen zu anderen Rechnern
    • Datenbank Anfragen

    Hier lassen sich bessere Caching-Methoden anwenden, nen Query Cache macht da meist einiges aus. Also was ich sagen will, wenn du direkt an deinem Bottleneck ein minimalen Cache einsetzt, anstatt Mega Objekte zu cachen, hast du weniger Stress :-) Also wenn du richtige Klassen cachen möchtest solltest du mehrmals drüber nachdenken ob dir der Aufwand es wert ist.

    Also ich hab das bei mir gerade getestet. Das funktioniert einwandfrei. Ich habe sogar dein Schnipsel direkt bei mir einmal eingebaut. Der Editor wurde geladen.

    XML: site.xml
    1. <input conf="event.settings.1234" data-qui="controls/editors/Editor">
    2. <description>
    3. <locale group="quiqqer/calendar" var="sitetypes.event.settings.details"/>
    4. </description>
    5. </input>




    Das wäre die richtige Vorgehensweise. Du redest aber einmal von settings.xml und einmal von site.xml, also in beiden habe ich es getestet und der Editor wurde ohne Probleme geladen.

    Wie alt ist denn deine QUIQQER Installation?

    Probier mal bitte


    Code
    1. <input conf="quiqqerApp.settings.splash" class="media-image" data-qui-options-selectable_types="" data-qui-options-selectable_mimetypes="">


    Es gibt zwei Optionen bei dem Input.

    • selectable_types
    • selectable_mimetypes

    Ich weis nun nicht genau ob das in dem XML weitergereicht wird. Sollte theoretisch.


    selectable_types


    Kannst du die verschiedenen File Typen angeben, Also file, folder, image


    selectable_mimetypes


    Kannst du die verschiedenen mime types halt angeben. Sowas wie image/png oder image/jpg


    Kann aber auch sein das ich dir da ein Fix bauen muss, da eigentlich ein Array übergeben werden soll. Müsste ich aber nach schauen ob komma seperiert oder JSON Format interpretiert wird.

    Wenns nicht geht, sag bitte bescheid, dann bau ich dir nen Fix.