Actions

Edytor motywów

From LimeSurvey Manual

Revision as of 15:59, 26 September 2023 by Maren.fritz (talk | contribs) (Created page with "===checkbox-text-item=== {|class=wikitable !'''Pytanie'''!!'''Typ pytania'''!!'''elementy''' |- |wielokrotny wybór_z_komentarzami|| P || li |- |wielokrotny wybór|| M || li...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Wprowadzenie

LimeSurvey posiada zaawansowany system motywów i stylów, zapewniający programistom skuteczny sposób dostosowywania wyglądu ankiety. Od wersji LS3 termin „szablony” został zastąpiony terminem „motywy”. Motywy pozwalają kontrolować styl stron ankiety. Administrator ankiety może wybrać domyślny motyw, który będzie używany w każdej ankiecie w celu dalszej personalizacji. Motywy zawierają opcje, dzięki którym administrator bez umiejętności kodowania może w prosty sposób dodać logo na stronie powitalnej, zmienić kolory tła, wybrać czcionkę itp.


LimeSurvey zawiera 3 motywy. Te początkowe motywy są definiowane przez katalogi znajdujące się w katalogu instalacyjnym LimeSurvey „themes/survey/”. Każdy motyw ma swój własny katalog. W głównym katalogu motywu znajdziesz plik konfiguracyjny w formacie XML oraz liczne katalogi zawierające widoki themes (.twig), kaskadowe arkusze stylów (.css), 'skrypty, obrazy (.jpg lub .png) i ewentualnie inne.


Od wersji LimeSurvey 2.50 silnik motywów wykorzystuje 3 jako framework CSS. Ponieważ Bootstrap 3 jest standardowym frameworkiem, programiści znajdą w Internecie wiele dokumentacji, tutoriali i wątków na forach na jego temat.


Od wersji LimeSurvey 3 silnik motywów korzysta z Twig, dzięki czemu twórcy motywów mogą w bezpieczny i łatwy sposób zmieniać logikę renderowania ankiet. Twig zastępuje stary system zastępowania słów kluczowych, który był używany w poprzednich wersjach. Logika użyta do wygenerowania kodu HTML słów kluczowych jest teraz dostępna w widokach motywu.


Fragment motywu waniliowego:

 <div class="{{ aSurveyInfo.class.answercontainer }} col-xs-12" {{ aSurveyInfo.attr.answercontainer }}> 
 {# UWAGA: Jeśli chcesz dostosować renderowanie pytań, użyj motywu pytania #}
 {{Pytanie.odpowiedź | surowe }}
</div>

Motywy, będące kodem HTML i Twig, zwykle definiują położenie i rodzaj wyświetlanego tekstu oraz podobne cechy strukturalne strony. Często odwołują się do innych plików lub je zawierają. Większość z nich odwołuje się do wspólnego pliku kaskadowych arkuszy stylów (CSS), który definiuje styl czcionki, kolor, rozmiar, tło i podobne parametry wspólne dla wszystkich stron ankiety. Arkusze stylów odwołują się do parametrów „klas” HTML, które są powiązane z różnymi typami obiektów w kodzie HTML. Dzięki temu arkusz stylów może zdefiniować sposób wyświetlania każdego z wielu typów tekstu lub innych obiektów, które mogą pojawiać się w wielu miejscach. Istnieją unikalne klasy dla każdego typu pytania w LimeSurvey, co daje szczegółową kontrolę nad wyglądem każdego z nich. Pliki obrazów, takie jak logo lub specjalne konstruktory pasków postępu, mogą również zawierać odniesienia w pliku motywu. Na koniec specjalne słowa kluczowe w nawiasach klamrowych są zastępowane tekstem zdefiniowanym w ankiecie dla każdego korespondenta tłumaczącego język (na przykład „Tytuł ankiety” lub „Tekst pytania” dla każdego zdefiniowanego języka).

Jeśli utworzysz nowy, niestandardowy motyw, rozważ udostępnienie go społeczności LimeSurvey i udostępnienie go innym. Z Twoją pomocą możemy rozwijać nasze repozytorium motywów, ankiet i innych dodatków, aby uczynić LimeSurvey jeszcze lepszym! Zajrzyj do naszego repozytorium szablonów LimeSurvey, w którym możesz udostępniać swoje szablony.

Tworzenie nowego motywu

Aby móc utworzyć nowy motyw (lub edytować istniejący motyw), potrzebujesz Uprawnienia użytkownika do edytowania szablonu w LimeSurvey, a także uprawnienia do manipulowania plikami w podstawowym systemie operacyjnym system hostujący Twoją instalację LimeSurvey.

Uwaga ostrzeżenia: Jeśli zmienisz motywy, możesz mieć wpływ na wszystkie istniejące ankiety z Twojej instalacji LimeSurvey. Motywy to zaawansowana funkcja wymagająca doświadczenia i znajomości języka HTML.

Preferowanym sposobem utworzenia nowego motywu jest użycie „Edytora motywów” (patrz poniżej), który znajduje się w obszarze „Konfiguracja” na górnym pasku narzędzi. Niektórzy użytkownicy wolą pracować bezpośrednio z plikami motywów, aby móc korzystać ze swojego ulubionego edytora tekstu zamiast interfejsu internetowego. W takim przypadku nadal użyj Edytora motywów, aby najpierw utworzyć nowy motyw. Spowoduje to utworzenie nowego motywu podstawowego ze wszystkimi potrzebnymi plikami w katalogu „LimeSurvey_web_root/upload/themes/survey/your_new_template”. Stamtąd możesz użyć edytora tekstu, aby ręcznie dostosować pliki szablonów.

Uprawnienia Uwaga: w systemach Unix/Linux te pliki motywów będą własnością grupy i użytkownika, na którym działa serwer WWW (w niektórych systemach może to być „www”). Upewnij się więc, że masz odpowiednie uprawnienia do edycji tych plików. Kiedy je zapiszesz, upewnij się, że nie zmienią właściciela! Dzięki temu w razie potrzeby nadal będziesz mógł korzystać z interfejsu edycji motywu internetowego.


Wiele „publicznych” elementów LimeSurvey można dostosować za pomocą szeregu motywów. Następna sekcja zawiera bardzo krótkie wyjaśnienie tych szablonów.

Template:Uwaga

Edytor motywów LimeSurvey

Edytor motywów: Konfiguracja > Motywy> Edytor motywów Edytor motywów jest dostępny tylko dla użytkowników z uprawnieniami do szablonów i dla superadministratorów.


  Uwaga : Nieprawidłowo skonstruowany motyw może spowodować, że ankieta (wykorzystująca odpowiedni szablon) przestanie działać.



Edytor motywów LimeSurvey umożliwia edycję zawartości motywów online. Aby uruchomić Edytor motywów: kliknij opcję „Motywy” w menu „Konfiguracja”, a następnie kliknij przycisk „Edytor motywów” obok motywu, który chcesz edytować lub rozszerzyć.


Przycisk umożliwiający dostęp do edytora motywów dla motywu Bootswatch


Strona edytora szablonów umożliwia wybranie szablonu, który chcesz edytować/wyświetlić.



Dostępne są następujące opcje:


  • Utwórz: Umożliwia utworzenie nowego szablonu. Aby nie zaczynać od zera, kopiowany jest szablon „domyślny”.
  • Import: Umożliwia import szablonu z pliku ZIP.
  • Eksport : Umożliwia wyeksportowanie bieżącego szablonu do pliku ZIP.
  • Kopiuj: Umożliwia utworzenie nowego szablonu poprzez skopiowanie bieżącego.
  • Zmień nazwę: Umożliwia zmianę nazwy szablonu. Zwykle jest używany po skopiowaniu lub zaimportowaniu szablonu.
  • Szablon: Lista rozwijana, która pokazuje wszystkie dostępne szablony, które znajdują się w Twojej instalacji LimeSurvey.
  • Ekran: Lista rozwijana, która pozwala wybrać, którą konkretną stronę ankiety w danym szablonie chcesz wyświetlić.
  • Wróć do panelu administracyjnego.

Importuj/Eksportuj/Kopiuj szablon

Kiedy 'eksportujesz szablon, zostanie utworzone archiwum w formacie ZIP ze wszystkimi plikami szablonów (pliki .pstpl, obrazy, pliki css, ...). Możesz „zaimportować” wyeksportowany plik zip do innej instalacji LimeSurvey, korzystając z funkcji importu, lub możesz ręcznie skopiować archiwum do innej instalacji LimeSurvey i rozpakować je do odpowiedniego szablon tam katalog.

Najlepiej jednak skorzystać z funkcji importu/eksportu/kopiowania szablonu LimeSurvey w edytorze szablonów.

Strona strony / Użycie szablonu

  • Strona powitalna: startpage.pstpl, powitanie.pstpl, prywatność.pstpl, navigator.pstpl, endpage.pstpl
  • 'Strony z pytaniami:' startpage.pstpl, Survey.pstpl, startgroup.pstpl, groupdescription.pstpl, question.pstpl, endgroup.pstpl, endpage.pstpl
  • Strona końcowa: strona startowa .pstpl, ocena.pstpl, ukończone.pstpl, endpage.pstpl

Pliki szablonów

Następujące pliki szablonów są używane do tworzenia ankiety publicznej i muszą znajdować się w każdym nowym folderze szablonów, który utworzysz:

  • startpage.pstpl: Tworzy początek każdej strony HTML. Zaczyna się od „<head> „ i nie powinien zawierać „<html> ". Ten „sam początek” standardowej strony HTML jest pisany przez skrypty. Upewnij się, że pliki startpage.pstpl zawierają<body> etykietka. Mimo że wiele przeglądarek nie wymaga ścisłego przestrzegania standardów HTML W3, skrypt LimeSurvey musi znaleźć tag, aby uruchomić określone elementy JavaScript. Nieczęsto zdarza się, że w pliku startpage.pstpl występuje wiele „słów kluczowych”. Możesz jednak umieścić w tytule nazwę ankiety. Plik startpage.pstpl może zawierać kod kończący się odpowiednim plikiem endpage.pstpl. Można na przykład rozpocząć tabelę w tym pliku i zamknąć ją w pliku endpage.pstpl. Pliki startpage.pstpl i endpage.pstpl otaczają każdą możliwą stronę używaną przez LimeSurvey.
  • survey.pstpl:' Ten szablon jest drugim używanym na większości stron i zapewnia miejsce na umieszczenie nazwy ankiety i opis. Ten szablon nie ma odpowiedniego szablonu „zamykającego”, dlatego powinieneś zamknąć wszystkie tagi otwarte w tym pliku szablonu (tzn.: nie zostawiaj tutaj otwartej tabeli, ponieważ nie ma gdzie jej zamknąć).
  • ' welcome.pstpl:' Ten szablon jest używany tylko na ekranie powitalnym (który znajduje się również na stronie głównej ankiet „wszystko w jednym”). Można w ten sposób wydrukować tekst powitalny i inne informacje, które należy podać we wstępie. Podobnie jak plik „survey.pstpl”, nie ma odpowiadającego mu szablonu „zamykającego”, więc wszystkie tagi otwarte w tym pliku szablonu również powinny zostać zamknięte.
  • startgroup.pstpl: Ten szablon może zapewnić „podsumowanie” pytań w grupie. Zawiera pasujący szablon „endgroup.pstpl”, którego można użyć do zamknięcia dowolnych otwartych tagów w tym pliku, dzięki czemu można otworzyć w nim tabelę.
  • groupdescription.pstpl: Ten plik szablonu jest używany do wyświetlania opisu grupy. Pamiętaj, że w ustawieniach ankiety (dostęp do „Ustawień prezentacji i nawigacji” klikając w zakładkę „Prezentacja”) możesz określić, czy opis grupy ma być wyświetlany, czy nie. Jeśli nie, ten plik nie zostanie w ogóle uwzględniony.
  • question.pstpl: Ten plik zawiera sekcje pytań, odpowiedzi i tekstu pomocy w Twojej ankiecie. W ankietach „grupa po grupie” i „wszystko w jednym” ten szablon jest powtarzany cyklicznie przy każdym pytaniu. Nie ma odpowiedniego pliku zamykającego i wszystkie znaczniki powinny zostać zamknięte.
  • question_start.pstpl: Ten plik zawiera poszczególne elementy znajdujące się na początku pytania. Jest on zawarty w „question.pstpl” za pomocą słowa kluczowego {QUESTION}. Ma to na celu umożliwienie projektantom szablonów większej kontroli nad układem pytania. Ten szablon znajduje się poza normalnym systemem szablonów i „został zastąpiony (od LimeSurvey 1.87)”. Wszystkie słowa kluczowe z tego szablonu są teraz dostępne bezpośrednio w question.pstpl.
  • completed.pstpl: Ta strona jest wyświetlana jako ostatnia strona po zapisaniu odpowiedzi na ankietę i zakończeniu ankiety. Można go użyć do wyświetlenia „linku przekierowującego” zgodnie z ustawieniami ankiety.
  • endgroup.pstpl: Ten plik zamyka grupę i może być użyty do zamknięcia wszelkich tagów otwartych w plik startgroup.pstpl
  • navigator.pstpl: Ten plik zawiera przyciski umożliwiające poruszanie się po ankiecie, „następny”, „poprzedni”, „ostatni”, „prześlij”, „zapisz do tej pory” i link „wyczyść wszystko”. Jest używany na wszystkich stronach z wyjątkiem strony wypełnionej.
  • printanswers.pstpl: Ten plik zawiera opakowanie HTML niezbędne do wydrukowania ankiety.
  • print_group.pstpl : Ten plik jest taki sam jak startgroup.pstpl i endgroup.pstpl, ale dotyczy wersji drukowanej ankiety.
  • print_question.pstpl: Ten plik jest taki sam jak question.pstpl , ale dla wersji drukowanej ankiety.
  • print_survey.pstpl: Ten plik jest taki sam jak ankieta.pstpl, ale dotyczy wersji drukowanej ankiety.

CSS i Javascript

Dwa pliki, które są zawsze używane w szablonie, to template.css (dla CSS) i template.js (dla JavaScript).

  • {TEMPLATECSS}: Dodaj linie dla domyślnego css, template.css, i template-rtl.css dla języka rtl.
  • {TEMPLATEJS}: Dodaj linie dla domyślnych plików javascript, template.js i wszystkich plików js potrzebnych dla LimeSurvey.

Korzystanie z Bootstrap

LimeSurvey ma wbudowany Bootstrap 3, dzięki czemu możesz stylizować wszystkie swoje szablony za pomocą dobrze udokumentowanych klas Bootstrap. Więcej informacji można znaleźć w Bootstrap dokumentacja.

Dołączona jest także wtyczka Awesome-Bootstrap-Checkbox. Dzięki niemu możesz używać typowych klas kolorów Bootstrap (informacje, ostrzeżenie, niebezpieczeństwo itp.), również z przyrostkiem „-checkbox” lub „-radio”, chociaż stylizujesz pola wyboru i radia według własnych upodobań.

Zastąpienie domyślnego CSS lub JavaScript

W niektórych pytaniach używane są określone pliki JavaScript lub CSS. Jeśli chcesz zastąpić funkcję, użyj systemu kaskadowego. W przypadku funkcji javascript ostatnia odczytana funkcja jest funkcją używaną.

Inne pliki szablonów

Pliki „privacy.pstpl”, „invitationemail.pstpl””, „reminderemail.pstpl” i „confirmationemail.pstpl” nie są już używane przez LimeSurvey, a wartością domyślną są zamiast tego ustawione w odpowiednich plikach językowych. Wiadomości e-mail można teraz edytować według ankiety.

Strony standardowe

Istnieje dziesięć standardowych stron, które uczestnik ankiety może zobaczyć w trakcie korzystania z aplikacji LimeSurvey lub uzyskiwania do niej dostępu. Każdy z nich jest zbudowany z szeregu wspólnych plików „Szablonów” z „Szablonu” określonego w ustawieniach ankiety. Poniższa tabela wskazuje, które pliki szablonów zostały użyte podczas tworzenia każdej z tych stron.

Strony z ankietami/
Pliki szablonów
Ankieta
Lista
Witamy Pytanie Zakończono Wyczyść wszystko Zarejestruj się Wczytaj Zapisz Drukuj
Odpowiedzi
Drukuj
Ankieta
SurveyList Plik:check.gif
Witamy Plik:check.gif
Prywatność Plik:check.gif
Nawigator Plik:check.gif
Ankieta Plik:check.gif Plik:check.gif
Grupa początkowa Plik:check.gif
Opis grupy Plik:check.gif
Pytanie * Plik:check.gif
Grupa końcowa Plik:check.gif
Ocena Plik:check.gif
Ukończono Plik:check.gif
Wyczyść wszystko Plik:check.gif
Zarejestruj się Plik:check.gif
Załaduj Plik:check.gif
Zapisz Plik:check.gif
Drukuj odpowiedzi
Drukuj ankietę
Drukuj grupę
Drukuj pytanie
Strona startowa
Strona końcowa
Szablon.css
Plik:check.gif

* UWAGA: W wersji 1.90+ zastępuje to question.pstpl ORAZ question_start.pstpl. Jeśli używasz starego niestandardowego szablonu, musisz dodać następujący wiersz na początku question.pstpl:

<div {QUESTION_ESSENTIALS} class="{QUESTION_CLASS}{QUESTION_MAN_CLASS}{QUESTION_INPUT_ERROR_CLASS}">

A następnie dodaj odpowiedni tag zamykający na końcu question.pstpl:

</div>

* UWAGA: W wersji 1.91 i wcześniejszych pliki LimeSurvey js nie są uwzględniane w szablonie. W wersji 2 „musisz użyć {TEMPLATEJS} w jednym z plików szablonów”, aby dodać łącze do pliku js. Możesz dodać go w startpage.pstpl lub endpage.pstpl. Możesz usunąć linię {TEMPLATEURL}/template.js i zastąpić ją linią {TEMPLATEJS}, aby zaktualizować szablon osobisty.

Sekcja kontroli plików

W oknie „kontroli plików” po lewej stronie możesz kliknąć jeden z plików szablonów, który służy do kompilacji strony. Możesz zobaczyć Część ekranu, pliki JavaScript i CSS. Kod HTML tego pliku pojawi się następnie w oknie „Teraz edycja” pośrodku. Jeśli szablon jest edytowalny (określony przez uprawnienia katalogu), możesz następnie wprowadzić dowolne zmiany i je zapisać.


Okno „Inne pliki” pokazuje listę wszystkich pozostałych plików z katalogu szablonów. Możesz użyć prawej strony, aby „przesłać i wybrać pliki obrazów (zdjęcia, logo itp.) lub inne pliki potrzebne do utworzenia szablonu”.


Zamiast używać linku do każdego zdjęcia, użyj ciągu pola {TEMPLATEURL}. Zatem zamiast:

img src='/limesurvey/templates/yourtemplate/files/mypicture.jpg'

Możesz użyć (New in 2.50 ):

 img src='{TEMPLATEURL}files/mypicture.jpg'

W wersjach LimeSurvey wcześniejszych niż 2.50 użyj:

 img src='{TEMPLATEURL}moje zdjęcie.jpg'

„Próbka” edytowanej strony szablonu będzie widoczna na dole ekranu. Nie ma możliwości usunięcia szablonu z edytora szablonów. Należy to zrobić, uzyskując dostęp do podstawowego katalogu i ręcznie usuwając stamtąd pliki. Masz również możliwość wyboru różnych rozdzielczości ekranu, aby lepiej ocenić styl i wygląd szablonu.

Uwaga: Dostarczonych szablonów nie można edytować za pomocą edytora szablonów. Jeśli chcesz je zmodyfikować, najpierw utwórz kopię, a następnie edytuj kopię.

Lokalizacja plików szablonów

LimeSurvey przechowuje każdy ze „standardowych” szablonów w oddzielnym podkatalogu w katalogu „/templates”, który jest przechowywany w katalogu publicznym wraz z innymi publicznymi plikami LimeSurvey. Dostosowane szablony użytkownika są przechowywane w katalogu „/upload/templates”.

W katalogu szablonów „ZAWSZE” powinien znajdować się katalog „domyślny”. Ten szablon jest używany domyślnie i jako rezerwowy, jeśli folder szablonów nie istnieje lub nie można go znaleźć. Jest instalowany domyślnie.

Możesz użyć dowolnych plików graficznych, które prześlesz do obszaru zarządzania szablonami, korzystając z następującej składni:

{TEMPLATEURL}nazwa pliku.xyz

Stylizacja pytań za pomocą CSS

Stylizacja pytań w CSS stała się znacznie łatwiejsza. Każdy typ pytania ma teraz unikalną klasę. Pytania obowiązkowe mają dodatkowe zajęcia obowiązkowe. Na przykład w przypadku pytania nieobowiązkowego:

<div id="question5" class="gender">
...
</div>

a jeśli pytanie jest obowiązkowe:

<div id="question5" class="gender mandatory">
...
</div>

i jeśli pytanie jest obowiązkowe, ale użytkownik na nie nie odpowiedział lub jeśli na pytanie istnieje zatwierdzenie:

<div id="question5" class="gender mandatory input-error">
...
</div>

i jeśli do pytania zastosowano weryfikację, ale użytkownik nie odpowiedział poprawnie:

<div id="question6" class="text-short input-error">
...
</div>

Globalne klasy dla części pytań

Klasy te są używane dla każdego typu pytania. Niektóre typy pytań wykorzystują tylko jedną lub dwie klasy, podczas gdy inne mogą wykorzystywać znacznie więcej.

Klasy globalne
Nazwa klasy Część Typ pytania Przykłady Uwaga
.question (Obsolete since 3.0) Wszystkie bloki pytań Wszystkie typy pytań

,

    ,
    .ls-answers (New in 3.0 ) Wszystkie bloki pytań Wszystkie typy pytań
    ,
      ,
      .subquestions-list Lista pytań podrzędnych Pytanie wielokrotnego wyboru, pytanie typu tablicowego
        ,
        .questions-list też jest używana
        .lista-odpowiedzi Lista odpowiedzi Pytanie jednokrotnego wyboru, pytanie typu tablicowego, pytanie tekstowe z wieloma wejściami
          ,
          .odpowiedź Część odpowiedzi: jedna odpowiedź Pytanie jednokrotnego wyboru, pytanie typu tablicowego, pytanie tekstowe z wieloma wejściami
        • ,
        • .noanswer-item Część odpowiedzi na brak odpowiedzi Pytanie jednokrotnego wyboru, pytanie typu tablicowego
        • ,
        • Brak odpowiedzi jest także odpowiedzią, zatem należy zastosować podwójną klasę: brak odpowiedzi i odpowiedź
          .pytanie-przedmiot Część pytająca: jedno pytanie Pytanie wielotekstowe, typ pytania tablicowego
        • ,
        • Niektóre odpowiedzi są także pytaniami. Mamy wtedy dużo class="question-item-answer-item"
          .button-list Lista przycisków Tak nie i pytanie o płeć
          .button-item Część odpowiedzi za pomocą przycisku Tak nie i pytanie o płeć
        • .checkbox-list Lista pól wyboru Pytanie wielokrotnego wyboru, numer tablicy (pole wyboru), typ pytania
            ,
          Niektóre typy pytań korzystają z klas wielolistowych, np. pole wyboru z komentarzem: class="checkbox-list lista-tekstowa"
          .checkbox-array Template:Nowość Tablica pól wyboru Tablica (liczby) z opcją pola wyboru
          .checkbox-item Część odpowiedzi z polem wyboru Pytanie wielokrotnego wyboru, numer tablicy (pole wyboru), typ pytania
        • ,
        • .radio-lista Lista pozycji radiowych Pytanie jednokrotnego wyboru, typ pytania tablicowego (każdy wiersz)
            ,
          .radio-array (New in 3.0 ) Tablica elementów radiowych Typ pytania tablicowego
          .radio-element Odpowiedź z radiem Pytanie jednokrotnego wyboru, pytanie typu tablicowego
        • ,
        • .text-list Lista wprowadzania tekstu Typ pytania wielotekstowego, tablica tekstu
            ,
          .tekst-element Część odpowiedzi wprowadzanego tekstu Typ pytania wielotekstowego, tablica tekstu
        • ,
        • .lista-numeryczna Lista wprowadzonego tekstu z odpowiedzią zawierającą wyłącznie cyfry Pytanie wielonumeryczne, tablica liczb
            ,
          .lista-numerów Lista wprowadzonego tekstu z odpowiedzią zawierającą wyłącznie cyfry (w każdym wierszu) Pytanie wielonumeryczne, tablica liczb
            ,
          .number-array (New in 3.0 ) Część odpowiedzi wpisu numerycznego Tablica liczb
          .select-list (Obsolete since 2.50) Lista wybranych Liczby tablicowe, tablica o podwójnej skali (wybierz)
          .dropdown-list (New in 2.50 ) Lista wybranych Liczby tablicowe, tablica o podwójnej skali (wybierz) (każdy wiersz)