Skip to main content

Wörter einer Seite zählen?

Comments

3 comments

  • Zendesk API User
    Author: bIT_sosswald - 12/16/2021 9:43

    Hallo Ana,

    ich würde mir hierzu ein Modul bauen welches bei der Generierung über ein Skript / Executable an der entsprechenden Stelle aufgerufen wird.

    Darin würde ich alle Absätze der Seite durchgehen, innerhalb eines Absatzes jeweils alle Eingabekomponenten durchlaufen und die Inhalte von Textbasierten Eingabekomponenten (DOM, Textfeld, Textarea) zählen. Zum Zählen von Wörtern gibt es bestimmt Java-Bibliotheken, oder man trennt den String einfach an den Leerzeichen und zählt dann die einzelnen Elemente.

    Das Ergebnis würde ich dann zurückgeben und über das aufrufende Skript wieder im template ausgeben.

    Das ganze sollte auch in reinem Template-Code funktionieren, wenn du kein Modul schreiben willst.

    Über folgenden Code kommst du an die einzelnen Absätze und kannst dann über diese und deren EIngabekomponenten iterieren:

    $CMS_FOR(for_body, #global.node.getPage().template.bodies)$

         $CMS_FOR(for_section, ft_node.getPage().body(for_body.name).children)$

              ...

         $CMS_END_FOR$

    $CMS_END_FOR$

    Grüße

    Sandro

    0
  • Zendesk API User
    Author: hoebbel - 12/16/2021 10:15

    Hallo Ana,

    noch eine kurze Ergänzung zu dem, was Sandro gesagt hat - benutze bei CMS_INPUT_DOM toText(false). Damit bekommst Du plain Text, so dass Du deine Ergebnisse nicht durch HTML Tags verfälschst :smileywink:

    Um die zu berücksichtigenden Eingabekomponenten zu identifizieren, kannst Du über das Template den GomProvider holen und über den die Eingabekomponenten (forms()). Von denen dann einfach den GomElementTag abfragen und wenn der passt, den Inhalt berücksichtigen.

    Beispiel für die Ermittlung des Tags der ersten Eingabekomponente:

    <SectionTemplate>.getGomProvider().forms().iterator().next().getGomElementTag();

    Etwas komplizierter wird das Ganze, wenn Du auch Contentprojektionsseiten (also Ausgaben von Datensätzen) oder gar die Ausgabe im Template (von contentSelect Funktionen, globalen Inhalten...) berücksichtigen musst. Da wäre es dann wahrscheinlich deutlich einfacher, entweder das Ganze mit JavaScript berechnen zu lassen oder erst zu generieren und dann auf Serverseite den generierten Stand auszuwerten und mit dem Ergebnis die Seiten zu "patchen".

    Viele Grüße

    Holger

    0
  • Zendesk API User
    Author: ana_oleski - 12/16/2021 10:32

    Hi Holger, Sandro, danke für eure schnelle Antworten. Ich hatte gehofft, das geht noch einfacher :-) aber es ist grundsätzlich möglich, das ist schon mal gut. Liebe Grüße, Ana

    0

Please sign in to leave a comment.