Szablon:Punktacja: Różnice pomiędzy wersjami
(dr tech) |
(plus komentarze do kodu) |
||
(Nie pokazano 27 wersji utworzonych przez 3 użytkowników) | |||
Linia 2: | Linia 2: | ||
<div style="display: none;"> | <div style="display: none;"> | ||
<!--- Zliczamy punkty za poprawienie wpisu (pktp0) ---> | <!--- Zliczamy punkty za poprawienie wpisu (pktp0) ---> | ||
− | {{#vardefine: pktp0|{{#ask: [[Category:Biblioteka - katalog artykułów prasowych]] [[Art poprawiony przez::{{BASEPAGENAME}}]]|?Art punkty p|format=sum}} }} | + | {{#vardefine: pktp0|{{#ask: [[Category:Biblioteka - katalog artykułów prasowych]] [[Art poprawiony przez::{{BASEPAGENAME}}]]|?Art punkty p|limit=1500|format=sum}} }} |
<!--- Zliczamy punkty za dodanie wpisu (pktp0) ---> | <!--- Zliczamy punkty za dodanie wpisu (pktp0) ---> | ||
− | {{#vardefine: pktd0|{{#ask: [[Category:Biblioteka - katalog artykułów prasowych]] [[Art dodany przez::{{BASEPAGENAME}}]]|?Art punkty d|format=sum}} }} | + | <!--- Funkcja #number_format zapewnia prawidłowe formatowanie wyniku. Bez niej separatorem tysięcy jest przecinek, a to generuje błąd, bo musi być kropka. ---> |
+ | {{#vardefine: pktd0|{{#number_format: {{#ask: [[Category:Biblioteka - katalog artykułów prasowych]] [[Art dodany przez::{{BASEPAGENAME}}]]|?Art punkty d|limit=1500|format=sum}}|_|.||,}} }} | ||
− | <!--- Badamy, czy pktp0 i pktd0 | + | <!--- Badamy, czy pktp0 i pktd0 nie są pustymi łańcuchami. Jeśli nie są, to przpisujemy ptkp = pktp0, pktd = pktd0. Jeśli są, to: pktp=0, pktd=0 ---> |
+ | <!--- Jeśli suma punktów wynosi 0, to kwerenda zwraca pusty łańcuch, a nie wartość liczbową 0. Próba wykonania dodawania w momencie gdy wartość zmiennej jest pustym łańcuchem generuje błąd, stąd konieczne jest zbadanie, czy zmienna jest pusta, a jeśli tak - nadanie jej wartości liczbowej 0 ---> | ||
+ | <!--- pktp0, pktd0 - liczba punktów za poprawienie, liczba punktów za dodanie przed sprawdzeniem, czy zmienne są puste ---> | ||
+ | <!--- pktp, pktd - liczba punktów za poprawienie, liczba punktów za dodanie po sprawdzeniu, czy zmienne są puste i ewentualnym przypisaniu im wartości 0 ---> | ||
+ | <!--- Nie jest możliwe proste przypisanie istniejącej zmiennej nowej wartości, stąd konieczne jest użycie pary zmiennych ---> | ||
{{#if: {{#var: pktp0|}}|{{#vardefine: pktp|{{#var: pktp0}} }}|{{#vardefine: pktp|0}} }} | {{#if: {{#var: pktp0|}}|{{#vardefine: pktp|{{#var: pktp0}} }}|{{#vardefine: pktp|0}} }} | ||
{{#if: {{#var: pktd0|}}|{{#vardefine: pktd|{{#var: pktd0}} }}|{{#vardefine: pktd|0}} }} | {{#if: {{#var: pktd0|}}|{{#vardefine: pktd|{{#var: pktd0}} }}|{{#vardefine: pktd|0}} }} | ||
<!--- Obliczamy sumę pktp + pktd ---> | <!--- Obliczamy sumę pktp + pktd ---> | ||
− | {{#vardefine:pktsuma|{{#expr: {{#var: pktd}} + {{#var: pktp}} }} }} | + | <!--- Funkcja #number_format zapewnia prawidłowe formatowanie wyniku. Bez niej separatorem tysięcy jest przecinek, a to generuje błąd, bo musi być kropka. ---> |
+ | {{#vardefine:pktsuma|{{#expr: {{#number_format: {{#var: pktd}}|_|.||,}} + {{#var: pktp}} }} }} | ||
+ | |||
<!--- Zliczamy wpisy poprawione przez danego usera (artp) i przez niego dodane (artd) ---> | <!--- Zliczamy wpisy poprawione przez danego usera (artp) i przez niego dodane (artd) ---> | ||
Linia 18: | Linia 25: | ||
</div> | </div> | ||
− | {| class="wikitable" | + | <!--- Wstawiamy uzyskane wyniki do tabelki ---> |
+ | |||
+ | {| class="wikitable" style="border: 2px solid red;" | ||
|+ Edycje użytkownika {{BASEPAGENAME}} | |+ Edycje użytkownika {{BASEPAGENAME}} | ||
|- | |- | ||
Linia 36: | Linia 45: | ||
| {{#var: pktsuma}} | | {{#var: pktsuma}} | ||
|} | |} | ||
+ | |||
+ | <div style="display: none;"> | ||
+ | {{#set: | ||
+ | Art nazwa użytkownika={{BASEPAGENAME}} | ||
+ | |Art pkt użytkownika={{#var: pktsuma}} | ||
+ | |Art dod przez użytkownika={{#var: artd}} | ||
+ | }} | ||
+ | </div> | ||
+ | __NOCACHE__ | ||
+ | [[Kategoria:Uczestnicy konkursu 2018]] | ||
</includeonly> | </includeonly> | ||
+ | <noinclude> | ||
+ | {{Dokumentacja}} | ||
+ | [[Kategoria:Szablony kwerend]] | ||
+ | </noinclude> |
Aktualna wersja na dzień 02:50, 11 kwi 2019
Zastosowanie i funkcja szablonu[edytuj]
Szablon umożliwia zliczanie punktów uzyskanych przez uczestnika konkursu Enkolu. Należy go umieścić na stronie uczestnika konkursu.
Opis techniczny[edytuj]
Wymagania[edytuj]
Szablon do poprawnego działania wymaga:
- Semantic MediaWiki
- Rozszerzenia Variables
Opis działania[edytuj]
Szablon sumuje punkty uzyskane przez danego użytkownika za dodanie wpisów do katalogu artykułów prasowych oraz za poprawienie wpisów dodanych przez innych użytkowników. Pierwsza para kwerend sumuje punkty (atrybuty Art punkty p - za poprawienie, Art punkty d - za dodanie), druga para kwerend zlicza poszczególne rodzaje edycji wykonanych przez użytkownika (poprawki, dodania wpisów - atrybuty Art poprawiony przez i Art dodany przez). Uzyskane wyniki wstawia do tabelki oraz zapisuje uzyskane dane w postaci atrybutów (wartości semantycznych) przypisanych do danego użytkownika. Zapisane wartości nie są obecnie dalej wykorzystywane - funkcja została zaimplementowana "na zapas".
Szablony wykorzystywane przez ten szablon[edytuj]
Ten szablon nie ma szablonów podrzędnych.
Szablony korzystające z tego szablonu[edytuj]
Nie ma szablonów korzystających z tego szablonu
Błędy[edytuj]
Zauważone błędy należy zgłaszać na Forum Enkolu w dziale Zgłoś błąd.