"Máté Szabó" <msz...@wikia-inc.com> wrote in message news:80e88bac-ae9b-42ae-a0ba-834a39a7a...@wikia-inc.com...
Hi Máté, I know it's been a while, but I've only now found some time to work on this in any depth. > The DOM-based wikitext preprocessor (Preprocessor_DOM class and friends) > was deprecated in MediaWiki 1.34 and removed in MediaWiki 1.35 as part of > the Wikimedia Parsing Team's work around Parsoid-PHP.[1] I guess that explains why things changed in MW 1.34, specifically. > In the short/medium term, the easiest fix to keep your code working would > be to > use the other preprocessor implementation (class Preprocessor_Hash and > friends) > instead. I think this is what I have now done. The solution I implemented was to replace the following line: $NewFrame = new PPTemplateFrame_DOM($Frame->preprocessor, $Frame, array(), $Vars, $Frame->title); With this: if (is_a($Frame, "PPFrame_Hash")) $TemplateFrameClass = "PPTemplateFrame_Hash"; else $TemplateFrameClass = "PPTemplateFrame_DOM"; $NewFrame = new $TemplateFrameClass($Frame->preprocessor, $Frame, array(), $Vars, $Frame->title); This seems to work on both MW versions I am testing on (1.29 and 1.34) and fits-in with your explanation, above. > Since your code already has access to a PPFrame instance, > you can also try invoking its newChild() method to construct a > new child frame with your arguments, instead of creating the > instance directly. I couldn't get this to work. I needed to pass additional arguments into the constructor, but got an error if I passed in an array of string => string pairs and there was no documentation about how to convert such an array into a format that the function would accept, so I gave up on this approach. > In the long term, the legacy wikitext preprocessor will be removed, so > you may want to reach out to the Parsing Team[2] to find out how you > can make your code ready for Parsoid-PHP. Based on that comment, I suspect that further upgrade work will be required in due course, but at least I have solved the immediate problem.... for now! Thanks for your help, - Mark Clements (HappyDog)
_______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l