Inhalte von CMS_HTML mit Javascript manipulieren

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Inhalte von CMS_HTML mit Javascript manipulieren

Beitrag von Dinkel » So 2. Jun 2019, 19:36

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
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Inhalte von CMS_HTML mit Javascript manipulieren

Beitrag von Faar » Mo 3. Jun 2019, 15:15

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:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Re: Inhalte von CMS_HTML mit Javascript manipulieren

Beitrag von Dinkel » Mi 12. Jun 2019, 20:56

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();
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

Antworten