Szablon:Punktacja: Różnice pomiędzy wersjami

Z Enkol
Przejdź do nawigacji Przejdź do wyszukiwania
(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 mają wartość, czy są pustymi łańcuchami. Jeśli nie, to przpisujemy ptkp = pktp0, pktd = pktd0. Jeśli tak, to: pktp=0, pktd=0 --->
+
<!--- Badamy, czy pktp0 i pktd0 nie są pustymi łańcuchami. Jeśli nie , to przpisujemy ptkp = pktp0, pktd = pktd0. Jeśli , 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


[edytuj] [[[:Szablon:Odśwież]]] Dokumentacja

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.