Inhaltspezifische Aktionen

Hilfe-Center

Inhaltspezifische Aktionen

Vorlagen und Vorgaben

zum Webauftritt der JLU

Inhaltspezifische Aktionen

Howto

Adapter

Text- oder HTML-Mail?

In Formular-Ordner unter "Mail-Adapter bearbeiten" können Sie Ihren Adapter auf Text-Mail einstellen:

  1. Mail-Adapter bearbeiten
  2. Typ des Mail-Körpers: "Text"  auswählen
  3. und Standart Mail-Körper-Template wie folgt ersetzen :

<tal:block repeat="field options/wrappedFields"> <div tal:replace="field/fgField/widget/label" />: <div tal:replace="structure python:field.htmlValue(request)" /> </tal:block>

Mail-Adapter bearbeiten

Info: Sie können mehrere Mailer-Adapter in einem Formular verwenden sodass ein Mailer-Adapter eine Mail an denjenigen sendet, der das Formular ausgefüllt hat und ein anderer Adapter die Formulardaten an Sie selbst schickt.

Beim anlegen eines FormFolders wird der Mail-Adapter automatisch hinzugefügt. Data-Adapter kann nachträglich erstellt werden. Über Mail-Adapter -> Überschreibungen können die Standardfelder überschrieben werden:

Subject Expression (Betreff)

python:'Vielen Dank' + request.get('name', 'Standardwert')
python:'HRZ-Shop - Bestellung: ' '+ str(DateTime().strftime('%Y-%m-%d-%H-%M'))
python:'HRZ-Shop - Bestellung: ' + request.get('hostname', ' ')
python:'Bewerbung Stipendium' + ' : ' + request.form['nachname'] + ', ' + request.form['vorname'] wir ausgegeben: Bewerbung Stipendium : Nachname, Testvorname

Dabei ist name die ID eines Feldes, in die der Name desjenigen eingetragen werden soll, der das Formular ausgefüllt hat und Plonista der Standardwert, der eingetragen wird sofern kein Eintrag in name erfolgte.

python:'IP Antrag ' + request.get('topic', 'default-value')

Dabei ist topic die ID des Betreffs

Sender Expression (Absender)

statisch:

string:Cafer.Travaci@hrz.uni-giessen.de
python:request.form.get('first-name')
python:request.form.get('last-name')

oder dynamisc:

request/form/replyto oder
python:request.form['email']

Empfänger ist der Absender

here/memberFullName

here/memberEmail

Recipient Expression (Empfänger)

statisch:

string:Cafer.Travaci@hrz.uni-giessen.de

oder dynamisch

request/form/replyto oder
python:request.form['email']

Danke-Seite

Danke Seite wird automatisch angelegt und bei einer erfolgreichen Aktion den Sender dargestellt. Sie können den Benutzer nach dem senden auf einen andere Seite weiterleiten:

redirect_to:string:bedankungs-seite

Dynamsiche Inhalte zum EMail-Text hinzufügen. Beim Mail-Adapter -> Template können Sie dynamische Inhalte hinzufügen:

<tal:block tal:content="python:request.form.get('first-name', 'Supporter')"/>

Formular-Wizard:

http://plone.org/products/ploneformgen/documentation/how-to/create-a-multi-page-form

http://www.plone-nutzerhandbuch.de/erweiterungen/ploneformgen/erstellen-mehrseitiger-formulare.html

Validierung

Bei jedem Feld stehen verschiedene Validierungs-Optionen zur Verfügung. Unter " Personalisierter Validator " eines Feldes können Sie eigenen Validator definieren:

python: test(value=='password', False, 'bitte geben Sie das richtige passwort ein')
python: value != '8' and 'the answer is false'

Beispiel:

Sie haben ein Auswahlfeld in dem Sie den "Status" einer Person erfragen, z.B. Student, Mitarbeiter, Externer
Je nach Angabe variieren die weiteren Pflichtfelder. So ist es z.B. nur sinnvoll die Matrikel-Nr bei Studierenden abzufragen.

python:test(request.form['anfragebereich']!='Student' and
test(value==''), False, 'Bitte geben Sie Ihre Matrikelnummer an')

auch der Mail-Adapter kann validiert werden s. Mail-Adapter -> Execution Condition:

python:request.form['fbnummer'] != 'FB11'

man kann mehrere Adapter erstellen und bei jedem andere Bedingung eingeben.

