Seite 1 von 1

Inhalte von CMS_HTML mit Javascript manipulieren

Verfasst: So 2. Jun 2019, 19:36
von Dinkel
Hallo zusammen,

gerade versuche ich ein Layout mit Modulen, etc. zu basteln, das die Pflege eines Artikels möglichst einfach macht. Im Endeffekt möchte ich einen Teil, der normaler Weise im Modul Input rein kommt, in den Modul Output verlagern.

Ich habe im Layout einen <container> eingetragen und diesen mit einem eigenen Modul in der Vorlage bestückt.
Im Modul verwende ich folgenden Code:

Code: Alles auswählen

<?php
$value1000="CMS_HTML[1000]";
echo 'Bitte Transparenz wählen:';
echo '<button class="blur" data-percentage="0">0%</button>';
echo '<button class="blur" data-percentage="10">10%</button>';
echo '<button class="blur" data-percentage="20">20%</button>';
echo '<button class="blur" data-percentage="30">30%</button>';
echo '<span id="transparency_value" class="'.$useClass.'">'.$value1000.'</span>';
?>
Das führt dazu, dass ich im Editor des Artikels ein Feld für die Eingabe von HTML habe. Mit den 4 Buttons möchte ich nun in das Feld CMS_HTML[1000] mittels Javascript Text einfügen und dann auch gleich speichern.

Das Javascript sieht so aus:

Code: Alles auswählen

<script type="text/javascript">
$(document).on('click','.blur', function() {
	var transparency=$(this).attr('data-percentage');
	$('#transparency_value div').html(transparency);
});
</script>
Klicke ich auf einen der 4 Button, wird der jeweilige Wert auch korrekt in das Feld eingetragen.

Wenn ich nun speichere, dann wird der Wert aber nicht übernommen. Das geht nur, wenn ich manuell im Feld etwas editieren möchte. Auch eine JS Anweisung, wie

Code: Alles auswählen

Con.Tiny.setContent('2', '0');
funktioniert leider nicht. Ich habe auch versucht, den onclick event des grünen Hakens für meine Buttons zu nutzen, ging aber auch nicht. Und wenn ich per XPATH den Link (wie wenn ich mit der Maus auf den grünen Haken klicke) mit der jQuery Funktion click() anklicke, klappt es auch nicht. Der Code sieht dann so aus:

Code: Alles auswählen

$('#'+$('#transparency_value a:nth-child(3)').attr('id')).click();
Gibt es Ideen, wie ich den Wert mit Javascript speichern kann?

Danke und Gruß,
Dinkel

Re: Inhalte von CMS_HTML mit Javascript manipulieren

Verfasst: Mo 3. Jun 2019, 15:15
von Faar
Moin Dinkel,
täusche ich mich oder möchtest du mit einem PHP-Input-Code einen PHP-Output-Aufbau bewerkstelligen? :?
Wenn Du im Output bist, siehst Du das was das PHP ausliefert doch erst, wenn die Seite ausgeliefert wurde und PHP bereits beendet.
Also macht sowas hier ohne Formularfunktion keinen Sinn:
$value1000="CMS_HTML[1000]";

Falls Du Zeit und Geduld hast, schau dir die neuen Module an, wie die im Editbereich arbeiten (dort auch mit Ajax):
https://api.contenido.org/latest/packag ... .HTML.html
Und da das auch mit Ajax arbeitet, müsstest du mal schauen, was in der main.php so alles an Javascript Code steht.
Beispiel sind die Popups, die bei den content_teaser-Modulen aufgehen.

Achja, off topic aber ...
wann wird das Galleriffic Modul auf 4.10 adaptiert? :shock:
:mrgreen:

Re: Inhalte von CMS_HTML mit Javascript manipulieren

Verfasst: Mi 12. Jun 2019, 20:56
von Dinkel
Jein. Ich möchte tatsächlich gewisse Dinge im Backend vom Tab Konfiguration in den Editor "verschieben".

Habe es auch gelöst, bzw. einen Workaround. Ein reiner click per Javascript auf den Speichern Button reicht nicht aus. Zuvor muss noch das HTML-Text-Feld angeklickt werden. Man muss nur die ID des CMS_HTML Containers nutzen, notfalls geht das aber auch dynamisch.

Dann wird alles auch gespeichert:

Code: Alles auswählen

$("#HTML_2_1000").click();
$('#'+$('#transparency_value a:nth-child(3)').attr('id')).click();