Hallo,
ich bin nun schon eine Weile am suchen und stell mich wahrscheinlich nur zu blöd an.
Ich möchte Calendar Base (1.4.0) mit Typo3 4.4.2 dazu bewegen, Frontendnutzern das Erstellen, Bearbeiten und Löschen der SELBST erstellten Events zu erlauben und bei Änderung und Erstellung eine Kontrolle des Admins zwischen schalten bevor die Änderung sichtbar ist.
Im TS steht
plugin.tx_cal_controller {
event {
eventViewPid = 330
createEventViewPid = 330
editEventViewPid = 330
deleteEventViewPid = 330
}
rights {
edit = 1
defaultSavePid = 329
admin.user = 72
create {
event {
group = 1
publicEvents.group = 1
addFeUserToShared = 1
saveEventToPid = 329
publicEvents.group = 1
allowedToCreateEvents.group = 1
enableAllFields.group = 1
}
}
edit {
event.group = 1
enableAllFields.group = 1
event.addFeGroupToShared = 1
event.onlyOwnEvents.group = 1
event.publicEvents.group = 1
}
delete {
event.group = 1
event.addFeGroupToShared = 1
event.onlyOwnEvents.user = 57,67
event.allowedToDeleteEvents.group = 1
}
}
language = de
renderCharset = utf-8
saveEventToPid = 329
}
bei den Templates habe ich New CSS-based template (cal), New CSS-styles (cal) und FE-Editing (cal) hinzugefügt
Der Rest ist relativ funktionstüchtig organisiert. Ich kann mir den Kalender in verschiedenen Varianten anschauen und das Erstellen, bearbeiten und löschen funktioniert bereits.
Wie zu sehen ist, möchte ich allen Nutzer erlauben eben diese Events zu erstellen, editieren und zu löschen. Und zwar so, dass Nutzer 2 den Eintrag von Nutzer 1 nicht ändern kann. Leider kann jeder Nutzer immer alles. Hat jemand eine Idee?
Und wenn es jemand gleich zur Hand hat, wie kann ich vorschreiben, dass ein Admin erst einen neuen oder geänderten Eintrag absegnen muss. Ist aber zweitrangig.
Danke und Grüße Enrico
Hallo,
ich habe genau dasselbe Problem. Alle User können alles ;-) ... es soll aber nur der eine User sein erstelltes Event ändern.
Irgendwie ist es ja auch logisch, da man per TypoScript angibt:
plugin.tx_cal_controller {
event {
edit {
event.onlyOwnEvents.group = 1
}
}
}
Die User als ID anzugeben halte ich bei 1500 Mitgliedern als unzumutbar, darüber hinaus hätte es den selben Effekt, wie die Usergroup (alle wären Editierberechtigt).
LG
deXx
Ich hätte mir auch mal für die Allgemeinheit selbst antworten können... sorry.
Das Problem ist die Entwicklerversion gewesen. Da hat irgendeiner mal auf Commit gedrückt und das ding funzt nur zur Hälfte. Also immer schön die Version von Typo3.org nutzen.
Zur Vollständigkeit aber hier nochmal mein TS:
#Rechte Vergabe für das Veranstlatungssystem
plugin.tx_cal_controller {
language = de
renderCharset = utf-8
saveEventToPid = 329
dateConfig {
dayPosition = 0
monthPosition = 1
yearPosition = 2
splitSymbol = .
}
event {
eventViewPid = 89
createEventViewPid = 89
editEventViewPid = 89
deleteEventViewPid = 89
}
rights {
edit = 1
defaultSavePid = 90
create {
event {
enableRTE = 0
group = 1
publicEvents.public = 1
publicEvents.group = 1
addFeUserToShared = 1
#addFeGroupToShared = 1
#enableAllFields.group = 1
addFeUserToNotify = 1
saveEventToPid = 90
fields {
calendar_id.default = 1
calendar_id.public = 0
category.public = 1
allowedToCreateImages.group = 1
startdate.constrain.1.regexp = /(\d{2}).(\d{2}).(\d{4})/
startdate.constrain.1.message.dataWrap = <span class="constrain">%%%WRONG_DATE%%% (TT.MM.JJJJ)</span>
enddate.constrain.1.regexp = /(\d{2}).(\d{2}).(\d{4})/
enddate.constrain.1.message.dataWrap = <span class="constrain">%%%WRONG_DATE%%% (TT.MM.JJJJ)</span>
}
fields.image.group = 1
fields.cal_organizer.public = 0
fields.cal_location.public = 0
fields.event_type.public = 0
fields.event_type.default = 0
fields.recurring.group = 1
}
}
edit {
event.enableRTE = 0
event.group = 1
event.onlyOwnEvents.group = 1
event.addFeUserToShared = 1
event.addFeUserToNotify = 1
event.fields {
calendar_id.default = 1
calendar_id.public = 0
allowedToCreateImages.group = 1
startdate.constrain.1.regexp = /(\d{2}).(\d{2}).(\d{4})/
startdate.constrain.1.message.dataWrap = <span class="constrain">%%%WRONG_DATE%%% (TT.MM.JJJJ)</span>
enddate.constrain.1.regexp = /(\d{2}).(\d{2}).(\d{4})/
enddate.constrain.1.message.dataWrap = <span class="constrain">%%%WRONG_DATE%%% (TT.MM.JJJJ)</span>
image.group = 1
cal_organizer.public = 0
cal_location.public = 0
category.public = 1
event_type.public = 0
event_type.default = 0
recurring.group = 1
}
}
delete {
event.group = 1
event.addFeUserToShared = 1
event.onlyOwnEvents.group = 1
event.addFeUserToNotify = 1
# event.allowedToDeleteEvents.group = 1
}
}
view {
event.event.image.dataWrap = |
event.event.cruser_name.dataWrap = <div>erstellt von: |</div>
other.loginPageId = 86
other.userFolderId = 87
create_event.redirectAfterCreateToPid = 334
create_event.endtime_stdWrap.dataWrap = bis <select name="tx_cal_controller[endtime]" id="endtime" size="1">|</select>
create_event.endtime_stdWrap.dataWrap = <label for="endtime">bis:</label> <select name="tx_cal_controller[endtime]" id="endtime" size="1">|</select>
create_event.location_stdWrap.dataWrap = <p><label for="location">Wo###LOCATION_REQUIRED###:</label><input type="text" value="|" size="20" name="tx_cal_controller[location]" id="location" /></p>
edit_event.redirectAfterCreateToPid = 335
edit_event.redirectAfterEditToPid = 335
delete_event.redirectAfterDeleteToPid = 336
edit_event.redirectAfterEditToView = single_view
edit_event.location_stdWrap.dataWrap = <p><label for="location">Wo###LOCATION_REQUIRED###:</label><input type="text" value="|" size="20" name="tx_cal_controller[location]" id="location" /></p>
edit_event.cal_location_stdWrap.dataWrap = <p><label for="cal_location">Wo###CAL_LOCATION_REQUIRED###:</label><select name="tx_cal_controller[cal_location]" size="1" id="cal_location">|</select></p>
edit_event.endtime_stdWrap.dataWrap = <label for="endtime">bis:</label> <select name="tx_cal_controller[endtime]" id="endtime" size="1">|</select>
}
}
es ist immer hilfreich im ObjectBrowser mal nach allen Möglichkeiten zu schauen, irgendwann tun einem die Augen weh aber man findet fast alles
Grüße Enrico