Narzędzia użytkownika

Narzędzia witryny


start:pluginy:custom_fields

Custom Fields

Custom fields to niestandardowe/definiowane pola. Plugin wprowadza Custom Fields do artykułów. Dzięki temu pluginowi można wykorzystywać na stronach zajawek i wpisów dodatkowe dane. Custom Fields umożliwiają na przykład łatwe stworzenie katalogu stron internetowych.

Aby wykorzystać Custom Fields należy wprowadzić zmiany w plikach templatki (index_wpis.php lub/i index_zajawka.php) wskazując miejsca, w których dane custom fields mają się wyświetlać.

Przykład (strona NAP)

Stwórzmy dla przykładu stronę, na której będą prezentowane wizytówki NAP (name, address, phone). To w sumie taki katalog stron firmowych. W tym celu musimy włączyć plugin Custom Fields i zdefiniować w nim pola. Robi się to łatwo przez dostępny formularz:

Tym właśnie formularzem tworzymy następujący zestaw Custom Fields:

Dzięki tym zmianom w formularzu wprowadzania artykułów będą wyświetlane dodatkowe pola:

Po wprowadzeniu przykładowego wpisu widać, że dodatkowe informacje nie są wyświetlane. To właśnie ze względu na to, że nie zdążyliśmy jeszcze wprowadzić zmian w plikach index_wpis.php i index_zajawka.php. Zróbmy to, oto plik index_wpis.php:

<h1>_TYTUL_</h1>
    <img class="img-fluid p-2 m-2" style="float:left" src="_IMG_" alt="Logo firmy _CUSTOM_nazwa-firmy_" title="Logo firmy _CUSTOM_nazwa-firmy_">
	_TRESC_
	<table>
		<tr><th colspan=2>_CUSTOM_nazwa-firmy_</th></tr>
		<tr><th colspan=2><img src="_CUSTOM_logo_"></th></tr>
		<tr><td>NIP</td><td>_CUSTOM_nip_</td></tr>
		<tr><td>REGON</td><td>_CUSTOM_regon_</td></tr>
		<tr><td>WWW</td><td>_CUSTOM_adres-strony-firmowej_</td></tr>
		<tr><td>Mapa</td><td>_CUSTOM_google-maps_</td></tr>
	</table>
<br>Wpis aktualny na dzień _DATA_
<br>Tagi: <small class="text-info"> _TAGI_</small>

Jak widać wstawianie odpowiednich pól jest bardzo proste, wystarczy wstawić przedrostek _CUSTOM_ , następnie podać nazwę konkretnego custom field i zakończyć znakiem podkreślenia np: _CUSTOM_nazwa-firmy_

Prawda, że proste i funkcjonalne? Podobnie możemy uczynić z plikiem index_zajawka.php, o ile jest to konieczne w danym przypadku.

Co więcej, w przypadku pliku index_wpis.php jak i index_zajawka.php możesz stosować instrukcję warunkową html. W tym przypadku może to wyglądać na przykład tak:

<div class="col-md-12">
  <!-- Post Content -->
  <article>
    <div class="container">
      <div class="row">
        <div class="col-lg-10 col-md-12 mx-auto text-light">
		<h1 class="text-dark">_TYTUL_</h1>
		<div class="text-dark">
          [IF "_IMG_" "!=" ""]<img class="img-fluid p-2 m-2" style="float:left" src="_IMG_" alt="Logo firmy _CUSTOM_nazwa-firmy_" title="Logo firmy _CUSTOM_nazwa-firmy_">[/IF] _TRESC_
 
		  <table class="table table-striped table-condensed">
			[IF "_CUSTOM_nazwa-firmy_" "NOT" ""]<tr class="text-center"><th colspan=2>_CUSTOM_nazwa-firmy_</th></tr>[/IF]
			[IF "_CUSTOM_logo_" "NOT" ""]<tr class="text-center"><th colspan=2><img src="_CUSTOM_logo_"></th></tr>[/IF]
			[IF "_CUSTOM_nip_" "NOT" ""]<tr><td>NIP</td><td>_CUSTOM_nip_</td></tr>[/IF]
			[IF "_CUSTOM_regon_" "NOT" ""]<tr><td>REGON</td><td>_CUSTOM_regon_</td></tr>[/IF]
			[IF "_CUSTOM_adres-strony-firmowej_" "NOT" ""]<tr><td>WWW</td><td>_CUSTOM_adres-strony-firmowej_</td></tr>[/IF]
			[IF "_CUSTOM_google-maps_" "NOT" ""]<tr><td>Mapa</td><td>_CUSTOM_google-maps_</td></tr>[/IF]
		  </table>
		 <br>Wpis aktualny na dzień _DATA_
		 [IF "_TAGI_" "!=" ""]<br>Tagi: <small class="text-info"> _TAGI_</small>[/IF]
		</div>
        </div>
      </div>
    </div>
  </article>
 </div>

