Teste offlineCMS mit Calc

Kann auch Umlaute und Sonderzeichen!

Calc generiert aus den Daten eine json-Datei und lädt diese automatisch via ftp auf den Webspace.

Nebenbei kann auch eine Writer-Seriendruck-Datei angesprochen werden, um bspw. die Daten für eine Restaurant-Speisenkarte in Calc zusammenzustellen, in Writer die Speisenkarte zu drucken und abschliessend alles VOLL automatisch auf den Webspace zu laden...

Genial einfach - oder?

A wie Anton B wie Berta
... and more lorem ... and more ipsum ... and no dolor...

Calc-Screenshot


VBA-Quellcode für Calc Makro

Alle Einstellungen für Dateinamen und ftp-Zugang bitte in Sub Fertig() anpassen...

Mit Calc die Datei test_CMS.ods öffnen:
Im Menü Extras/Makros/Makros bearbeiten/ aufrufen
im Objektkatalog zu test_CMS.ods doppelklicken,
Standard doppelklicken,
ExportJson doppelklicken,
Fertig doppelklicken.
und bei der Sub Fertig() alle Einstellungen vornehmen. Speichern. Fertig!

     …
        Public Sub Fertig()
           'Dateinamen richtig einstellen
           JSONFileName = ActivePath & "test_CMS.json"
           WRITERFileName = ActivePath & "test_CMS.odt"
           'Calc richtig einstellen
            WorkSheetName = "Test" 's.a. Calc-Datei
           'FTP richtig einstellen
           UserFTP = "user"
           PwdFTP = "pwd"
           ServerFTP = "ftp.example.com"
           FTPDirectory = "test/gaga"
           FTPWait = "30" 'Sekunden
           'alles ausführen
           SaveAsJSON
           OpenWriter
           UploadFTP
           'Calc beenden
           thisComponent.store
           thisComponent.close(true)
        End Sub
      …
    

Der gesamte VB-Quelltext ist im Calc-Makro einsehbar!


Writer-Screenshot

Im Writer "Daten aktualisieren" klicken, damit die Daten aus Calc nachgeladen werden!


Das minimale HTML-Gerüst inkl. jquery-Quelltext zum Einlesen der json-Daten:

"Item.A" und "Item.B" im Javascript sind die Überschriften aus den Office-Daten! Wenn die Überschriften umbenannt werden, dann muss der Tabellenkopf <th> oben und das Javascript <script> unten auch entsprechend angepasst werden!!!

Leere Datensätze werden wegen if ( item.A != '' ) übrigens nicht ausgegeben!


        <!DOCTYPE HTML>
        <html>
          <head>
           <title>offlineCMS Calc</title>
            <meta charset="utf-8" />
            <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
          </head>
          <body>
            <table border="1">
              <thead>
                <tr><th>A</th><th>B</th></tr>
              </thead>
              <tbody id="table_body">
                <!-- two Columns or even more!!! -->
              </tbody> 
            </table>    
          </body>
          <script>
            $( document ).ready(function() {
              $.getJSON("test_CMS.json", function( data ) {
                $.each ( data, function( i, item ) {
                  if ( item.A != '' ) {
                    $("#table_body").append("<tr><td>" + 
                                               item.A + 
                                            "</td><td>" + 
                                               item.B + 
                                            "</td></tr>");
                  }
                });
              });
            });
          </script>
        </html>