ssg icon indicating copy to clipboard operation
ssg copied to clipboard

Multiple afters

Open efc opened this issue 5 months ago • 2 comments

This implements a method of allowing more than one after callback, as requested in #182.

It adds an option $id parameter to the SSG::after method that defaults to "unidentified". This means that all existing calls to SSG::after will work as they always have, overwriting one another. However, if one supplies an identifier string, then the callback function will be added to an array of callback functions instead of overwriting previous after callbacks.

One can also specify identifiers that should be skipped using the new SSG::skipAfter method. This allows you to explicitly prevent after callbacks from other parties from being run (for example, if you supply similar functionality yourself or you have found that their callback is incompatible with your use case).

Finally, it uses the identifiers to inform the user which after callbacks are being run or skipped.

Note the reversion in composer.json is probably not necessary, but was required to get the addon installed on my system.

efc avatar Aug 09 '25 20:08 efc

One can also specify identifiers that should be skipped using the new SSG::skipAfter method.

Did you need this for your use case or did you add it just in case it is useful?

duncanmcclean avatar Sep 22 '25 11:09 duncanmcclean

The skipAfter was needed because one vendor implemented an after that actually was different enough from mine to end up with a different result. So I found I needed a way to disable their after and use mine as a substitute. In this case, since they did not use an identifier, I was able to use skipAfter with the default unidentified id to disable their callback.

efc avatar Sep 22 '25 14:09 efc