Wynik na stronie może wyglądać tak:

Przypisanie do kategorii i formatu wpisu

Plugin umożliwia dodatkowo przypisanie do każdego pola kategorii i/lub formatu wpisów. Dzięki tej funkcjonalności niepotrzebne pola nie będą się wyświetlały w formularzu dodawania/edycji artykułów. Przykłady:

Poniższe ustawienie oznacza, że pole będzie dostępne tylko dla formatu wpisów „nap” i dla kategorii „Firmy SEO”. Jeśli zostanie wybrany format „nap”, ale inna kategoria niż „Firmy SEO”, to pole nie będzie dostępne:

Poniższe ustawienie oznacza, że pole będzie wyświetlane zawsze, bez względu na wybór formatu wpisu i kategorii:

Takie ustawienie sprawi, że pole będzie wyświetlane dla kategorii „Firmy SEO” bez względu na wybrany format wpisu:

Opcje

Dla każdego pola custom fields przy wprowadzaniu artykułu dostępny jest taki widok (w zależności od wyboru typu będzie się nieco różnił):

W przypadku pola jak nazwa firmy jest w porządku, każdy wpis będzie zawierał tutaj inną wartość. Ale co w przypadku, gdy wartość pola będzie często powtarzana? Taka sytuacja ma miejsce bardzo często, na przykład dla pola oceny w skali powiedzmy 1-5. Gdy wpisujemy po prostu cyfrę, też nie ma problemu. Ale co w przypadku, gdy chcemy wyświetlać odpowiednią ilość gwiazdek zamiast cyfry? Tu właśnie przychodzą z pomocą Opcje w pluginie Custom Fields.

Opcje to nic innego jak definiowanie możliwych opcji wyboru, które będą prezentowane jako lista wyboru (pole typu select) zamiast standardowego pola tekstowego/liczbowego (input/textarea). Po wprowadzeniu opcji może to wyglądać tak przy wprowadzaniu artykułu:

Powyższy sposób wypełnienia wartości dla pola będzie na pewno o wiele wygodniejszy. Stwórzmy od postaw pole oceny z wyświetlaniem odpowiedniej ilości gwiazdek, zamiast cyfry.

Przykład

Stwórzmy od postaw pole oceny z wyświetlaniem odpowiedniej ilości gwiazdek, zamiast cyfry. Mój szablon załadowane ma rozszerzenie z ikonami „Font Awesome”. Wykorzystam ją do wyświetlenia pojedynczej gwiazdki. Gwiazdka wypełniona:

<span class="fa fa-star" style="color:gold"></span>

Gwiazdka pusta:

<span class="fa fa-star" style="lightgrey"></span>

Tworzę pole o nazwie ocena:

Następnie przy utworzonym polu klikam w przycisk „Opcje”: Jak widać tabela opcji jest pusta, a to oznacza, że nie ma zdefiniowanych opcji i na razie przy wprowadzaniu artykułu dostępne jest pole typu textarea (trzeba ręcznie wprowadzać wartość). Aby to zmienić, wystarczy wypełnić tabelę.

Kolumna „Key” musi być unikalna dla danego pola, jednocześnie będzie to wartość którą wybierzemy później w formularzu przy dodawaniu wpisu (co więcej tą wartość podamy przy publikacji wpisu przez xmlrpc). Kolumna „Value” to wartość, którą chcemy mieć wyświetlaną dla użytkownika strony bezpośrednio w artykule. Czyli może to być kod html, lub czysty tekst.

Dla oceny „1” (kolumna Key) podaję kod jednej gwiazdki pełnej i 4 pustych (kolumna Value):

<span class="fa fa-star" style="color:gold"></span><span class="fa fa-star" style="lightgrey"></span><span class="fa fa-star" style="lightgrey"></span><span class="fa fa-star" style="lightgrey"></span><span class="fa fa-star" style="lightgrey"></span>

Wygląda to teraz tak:

Definiuję jeszcze odpowiednio kolejne pozycje 2-5:

Zapisuję wprowadzone zmiany.

Dla wpisu wybieram z listy ocenę 5, a we wpisie na stronie wyświetli mi się:

Oczywiście w szablonie mam zdefiniowane pole:

<tr><td>Moja ocena</td><td>_CUSTOM_ocena_</td></tr>
start/pluginy/custom_fields.txt · ostatnio zmienione: 2023/02/16 14:46 (edycja zewnętrzna)