mailer1 - mail1@hrz.uni-giessen.de

Bespiel1: python:request.form['fbnummer'] == 'FB11'
Bespiel2: python:test((request.form['fbnummer'] == 'FB11' and request.form['fb-nummer-e'] == '-' ) or (request.form['fb-nummer-e'] == 'FB11'))

mailer2 - mail12@hrz.uni-giessen.de

Bespiel1: python:request.form['fb-nummer-e'] != 'FB11'
Bespiel2: python:test((request.form['fbnummer'] != 'FB11' and request.form['fb-nummer-e'] == '-') or (request.form['fb-nummer-e'] != '-' and request.form['fb-nummer-e'] != 'FB11'))

Feldnamen überprüfen:

Dateien überprüfen:

python:test(request.form['SAPKONTOAUSZUG_file'].filename !='', False, 'bitte geben Sie das richtige passwort ein')
python:test(request.form['ZWISCHENBERICHTHOCHLADEN_file'].filename !='' and request.form['NEUFOLGEANTRAG'] == 'F', False, 'Bitte reichen Sie bei Folgeanträgen einen Zwischenbericht und einen aktuellen SAP-Kontoauszug für das Projekt ein')
python: test('.pdf' in value.filename, False, 'File must be a PDF')
python: test(value.filename, False, 'File must be a File')
python:test(request.form['A2']=='x', False, 'Bitte laden sie die Datei hoch') python:test(test(value.filename!=''), False, 'Bitte laden sie die Datei hoch') python:test(request.form['sz_file'].filename !='', False, 'Bitte laden sie die Datei hoch')

python:test(request.form['SAPKONTOAUSZUG_file'].filename !='', False, 'bitte geben Sie das richtige passwort ein')


Compare two fields

erstelle eine PythonScript

confirmEmailAddress

# Example code:

# The if statement must return a space or a message.  It if is '', it will validate the form even if the fields are empty.
request = container.REQUEST

if request.form['e-mail-address'] != request.form['confirm-e-mail-address']:
    return 'Your email address does not match the confirm email address'
else:
    return False

erstelle Custom Validator mit dem Code

python: folder.confirmEmailAddress() 

yada if request.form['fieldA']=='' and request.form['fieldB']=='': return 'You must put a value in either field A or field B' else: return False http://plone.293351.n2.nabble.com/PloneFormGen-Compare-two-fields-td5915271.html

Prüfen am Feld

python:test(request.form['email'] == request.form['emailconfirm'], False, 'Bitte geben Sie die richtige E-Mail-Adresse')

Value Prüfen

python:test(value[:1]=='m', False, 'keine Mitarbeiter')
python:test(value[-14:]=='@uni-giessen.de', False, 'ist keine JLU E-Mail-Adresse.')

einfügen verhindern

<script>
$( document ).ready(function() { $("#emailconfirm").bind('cut copy paste', function(e){
e.preventDefault(); //disable cut, copy, paste from textarea
});
});
</script>



Felder dynamisch überschreiben/erweitern

Felder addieren:

<div tal:content="python:int(request.get('feld1', 'default-value')) + int(request.get('feld2', 'default-value'))">
</div>

Standard-Ausdruck bei 'Kurztext-Feld' oder Vokabular der Optionen bei Mehrfach-Auswahl-Feld

Sie können die Felder auch einzeln überschreiben: Feld "Betreff" öffnen -> bearbeiten -> [Überschreibungen]

python:'Thank you ' + request.get('my-field-id', 'default-value')

Mehrfach-Auswahl-Feld (Checkbox oder Liste) - FormMultiSelectionField

[Überschreibung] -> Vokabular der Optionen

python: ((request.form['fb-nummer'],'Yes'),('junk@yourserver','No'))

überschreibt die erste Option, die unter [standard] -> Optionen  eingeben ist.

preview

preview unter Overrides in "Eigene Formular-Aktion"

s.collective.pfgpreview: To use PloneFormGen preview page: set 'preview' in "Custom Form Action" field of FormFolder

python:DateTime() 

das aktuelle Datum für das Feld "Date/Time Field" s.https://docs.plone.org/working-with-content/managing-content/ploneformgen/faq.html

Script-Adapter:

https://www.python-forum.de/viewtopic.php?t=9435

Über Script Adapter können Sie die Aktion des FormFolders anpassen z.B.:

