Seite 1 von 2
CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mi 10. Jan 2018, 17:52
von malsdgtac
Hallo,
ich möchte gerne folgendes machen: ich möchte CMS_HTML (oder CMS_TEXT oder eigentlich egal welcher Content-Type) mit einem Inhalt befüllen, der nicht über den Editor eingegeben wird. Soll also das Gegenteil von "getContent" sein. Gibt es da eine einfach Möglichkeit?
Danke für eure Antworten.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mi 10. Jan 2018, 19:09
von malsdgtac
Hallo,
alternativ dazu kann ich mir vorstellen den Inhalt in einer eigenen Tabelle zu speichern. Wie kann ich dann den Cache (der extra eingeschalten ist) in einem Modul dazu bewegen sich zu leeren?
Danke!
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Do 11. Jan 2018, 09:23
von homtata
Müsste wie folgt gehen, wobei "1" die id des CMS-Elements ist, also hier z.B. CMS_TEXT[1]
Code: Alles auswählen
conSaveContentEntry(cRegistry::getArticleLanguageId(), "CMS_TEXT", 1, $deinInhalt );
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Do 11. Jan 2018, 11:24
von Faar
Anmerkung zu Homtatas Lösung:
cRegistry::getArticleLanguageId() würde wohl nur dann richtige Werte liefern, wenn der Input über diese Funktion auch innerhalb eines Artikels erfolgt, also über ein Modul. Bei einem externen Input-Programm wäre keine ArtLangID vorhanden, die müsste man dann wissen oder anders ermitteln.
Eventuell müssten man dann zuerst einen Artikel erzeugen.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Do 11. Jan 2018, 19:32
von bueroschmidt
Faar hat geschrieben: ↑Do 11. Jan 2018, 11:24
Anmerkung zu Homtatas Lösung:
cRegistry::getArticleLanguageId() würde wohl nur dann richtige Werte liefern, wenn der Input über diese Funktion auch innerhalb eines Artikels erfolgt, also über ein Modul. Bei einem externen Input-Programm wäre keine ArtLangID vorhanden, die müsste man dann wissen oder anders ermitteln.
Eventuell müssten man dann zuerst einen Artikel erzeugen.
Hättest du einen Lösungsansatz dazu parat? Habe ein ähnliches Problem.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Fr 12. Jan 2018, 08:13
von rethus
Kannst du mehr über die Verwendung sagen? Sehe noch nicht, was genau du damit bezweckst, bzw. welche Funktion hier gewünscht ist.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Fr 12. Jan 2018, 10:17
von homtata
Ach, da kann man sich doch genug Anwendungsfälle denken!? Ich hatte mal ein Dropdownfeld in den Artikel gebastelt, mit dem der User etwas artikelbezogenes (eine optische Auswahl) direkt über dem HTML-Editor einstellen konnte und hab das in ein CMS_RAW gespeichert - eigentlich recht praktisch. Ich wollte es nicht über die Artikelkonfiguration machen, damit der Redakteur nicht aus dem Bearbeitungsfluss kommt. Die dort gespeicherte Konfiguration konnte ich im HTML-Modul dann wieder auslesen und direkt verwenden.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Fr 12. Jan 2018, 10:53
von Faar
bueroschmidt hat geschrieben: ↑Do 11. Jan 2018, 19:32
Hättest du einen Lösungsansatz dazu parat? Habe ein ähnliches Problem.
Nicht wirklich, weil das ist kompliziert und auf den jeweiligen Fall bezogen anders.
Aber hier gibt es einen Ansatz, mit dem man vielleicht weiter kommt:
https://api.contenido.org/latest/class- ... ction.html
Das Problem scheinen die vielen Daten, die verlangt werden, aber lediglich die $idart ist der Haken:
https://api.contenido.org/latest/source ... tml#45-143
Wenn es noch keinen Artikel gibt, wie ermittelt man dann die $idart?
Sinnvollerweise ist das der nächsthöchste Wert in der Tabelle.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Fr 12. Jan 2018, 11:04
von Oldperl
Servus,
rethus hat geschrieben: ↑Fr 12. Jan 2018, 08:13
Kannst du mehr über die Verwendung sagen? Sehe noch nicht, was genau du damit bezweckst, bzw. welche Funktion hier gewünscht ist.
rethus hat Recht. Ohne zu wissen wie und wo eine solche Funktion greifen soll, und wie die Vorgaben sind, ist es schwer eine passende Lösung aufzuzeigen. Es kommt sowohl darauf an welche Vorbedingungen bestehen und welche Daten vorhanden sind, als auch in welchem Rahmen, standalone, im Frontend, im Backend oder in einem Plugin, der Eintrag in die Content-Typen erfolgen soll.
Gruß aus Franken
Ortwin
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mo 15. Jan 2018, 15:11
von malsdgtac
Hallo,
vielen Dank für den Tipp mit dem conSaveContentEntry - das funktioniert einwandfrei!
Jetzt würde ich noch gerne den Cache für einen bestimmten Artikel löschen. Ich weiß, dass das geht wenn man z.B. einen Text in einem Artikel bearbeitet - oder über System/Bereinigung. Ich würde das aber gerne in einem Modul starten. Geht das?
Vielen Dank!
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mo 15. Jan 2018, 15:29
von Oldperl
Servus,
smac hat geschrieben: ↑Mo 15. Jan 2018, 15:11Jetzt würde ich noch gerne den Cache für einen bestimmten Artikel löschen.
guckst Du hier
https://api.contenido.org/con4911/sourc ... ml#339-364
Gruß aus Franken
Ortwin
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mo 15. Jan 2018, 16:00
von malsdgtac
Vielen Dank dafür!
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mo 15. Jan 2018, 18:37
von malsdgtac
Gibt es irgendwo eine Erklärung wie der Cache funktioniert? Das Löschen der Cache-Datei mit der Funktion funktioniert einwandfrei, trotzdem wir die Seite aber noch von irgendwo aus einem Cache geladen. Erst wenn ich in dem entsprechenden Artikel einen Content mit dem grünen Haken speichere, wird die Seite neu erstellt - und wieder eine Datei abgelegt.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Mo 15. Jan 2018, 22:44
von homtata
Ich hab das nie versucht, aber vielleicht kannst du den Artikel über cApiArticle ja instanzieren (oder cApiArticleLanguage) und mit loadByPrimaryKey() laden, dann wieder über store() speichern, ohne was am Inhalt zu verändern.
Re: CMS_HTML (oder anderen Content-Type) mit eigenen Inhalt befüllen
Verfasst: Di 16. Jan 2018, 11:59
von Oldperl
Servus,
smac hat geschrieben: ↑Mo 15. Jan 2018, 18:37
Gibt es irgendwo eine Erklärung wie der Cache funktioniert?
Soviel mir bekannt nicht wirklich.
smac hat geschrieben: ↑Mo 15. Jan 2018, 18:37...trotzdem wir die Seite aber noch von irgendwo aus einem Cache geladen. Erst wenn ich in dem entsprechenden Artikel einen Content mit dem grünen Haken speichere, wird die Seite neu erstellt - und wieder eine Datei abgelegt.
Normalerweise sollte die Datei erstellt werden, wenn keine vorhanden ist und Caching nicht abgeschaltet ist, und dann ausgeliefert werden. Muss ich mir im Core nochmal anschauen.
Du kannst es aber auch mal mit der Funktion
conSetCodeFlag($idcatart) versuchen. Dieser die idcatart übergeben, die setzt dann das CodeCreateFlag in der DB und löscht die Code-Dateien im Cache. Eventuell ist dieses Flag der Grund warum das bei Dir so nicht geht.
Gruß aus Franken
Ortwin