"Máté Szabó" <msz...@wikia-inc.com> wrote in message 
news:633f17eb-07cb-42a8-b8f8-30d703d78...@wikia-inc.com...
> Hi Mark,
>
> Yeah, newChild() expects a preprocessor node instance
> (rather than the raw arguments array itself) for the arguments,
> which can be obtained by calling Preprocessor::newPartNodeArray()
> with the given set of arguments.

That's useful info - I will take a look to see if that leads to a cleaner 
solution.  Would be good if there were some documentation that covers all 
this, but I guess one can only dream! :-)

> For Parsoid-PHP and the potential upgrade work it
> requires, it is probably something that will need to be
> addressed eventually, but from what I understand, there's
> plenty of time until then, so it should not be an immediate
> concern. :)

Yeah - I started looking into it, but there's still too many holes in the 
documentation and too much stuff that feels like it might change further. 
I'll wait until the release notes indicate impending doom!

Kind regards,

- Mark Clements
(HappyDog)


-----------
> Best,
> Máté Szabó
> Sr. Software Engineer
> he - him - his
>
> Fandom Poland sp. z o.o. z siedziba w Poznaniu, ul. Abp. A. Baraniaka 6
> Sad Rejonowy Poznan - Nowe Miasto i Wilda w Poznaniu, VIII Wydzial 
> Gospodarczy Krajowego Rejestru Sadowego, KRS 0000254365
> NIP: 5252358778
> Kapital zakladowy: 50.000,00 zlotych
>
>> On 8 Apr 2021, at 02:44, Mark Clements (HappyDog) <gm...@kennel17.co.uk> 
>> wrote:
>>
>> "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
>
>
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
> 




_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to