request.response.redirect('http://webseite.de&request='+fields['request']+'&find_code='+fields['find_code'])
return context.REQUEST.RESPONSE.redirect(url)

leitet die Anfargen an http://webseite.de und gibt die Paramter weiter. Über Formfolder hochgeladene Datei speichern

formFile = request.form['foto_file']
#foto_file = Dateifeld-ID + _file
uploadFolder = getattr(ploneformgen.getParentNode(),'uploads')
#"uploads" ist die ID des Ordners der paralel zum FormGen Ordner liegt
formFileName = 'File-'+ str(DateTime().strftime('%Y-%m-%d-%H-%M'))
uploadFolder.invokeFactory('File',id=formFileName, file=formFile)

Test mit Javascript

<script>
    $(document).ready(function () {
        $("#fg-base-edit input[type=submit]").click(function() {

            var option = $('#A2');
            if (option.val() === '') {
                alert("Please select an item from the list and then proceed!");
                $('#A2').focus();

                return false;
            }
            else return;
        });
    });
</script>

oder

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
$(document).ready(function(){
 $('#A2').change(function () {
 var option =  $('#A2').val();
 if (option != '') {
	alert(job);
	}
  })
})
</script>

weitere Links

  • http://www.plone.uni-bonn.de/search?Subject%3Alist=Formulare
  • https://plone-handbuch-universitat-bonn.readthedocs.io/en/latest/faq/formulare/absendeadresse.html
  • https://docs.plone.org/working-with-content/managing-content/ploneformgen/faq.html
  • https://sixfeetup.com/blog/how-to-allow-users-to-create-site-content-using-ploneformgen
  • http://www.plone.uni-bonn.de/faq/formulare-personalisierter-validator
  • http://plone.org/products/ploneformgen/documentation/
  • http://plone.org/products/ploneformgen/documentation/tutorial/creating-a-registration-form/tricks-for-the-email
  • http://plone.org/products/ploneformgen/documentation/how-to/create-a-multi-page-form
  • https://realpython.com/blog/python/handling-email-confirmation-in-flask/
  • https://plone-handbuch-testing.readthedocs.io/de/latest/artikeltypen/ploneformgen/dateifeld.html
Schlagwörter
2007

Inhaltspezifische Aktionen

Plone 4

Zur Umstellung auf Plone 4 bieten wir individuelle Beratungstermine für Kleingruppen und Bereichsadministratoren an. Schreiben Sie uns einfach eine E-Mail!

Im Folgenden finden Sie eine Kurzübersicht über die neuen Funktionen und geänderten Bearbeitungsweisen in Plone 4.

Inhaltspezifische Aktionen

Icons

audio.png
audio.png

Anzeigen
book_icon.gif
book_icon.gif

Anzeigen
doc.png
doc.png

Anzeigen
mail_icon.gif
mail_icon.gif

Anzeigen
navigation_icon.gif
navigation_icon.gif

Anzeigen
pdf_icon.gif
pdf_icon.gif

Anzeigen
ppt.png
ppt.png

Anzeigen
print_icon.gif
print_icon.gif

Anzeigen
rss.gif
rss.gif

Anzeigen
search_icon.gif
search_icon.gif

Anzeigen
video.png
video.png

Anzeigen
xls.png
xls.png

Anzeigen
pfeil_oben
pfeil_oben

Anzeigen
calendar
calendar

calendar

Anzeigen
tw.png
tw.png

Anzeigen
Suche
Suche

Anzeigen
Work
Work

Anzeigen
Suche
Suche

Such-Box für die Suche im CMS mit mehreren Suchmöglichkeiten

Anzeigen
envelopeo.svg
envelopeo.svg

Anzeigen
envelopeo.png
envelopeo.png

Anzeigen
mail.svg
mail.svg

Anzeigen
hrzinfobox.png
hrzinfobox.png

Anzeigen
Ostern_Startseite.jpg
Ostern_Startseite.jpg

Anzeigen
Top500-y2023-WUR.png
Top500-y2023-WUR.png

Anzeigen
dlinks_jlu.svg
dlinks_jlu.svg

Anzeigen
dlinks_jlu.png
dlinks_jlu.png

Anzeigen
dlinks-jlu.svg
dlinks-jlu.svg

Anzeigen
Inhaltspezifische Aktionen

Testbereich