Manual:Hooks/ParserGetVariableValueSwitch

Łatwo sobie wyobrazić, jak bolał Winnetou z powodu utraty ojca i siostry. Podczas pogrzebu mógł tę boleść wyrazić, potem jednak musiał ją zamknąć w sobie głęboko. Nakazywał mu to z jednej strony indyański obyczaj, a z drugiej konieczność zwrócenia całej uwagi na spodziewane przybycie Keiowehów. Nie był to już przygnieciony gorzką stratą syn i brat, lecz wódz wojowniczej drużyny, na której czele miał odeprzeć napad nieprzyjaciół i pochwycić mordercę Santera. Miał widocznie plan już gotowy, gdyż zaraz po pogrzebie kazał Apaczom przygotować się do drogi i sprowadzić konie, które znajdowały się na dolinie. — Dlaczego mój brat wydaje to zarządzenie? — spytałem. — Teren jest tak uciążliwy, że sprowadzenie tu koni będzie wiele trudu kosztowało. — Wiem o tem — odrzekł — ale stać się to musi, gdyż chcę w ten sposób wywieść w pole Keiowehów. Ujęli się za mordercą, za to wszyscy zginą? Twarz jego przybrała przy tych słowach wyraz groźny, stanowczy. Jeśliby dokonał swego zamiaru, Keiowehowie byliby zgubieni. Ja byłem w tym wypadku za łagodniejszą karą. Keiowehowie byli wprawdzie naszymi wrogami, lecz nie zawinili śmierci Inczu-czuny i jego córki. Czy mogłem pozwolić sobie wpłynąć na zmianę nastroju Winnetou? Kto wie, czybym nie był wzbudził w nim gniewu na siebie. Nastręczyła się jednak sposobność do tego rodzaju próby, gdyż byliśmy sami na polowaniu. Apacze poszli natychmiast za jego rozkazem, a Stone i Parker przyłączyli się do nich. Nikt zatem nie byłby usłyszał odpowiedzi, która, dana w gniewie, więc niewątpliwie szorstka, w obecności drugich byłaby mnie obraziła. Wyjawiłem Winnetou swoje zdanie w tej sprawie, ale ku memu zdumieniu nie nastąpił skutek, jakiego się obawiałem. On spojrzał na mnie dużemi, posępnemi oczyma i odpowiedział spokojnie: — Spodziewałem się tego po moim bracie, gdyż on ustępowania przed wrogiem nie uważa za słabość. — Tak nie myślałem, o ustępowaniu nie może być mowy. Zastanawiałem się już nawet nad tem, jak ich wszystkich pochwycić. Ale oni nie winni temu, co się tutaj stało i byłoby niesprawiedliwością, gdyby mieli karę za to ponieść. — Ujęli się za mordercą i chcą tu przyjść, aby uderzyć na nas! Czy nie dostateczny to dla nas powód, żeby ich nie oszczędzać? — Nie, a przynajmniej dla mnie nie. Przykro mi, że brat mój, Winnetou, gotów popełnić błąd, który jest przyczyną zguby wszystkich indyańskich narodów. — Jaki błąd ma Old Shatterhand na myśli? — Ten, że Indyanie rozdzierają się nawzajem, zamiast pomagać sobie przeciwko wspólnemu nieprzyjacielowi. Pozwól, że szczerze z tobą pomówię. Kto zdaniem twojem na ogół jest mędrszy i chytrzejszy, czerwony mąż, czy blada twarz? — Blada twarz. Przyznaję to, bo to prawda. Biali posiadają więcej niż my wiadomości i zdolności. Przewyższają nas niemal we wszystkiem. — Masz słuszność. My was przewyższamy. Ty jednak nie jesteś zwyczajnym Indyaninem. Wielki Duch udzielił ci darów, jakiemi nawet u białych mało kto się cieszy, dlatego chciałbym, żebyś myślał inaczej, niż zwykły czerwony mąż. Rozum masz bystry, a wzrok twój sięga o wiele, o wiele dalej od cielesnego i duchowego oka zwykłego wojownika. Ileż to razy wykopywano między wami wojenny tomahawk! Nie zaprzeczysz, że to jest nieustannem, okropnem samobójstwem, popełnianem przez czerwonego męża na sobie, a kto postępuje w ten sposób, bierze udział w tem samobójstwie. Inczu-czunę i Nszo-czi zabili nie czerwoni, lecz biali, a morderca schronił się do Keiowehów i namówił ich do napadu na was. To przedstawia wystarczający powód do tego, żeby tu na nich zaczekać i walczyć z nimi, ale nie usprawiedliwia tego, żeby ich jak pochwytane wściekłe psy wystrzelać. To są twoi czerwoni bracia; pamiętaj o tem! Prowadziłem tak rzecz jeszcze przez jakiś czas, Winnetou zaś słuchał spokojnie. A kiedy wypowiedziałem ostatnie słowo, podał mi rękę i rzekł:

Details
ParserGetVariableValueSwitch is the hook responsible for assigning a value to custom variables. Whenever the parser sees a string like, it assumes that it represents one of three possible kinds of wiki markup: a template, a variable, or a parser function. If XXX is registered as a variable name, the parser runs the hooks assigned to ParserGetVariableValueSwitch until it finds one that can return a value for the variable.

To register XXX as a variable name, you must associate the string 'XXX' with a magic word id via $magicWords. A magic word id is just an internal identifier that groups together all wiki text names for a variable. To make this particular magic word id act like a variable (rather than a parser function or template), you also must add its associated magic word id to the list of custom variable ids via a MagicWordwgVariableIDs hook.

Usage
ParserGetVariableValueSwitch is passed the magic word id in. If the hook knows how to assign a value to that particular id, it should assign the value to  and return. Never return  since this will lead to aborting all further calls to this hook.

Because the hook will be passed both ids it knows and those it doesn't, it should check the id before assigning any value to it. This is normally done in a switch statement, as illustrated in the example below: