Re: Dynamic functions

"laurent.druart via opencms-dev" <[email protected]> Thu, 21 May 2026 08:59:41 +0200
Newsgroups gmane.comp.cms.opencms.devel
Message-ID <[email protected]>
SGVsbG8gRGFuaWVsLAoKVGhhbmsgeW91IGZvdXIgeW91ciBhbnN3ZXIuCgpBdCB0aGUgbW9tZW50
IEkgY3JlYXRlZCBhIGR5bmFtaWMgZnVuY3Rpb24gaW4gYSBtb2R1bGUsIHZlcnkgc2ltcGxlIGpz
cAo8JUAgdGFnbGliIHByZWZpeD0iYyIgdXJpPSJodHRwOi8vamF2YS5zdW4uY29tL2pzcC9qc3Rs
L2NvcmUiICU+CjwlQCB0YWdsaWIgcHJlZml4PSJmbiIgdXJpPSJodHRwOi8vamF2YS5zdW4uY29t
L2pzcC9qc3RsL2Z1bmN0aW9ucyIgJT4KPCVAIHRhZ2xpYiBwcmVmaXg9ImZtdCIgdXJpPSJodHRw
Oi8vamF2YS5zdW4uY29tL2pzcC9qc3RsL2ZtdCIgJT4KPCVAIHRhZ2xpYiBwcmVmaXg9ImNtcyIg
dXJpPSJodHRwOi8vd3d3Lm9wZW5jbXMub3JnL3RhZ2xpYi9jbXMiICU+CgphbmQgaHRtbCB0YWdz
LCBubyBsb2dpYwoKVGhlIGpzcCBmaWxlIGlzIGxvY2F0ZWQgaW4gbXkgbW9kdWxlIGluIC9lbGVt
ZW50cy9mdW5jdGlvbnMvCkkgZGVjbGFyZWQgdGhlIER5bmFtaWMgRnVuY3Rpb24gaW4gL2Z1bmN0
aW9ucyBhbmQgZmlsbGVkIHRoZSBKU1AgZmllbGQgd2l0aCAvZWxlbWVudHMvZnVuY3Rpb25zL215
ZnVuY3Rpb24uanNwCkluIHRoZSBmaWVsZCDCqyBDb250YWluZXIgdHlwZSDCuzogKgoKSW4gdGhl
IHNpdGVtYXAgbWFzdGVyIGNvbmZpZyBJIGFkZGVkIHRoZSBkeW5hbWljIGZ1bmN0aW9uIGluIMKr
IGR5bmFtaWMgZnVuY3Rpb25zIMK7IHRhYiBpbiB0aGUgZmllbGQgwqsgRHluYW1pYyBmdW5jdGlv
biB0byBiZSBhZGRlZCDCuwoKQnV0IGluIHBhZ2UgZWRpdG9yIG15IGR5bmFtaWMgZnVuY3Rpb24g
aXMgbm90IGFwcGVhcmluZy4KCknigJltIG5vdCB1c2luZyB0aGUgTWVyY3VyeSB0ZW1wbGF0ZS4K
CkRvIEkgbWlzcyBzb21ldGhpbmc/CgpUaGFua3MgZm9yIHlvdXIgaGVscC4KClJlZ2FyZHMsCgpM
YXVyZW50CgoKPiBMZSAyMSBtYWkgMjAyNiDDoCAwODo0NywgRGFuaWVsIFNlaWRlbCB2aWEgb3Bl
bmNtcy1kZXYgPG9wZW5jbXMtZGV2QG9wZW5jbXMub3JnPiBhIMOpY3JpdCA6Cj4gCj4gSGkgTGF1
cmVudCwKPiAKPiBmb3IgY3VycmVudCBPcGVuQ21zIHZlcnNpb25zIEknZCBzZWUgYm90aCBjb25j
ZXB0cyBzZXBhcmF0ZWQuCj4gCj4gMS4gRHluYW1pYyBmdW5jdGlvbnMgKCJDb250ZW50IHdpdGhv
dXQgY29udGVudCIpOiBZb3UgbWF5IHNlZSB0aGlzIGNvbnRlbnQgbGlrZSBhIGZvcm1hdHRlciBj
b25maWd1cmF0aW9uIHRoYXQgeW91IGRvbid0IGhhdmUgdG8gYmFja3VwIHdpdGggYSBjb250ZW50
IHR5cGUgeW91IGNyZWF0ZWQuIFRoZSBvbmx5IGRyYXdiYWNrIChJIHNlZSkgaXMgdGhhdCBhbGwg
ZHluYW1pYyBmdW5jdGlvbnMgd2lsbCBhcHBlYXIgdW5kZXIgIkR5bmFtaWMgZnVuY3Rpb24iIGlu
IHRoZSBhZGQgd2l6YXJkIG9mIHRoZSBwYWdlIGVkaXRvci4gSGVuY2UsIGFsbCBmdW5jdGlvbmFs
aXR5IHRoYXQgaXMgZHluYW1pYyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSAiYm94Ii4gVGhlIGRl
ZmF1bHQgTWVyY3VyeSB0ZW1wbGF0ZSB1c2VzIHZhcmlvdXMgZHluYW1pYyBmdW5jdGlvbnMuIFlv
dSBmaW5kIHRoZW0gdW5kZXIgIkFkdmFuY2VkIGVsZW1lbnRzIiBpbiB0aGUgYWRkIHdpemFyZC4K
PiAKPiAKPiAyLiBGdW5jdGlvbiBkZXRhaWwgcGFnZXM6IEkgZXNzZW5jZSwgaXQncyBqdXN0IGEg
d2F5IHRvIG1ha2UgYSBwYWdlIGxpbmthYmxlIGJ5IGEgc3BlY2lhbCBuYW1lLiBGb3JnZXQgYWJv
dXQgdGhlIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCB3aWxsIG1ha2UgdGhlIGZ1bmN0
aW9uIGFwcGVhciBvbiB0aGUgZnVuY3Rpb24gZGV0YWlsIHBhZ2UgKHRoZSBjb250YWluZXIuaW5m
byBwcm9wZXJ0eSksIHRoZXkgYmFyZWx5IHdvcmsgZm9yIG5lc3RlZCBjb250YWluZXJzLCBidXQg
eW91IGNhbiBwbGFjZSB0aGUgZnVuY3Rpb24gYnkgaGFuZCBvbiB0aGUgZnVuY3Rpb24gZGV0YWls
IHBhZ2UuCj4gCj4gSGVyZSdzIGFuIGV4YW1wbGU6Cj4gCj4gQXNzdW1lIGluIHlvdXIgdGVtcGxh
dGUgeW91IGhhdmUgYSBmb290ZXIgYWx3YXlzIGFkZGluZyBhICJQcml2YWN5IiBsaW5rLiBCdXQs
IGRlcGVuZGluZyBvbiB0aGUgc2l0ZSBvciB0aGUgbG9jYWxlIHlvdSBhcmUgaW4sIHRoZSBsaW5r
IHNob3VsZCBwb2ludCB0byBkaWZmZXJlbnQgdXJscy4gVGhhdCdzIGEgZ29vZCBleGFtcGxlIGZv
ciBhIGZ1bmN0aW9uIGRldGFpbCBwYWdlLgo+IAo+IEluIHlvdXIgdGVtcGxhdGUgSlNQIHdoZW4g
eW91IGFkZCB0aGUgbGluaywganVzdCB1c2UgJHtjbXMuZnVuY3Rpb25EZXRhaWxbJ3ByaXZhY3kn
XX0gYXMgbGluayB0YXJnZXQuCj4gCj4gQW5kIGluIHRoZSBzaXRlbWFwIGNvbmZpZ3VyYXRpb25z
IG9mIHlvdXIgKHN1Yi0pc2l0ZXMgYWRkIHRoZSBkZXRhaWwgcGFnZSAnZnVuY3Rpb25AcHJpdmFj
eScgcG9pbnRpbmcgdG8gdGhlIChzdWItKXNpdGUgc3BlY2lmaWMgVVJMLiBJZiB5b3UgYWRkZWQg
dGhlIGZ1bmN0aW9uIGFzIG5hbWVkIGZ1bmN0aW9uIGluIHRoZSBtb2R1bGUgKHNlZSBodHRwczov
L2RvY3VtZW50YXRpb24ub3BlbmNtcy5vcmcvb3BlbmNtcy1kb2N1bWVudGF0aW9uL3RlbXBsYXRl
LWRldmVsb3BtZW50L2R5bmFtaWMtZnVuY3Rpb25zL2Z1bmN0aW9uLWRldGFpbC1wYWdlcyksIHlv
dSBtYXkgYWxzbyBkbyB0aGlzIHZpYSB0aGUgc2l0ZW1hcCBlZGl0b3IgYnkgYWRkaW5nIGEgZnVu
Y3Rpb24gcGFnZS4gQnV0IHRoaXMgaXMgb3B0aW9uYWwsIGFkZGluZyBpdCBqdXN0IGJ5IGhhbmQg
aW4gdGhlIC5jb25maWcgZmlsZSBpcyBnb29kIGFzIHdlbGwuCj4gCj4gVGhlIGRlZmF1bHQgZGVt
byBvZiB0aGUgY3VycmVudCBPcGVuQ21zIHZlcnNpb24gdXNlcyBhIGZ1bmN0aW9uIGRldGFpbCBw
YWdlICh0aGF0IGlzIG5vdCBjb25maWd1cmVkIGFzIG5hbWVkKSBmb3IgdGhlIHNlYXJjaCBwYWdl
LiBZb3UgZmluZCBhIGRldGFpbCBwYWdlICdmdW5jdGlvbkBTZWFyY2ggcGFnZScgaW4gdGhlIHNp
dGVtYXAgY29uZmlndXJhdGlvbnMuCj4gCj4gCj4gQmVzdCwgRGFuaWVsLgo+IAo+IAo+IEFtIDIw
LjA1LjI2IHVtIDE4OjI0IHNjaHJpZWIgbGF1cmVudC5kcnVhcnQgdmlhIG9wZW5jbXMtZGV2Ogo+
PiBIZWxsbywKPj4gCj4+IERvZXMgc29tZW9uZSBoYXZlIGEgdHV0b3JpYWwgZm9yIMKrIGR5bmFt
aWMgZnVuY3Rpb25zIMK7IGFuZCDCqyBmdW5jdGlvbiBkZXRhaWwgcGFnZSDCuyA/Cj4+IAo+PiBU
aGUgMiBleGFtcGxlcyBwYWdlcyBpbiB0aGUgZG9jIGFyZSDCqyBlbXB0eSDCuyAuCj4+IAo+PiBo
dHRwczovL2RvY3VtZW50YXRpb24ub3BlbmNtcy5vcmcvb3BlbmNtcy1kb2N1bWVudGF0aW9uL3Rv
ZG8vZGVtb3MvZHluYW1pYy1mdW5jdGlvbnMKPj4gaHR0cHM6Ly9kb2N1bWVudGF0aW9uLm9wZW5j
bXMub3JnL29wZW5jbXMtZG9jdW1lbnRhdGlvbi90b2RvL2RlbW9zL2Z1bmN0aW9uLWRldGFpbC1w
YWdlcwo+PiAKPj4gVGhhbmsgeW91LAo+PiAKPj4gUmVnYXJkcywKPj4gCj4+IExhdXJlbnQKPj4g
Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IFRo
aXMgbWFpbCBpcyBzZW50IHRvIHlvdSBmcm9tIHRoZSBvcGVuY21zLWRldiBtYWlsaW5nIGxpc3QK
Pj4gVG8gY2hhbmdlIHlvdXIgbGlzdCBvcHRpb25zLCBvciB0byB1bnN1YnNjcmliZSBmcm9tIHRo
ZSBsaXN0LCBwbGVhc2UgdmlzaXQKPj4gaHR0cHM6Ly9saXN0cy5vcGVuY21zLm9yZy9tYWlsbWFu
L2xpc3RpbmZvL29wZW5jbXMtZGV2Cj4+IAo+PiAKPj4gCj4gLS0gCj4gS2luZCBSZWdhcmRzCj4g
Cj4gRGFuaWVsLgo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0KPiAKPiBEYW5pZWwgU2VpZGVsCj4g
QWxrYWNvbiBTb2Z0d2FyZSBHbWJIICYgQ28uIEtHIC0gVGhlIE9wZW5DbXMgRXhwZXJ0cwo+IGh0
dHBzOi8vd3d3LmFsa2Fjb24uY29tIC0gaHR0cDovL3d3dy5vcGVuY21zLm9yZwo+IAo+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gVGhpcyBtYWlsIGlz
IHNlbnQgdG8geW91IGZyb20gdGhlIG9wZW5jbXMtZGV2IG1haWxpbmcgbGlzdAo+IFRvIGNoYW5n
ZSB5b3VyIGxpc3Qgb3B0aW9ucywgb3IgdG8gdW5zdWJzY3JpYmUgZnJvbSB0aGUgbGlzdCwgcGxl
YXNlIHZpc2l0Cj4gaHR0cHM6Ly9saXN0cy5vcGVuY21zLm9yZy9tYWlsbWFuL2xpc3RpbmZvL29w
ZW5jbXMtZGV2Cj4gCj4gCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpUaGlzIG1haWwgaXMgc2VudCB0byB5b3UgZnJvbSB0aGUgb3BlbmNtcy1kZXYg
bWFpbGluZyBsaXN0ClRvIGNoYW5nZSB5b3VyIGxpc3Qgb3B0aW9ucywgb3IgdG8gdW5zdWJzY3Jp
YmUgZnJvbSB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0Cmh0dHBzOi8vbGlzdHMub3BlbmNtcy5vcmcv
bWFpbG1hbi9saXN0aW5mby9vcGVuY21zLWRldgoKCgo=