Re: Dynamic functions

Daniel Seidel via opencms-dev <[email protected]> Thu, 21 May 2026 11:14:54 +0200
Newsgroups gmane.comp.cms.opencms.devel
Message-ID <[email protected]>
SGkgTGF1cmVudCwKCnRoZXJlJ3MgYSBzY2lzc29yIHJpZ2h0IGFib3ZlIHRoZSBvcHRpb24geW91
IGFyZSBob3ZlcmluZyBpbiB5b3VyIHNjcmVlbiAKc2hvdC4gVXNlIHRoaXMgb25lLgoKQmVzdCwg
RGFuaWVsLgoKCkFtIDIxLjA1LjI2IHVtIDEwOjQ3IHNjaHJpZWIgbGF1cmVudC5kcnVhcnQ6Cj4g
SGVsbG8gRGFuaWVsLAo+Cj4gSSBvbmx5IGhhdmUgYSBjb250YWluZXIgdHlwZSBvcHRpb24sIG5v
IGNvbnRhaW5lciB3aWR0aAo+Cj4KPgo+IE15IEpTUCBpcyBhbHJlYWR5IHZlcnkgc2ltcGxlLCBv
bmx5IGh0bWwKPgo+IE15IGZ1bmN0aW9uIGlzIGFscmVhZHkgaW4gbXkgc2l0ZSBtYXAgY29uZmln
dXJhdGlvbgo+Cj4gVGhhbmsgZm9yIHlvdXIgaGVscCwKPgo+IFJlZ2FyZHMsCj4gTGF1cmVudAo+
Cj4+IExlIDIxIG1haSAyMDI2IMOgIDEwOjAxLCBEYW5pZWwgU2VpZGVsIDxkLnNlaWRlbEBhbGth
Y29uLmNvbT4gYSDDqWNyaXQgOgo+Pgo+PiBIaSBMYXVyZW50LAo+Pgo+PiB0aHJlZSB0aGluZ3M6
Cj4+Cj4+IDEuIE1ha2UgdGhlIEpTUCBldmVuIHNpbXBsZXIuIEp1c3QgdXNlIDxoMT5IZWxsbyBX
b3JsZCE8L2gxPiBhcyBjb250ZW50Lgo+Pgo+PiAyLiBZb3UgbXVzdCB1c2UgYSBjb250YWluZXIg
bmFtZSB0aGF0IGZpdHMgdG8gYSBjb250YWluZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBtYXRjaC4g
T3IgdXNlIGNvbnRhaW5lciB3aWR0aCBhbmQgc2V0IHdpZHRoIDAgdG8gbWFrZSBpdCBmaXQgZXZl
cnl3aGVyZQo+Pgo+PiAzLiBZb3UgbWF5IGhhdmUgdG8gYWRkIHRoZSBmdW5jdGlvbiBpbiB5b3Vy
IHNpdGVtYXAgbWFzdGVyIGNvbmZpZ3VyYXRpb24gKG9yIHRoZSBzaXRlbWFwIGNvbmZpZ3VyYXRp
b24pIGluIHRoZSBkeW5hbWljIGZ1bmN0aW9ucyB0YWIuCj4+Cj4+IEJlc3QsIERhbmllbC4KPj4K
Pj4gQW0gMjEuMDUuMjYgdW0gMDg6NTkgc2NocmllYiBsYXVyZW50LmRydWFydDoKPj4+IEhlbGxv
IERhbmllbCwKPj4+Cj4+PiBUaGFuayB5b3UgZm91ciB5b3VyIGFuc3dlci4KPj4+Cj4+PiBBdCB0
aGUgbW9tZW50IEkgY3JlYXRlZCBhIGR5bmFtaWMgZnVuY3Rpb24gaW4gYSBtb2R1bGUsIHZlcnkg
c2ltcGxlIGpzcAo+Pj4gPCVAIHRhZ2xpYiBwcmVmaXg9ImMiIHVyaT0iaHR0cDovL2phdmEuc3Vu
LmNvbS9qc3AvanN0bC9jb3JlIiAlPgo+Pj4gPCVAIHRhZ2xpYiBwcmVmaXg9ImZuIiB1cmk9Imh0
dHA6Ly9qYXZhLnN1bi5jb20vanNwL2pzdGwvZnVuY3Rpb25zIiAlPgo+Pj4gPCVAIHRhZ2xpYiBw
cmVmaXg9ImZtdCIgdXJpPSJodHRwOi8vamF2YS5zdW4uY29tL2pzcC9qc3RsL2ZtdCIgJT4KPj4+
IDwlQCB0YWdsaWIgcHJlZml4PSJjbXMiIHVyaT0iaHR0cDovL3d3dy5vcGVuY21zLm9yZy90YWds
aWIvY21zIiAlPgo+Pj4KPj4+IGFuZCBodG1sIHRhZ3MsIG5vIGxvZ2ljCj4+Pgo+Pj4gVGhlIGpz
cCBmaWxlIGlzIGxvY2F0ZWQgaW4gbXkgbW9kdWxlIGluIC9lbGVtZW50cy9mdW5jdGlvbnMvCj4+
PiBJIGRlY2xhcmVkIHRoZSBEeW5hbWljIEZ1bmN0aW9uIGluIC9mdW5jdGlvbnMgYW5kIGZpbGxl
ZCB0aGUgSlNQIGZpZWxkIHdpdGggL2VsZW1lbnRzL2Z1bmN0aW9ucy9teWZ1bmN0aW9uLmpzcAo+
Pj4gSW4gdGhlIGZpZWxkIMKrIENvbnRhaW5lciB0eXBlIMK7OiAqCj4+Pgo+Pj4gSW4gdGhlIHNp
dGVtYXAgbWFzdGVyIGNvbmZpZyBJIGFkZGVkIHRoZSBkeW5hbWljIGZ1bmN0aW9uIGluIMKrIGR5
bmFtaWMgZnVuY3Rpb25zIMK7IHRhYiBpbiB0aGUgZmllbGQgwqsgRHluYW1pYyBmdW5jdGlvbiB0
byBiZSBhZGRlZCDCuwo+Pj4KPj4+IEJ1dCBpbiBwYWdlIGVkaXRvciBteSBkeW5hbWljIGZ1bmN0
aW9uIGlzIG5vdCBhcHBlYXJpbmcuCj4+Pgo+Pj4gSeKAmW0gbm90IHVzaW5nIHRoZSBNZXJjdXJ5
IHRlbXBsYXRlLgo+Pj4KPj4+IERvIEkgbWlzcyBzb21ldGhpbmc/Cj4+Pgo+Pj4gVGhhbmtzIGZv
ciB5b3VyIGhlbHAuCj4+Pgo+Pj4gUmVnYXJkcywKPj4+Cj4+PiBMYXVyZW50Cj4+Pgo+Pj4KPj4+
PiBMZSAyMSBtYWkgMjAyNiDDoCAwODo0NywgRGFuaWVsIFNlaWRlbCB2aWEgb3BlbmNtcy1kZXYg
PG9wZW5jbXMtZGV2QG9wZW5jbXMub3JnPiBhIMOpY3JpdCA6Cj4+Pj4KPj4+PiBIaSBMYXVyZW50
LAo+Pj4+Cj4+Pj4gZm9yIGN1cnJlbnQgT3BlbkNtcyB2ZXJzaW9ucyBJJ2Qgc2VlIGJvdGggY29u
Y2VwdHMgc2VwYXJhdGVkLgo+Pj4+Cj4+Pj4gMS4gRHluYW1pYyBmdW5jdGlvbnMgKCJDb250ZW50
IHdpdGhvdXQgY29udGVudCIpOiBZb3UgbWF5IHNlZSB0aGlzIGNvbnRlbnQgbGlrZSBhIGZvcm1h
dHRlciBjb25maWd1cmF0aW9uIHRoYXQgeW91IGRvbid0IGhhdmUgdG8gYmFja3VwIHdpdGggYSBj
b250ZW50IHR5cGUgeW91IGNyZWF0ZWQuIFRoZSBvbmx5IGRyYXdiYWNrIChJIHNlZSkgaXMgdGhh
dCBhbGwgZHluYW1pYyBmdW5jdGlvbnMgd2lsbCBhcHBlYXIgdW5kZXIgIkR5bmFtaWMgZnVuY3Rp
b24iIGluIHRoZSBhZGQgd2l6YXJkIG9mIHRoZSBwYWdlIGVkaXRvci4gSGVuY2UsIGFsbCBmdW5j
dGlvbmFsaXR5IHRoYXQgaXMgZHluYW1pYyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSAiYm94Ii4g
VGhlIGRlZmF1bHQgTWVyY3VyeSB0ZW1wbGF0ZSB1c2VzIHZhcmlvdXMgZHluYW1pYyBmdW5jdGlv
bnMuIFlvdSBmaW5kIHRoZW0gdW5kZXIgIkFkdmFuY2VkIGVsZW1lbnRzIiBpbiB0aGUgYWRkIHdp
emFyZC4KPj4+Pgo+Pj4+Cj4+Pj4gMi4gRnVuY3Rpb24gZGV0YWlsIHBhZ2VzOiBJIGVzc2VuY2Us
IGl0J3MganVzdCBhIHdheSB0byBtYWtlIGEgcGFnZSBsaW5rYWJsZSBieSBhIHNwZWNpYWwgbmFt
ZS4gRm9yZ2V0IGFib3V0IHRoZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb25zIHRoYXQgd2lsbCBt
YWtlIHRoZSBmdW5jdGlvbiBhcHBlYXIgb24gdGhlIGZ1bmN0aW9uIGRldGFpbCBwYWdlICh0aGUg
Y29udGFpbmVyLmluZm8gcHJvcGVydHkpLCB0aGV5IGJhcmVseSB3b3JrIGZvciBuZXN0ZWQgY29u
dGFpbmVycywgYnV0IHlvdSBjYW4gcGxhY2UgdGhlIGZ1bmN0aW9uIGJ5IGhhbmQgb24gdGhlIGZ1
bmN0aW9uIGRldGFpbCBwYWdlLgo+Pj4+Cj4+Pj4gSGVyZSdzIGFuIGV4YW1wbGU6Cj4+Pj4KPj4+
PiBBc3N1bWUgaW4geW91ciB0ZW1wbGF0ZSB5b3UgaGF2ZSBhIGZvb3RlciBhbHdheXMgYWRkaW5n
IGEgIlByaXZhY3kiIGxpbmsuIEJ1dCwgZGVwZW5kaW5nIG9uIHRoZSBzaXRlIG9yIHRoZSBsb2Nh
bGUgeW91IGFyZSBpbiwgdGhlIGxpbmsgc2hvdWxkIHBvaW50IHRvIGRpZmZlcmVudCB1cmxzLiBU
aGF0J3MgYSBnb29kIGV4YW1wbGUgZm9yIGEgZnVuY3Rpb24gZGV0YWlsIHBhZ2UuCj4+Pj4KPj4+
PiBJbiB5b3VyIHRlbXBsYXRlIEpTUCB3aGVuIHlvdSBhZGQgdGhlIGxpbmssIGp1c3QgdXNlICR7
Y21zLmZ1bmN0aW9uRGV0YWlsWydwcml2YWN5J119IGFzIGxpbmsgdGFyZ2V0Lgo+Pj4+Cj4+Pj4g
QW5kIGluIHRoZSBzaXRlbWFwIGNvbmZpZ3VyYXRpb25zIG9mIHlvdXIgKHN1Yi0pc2l0ZXMgYWRk
IHRoZSBkZXRhaWwgcGFnZSAnZnVuY3Rpb25AcHJpdmFjeScgcG9pbnRpbmcgdG8gdGhlIChzdWIt
KXNpdGUgc3BlY2lmaWMgVVJMLiBJZiB5b3UgYWRkZWQgdGhlIGZ1bmN0aW9uIGFzIG5hbWVkIGZ1
bmN0aW9uIGluIHRoZSBtb2R1bGUgKHNlZSBodHRwczovL2RvY3VtZW50YXRpb24ub3BlbmNtcy5v
cmcvb3BlbmNtcy1kb2N1bWVudGF0aW9uL3RlbXBsYXRlLWRldmVsb3BtZW50L2R5bmFtaWMtZnVu
Y3Rpb25zL2Z1bmN0aW9uLWRldGFpbC1wYWdlcyksIHlvdSBtYXkgYWxzbyBkbyB0aGlzIHZpYSB0
aGUgc2l0ZW1hcCBlZGl0b3IgYnkgYWRkaW5nIGEgZnVuY3Rpb24gcGFnZS4gQnV0IHRoaXMgaXMg
b3B0aW9uYWwsIGFkZGluZyBpdCBqdXN0IGJ5IGhhbmQgaW4gdGhlIC5jb25maWcgZmlsZSBpcyBn
b29kIGFzIHdlbGwuCj4+Pj4KPj4+PiBUaGUgZGVmYXVsdCBkZW1vIG9mIHRoZSBjdXJyZW50IE9w
ZW5DbXMgdmVyc2lvbiB1c2VzIGEgZnVuY3Rpb24gZGV0YWlsIHBhZ2UgKHRoYXQgaXMgbm90IGNv
bmZpZ3VyZWQgYXMgbmFtZWQpIGZvciB0aGUgc2VhcmNoIHBhZ2UuIFlvdSBmaW5kIGEgZGV0YWls
IHBhZ2UgJ2Z1bmN0aW9uQFNlYXJjaCBwYWdlJyBpbiB0aGUgc2l0ZW1hcCBjb25maWd1cmF0aW9u
cy4KPj4+Pgo+Pj4+Cj4+Pj4gQmVzdCwgRGFuaWVsLgo+Pj4+Cj4+Pj4KPj4+PiBBbSAyMC4wNS4y
NiB1bSAxODoyNCBzY2hyaWViIGxhdXJlbnQuZHJ1YXJ0IHZpYSBvcGVuY21zLWRldjoKPj4+Pj4g
SGVsbG8sCj4+Pj4+Cj4+Pj4+IERvZXMgc29tZW9uZSBoYXZlIGEgdHV0b3JpYWwgZm9yIMKrIGR5
bmFtaWMgZnVuY3Rpb25zIMK7IGFuZCDCqyBmdW5jdGlvbiBkZXRhaWwgcGFnZSDCuyA/Cj4+Pj4+
Cj4+Pj4+IFRoZSAyIGV4YW1wbGVzIHBhZ2VzIGluIHRoZSBkb2MgYXJlIMKrIGVtcHR5IMK7IC4K
Pj4+Pj4KPj4+Pj4gaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9wZW5jbXMub3JnL29wZW5jbXMtZG9j
dW1lbnRhdGlvbi90b2RvL2RlbW9zL2R5bmFtaWMtZnVuY3Rpb25zCj4+Pj4+IGh0dHBzOi8vZG9j
dW1lbnRhdGlvbi5vcGVuY21zLm9yZy9vcGVuY21zLWRvY3VtZW50YXRpb24vdG9kby9kZW1vcy9m
dW5jdGlvbi1kZXRhaWwtcGFnZXMKPj4+Pj4KPj4+Pj4gVGhhbmsgeW91LAo+Pj4+Pgo+Pj4+PiBS
ZWdhcmRzLAo+Pj4+Pgo+Pj4+PiBMYXVyZW50Cj4+Pj4+Cj4+Pj4+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+IFRoaXMgbWFpbCBpcyBzZW50IHRv
IHlvdSBmcm9tIHRoZSBvcGVuY21zLWRldiBtYWlsaW5nIGxpc3QKPj4+Pj4gVG8gY2hhbmdlIHlv
dXIgbGlzdCBvcHRpb25zLCBvciB0byB1bnN1YnNjcmliZSBmcm9tIHRoZSBsaXN0LCBwbGVhc2Ug
dmlzaXQKPj4+Pj4gaHR0cHM6Ly9saXN0cy5vcGVuY21zLm9yZy9tYWlsbWFuL2xpc3RpbmZvL29w
ZW5jbXMtZGV2Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4gLS0gCj4+Pj4gS2luZCBSZWdhcmRzCj4+
Pj4KPj4+PiBEYW5pZWwuCj4+Pj4KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4KPj4+PiBE
YW5pZWwgU2VpZGVsCj4+Pj4gQWxrYWNvbiBTb2Z0d2FyZSBHbWJIICYgQ28uIEtHIC0gVGhlIE9w
ZW5DbXMgRXhwZXJ0cwo+Pj4+IGh0dHBzOi8vd3d3LmFsa2Fjb24uY29tIC0gaHR0cDovL3d3dy5v
cGVuY21zLm9yZwo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KPj4+PiBUaGlzIG1haWwgaXMgc2VudCB0byB5b3UgZnJvbSB0aGUgb3BlbmNt
cy1kZXYgbWFpbGluZyBsaXN0Cj4+Pj4gVG8gY2hhbmdlIHlvdXIgbGlzdCBvcHRpb25zLCBvciB0
byB1bnN1YnNjcmliZSBmcm9tIHRoZSBsaXN0LCBwbGVhc2UgdmlzaXQKPj4+PiBodHRwczovL2xp
c3RzLm9wZW5jbXMub3JnL21haWxtYW4vbGlzdGluZm8vb3BlbmNtcy1kZXYKPj4+Pgo+Pj4+Cj4+
Pj4KPj4gLS0gCj4+IEtpbmQgUmVnYXJkcwo+Pgo+PiBEYW5pZWwuCj4+Cj4+IC0tLS0tLS0tLS0t
LS0tLS0tLS0KPj4KPj4gRGFuaWVsIFNlaWRlbAo+PiBBbGthY29uIFNvZnR3YXJlIEdtYkggJiBD
by4gS0cgLSBUaGUgT3BlbkNtcyBFeHBlcnRzCj4+IGh0dHBzOi8vd3d3LmFsa2Fjb24uY29tIC0g
aHR0cDovL3d3dy5vcGVuY21zLm9yZwo+PgotLSAKS2luZCBSZWdhcmRzCgpEYW5pZWwuCgotLS0t
LS0tLS0tLS0tLS0tLS0tCgpEYW5pZWwgU2VpZGVsCkFsa2Fjb24gU29mdHdhcmUgR21iSCAmIENv
LiBLRyAtIFRoZSBPcGVuQ21zIEV4cGVydHMKaHR0cHM6Ly93d3cuYWxrYWNvbi5jb20gLSBodHRw
Oi8vd3d3Lm9wZW5jbXMub3JnCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpUaGlzIG1haWwgaXMgc2VudCB0byB5b3UgZnJvbSB0aGUgb3BlbmNtcy1kZXYg
bWFpbGluZyBsaXN0ClRvIGNoYW5nZSB5b3VyIGxpc3Qgb3B0aW9ucywgb3IgdG8gdW5zdWJzY3Jp
YmUgZnJvbSB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0Cmh0dHBzOi8vbGlzdHMub3BlbmNtcy5vcmcv
bWFpbG1hbi9saXN0aW5mby9vcGVuY21zLWRldgoKCgo=