Narzędzia użytkownika

Narzędzia witryny


start:templatki:index.php

index.php

W skrócie index.php zawiera informacje o całym układzie strony (nagłówek, siebar(y), nagłówek i pusty główny kontener).

Tworząc templatkę od podstaw lub przerabiając istniejącą należy zwrócić uwagę na to, by plik index.php zawierał przynajmniej następujące elementy:

<html lang="en">
  <head>
    <meta charset="utf-8"/>
	<base href="<?php echo $klasa->config('url');?>">
    <?php echo $klasa->css(); ?>
	<?php echo $klasa->headend();?>
  </head>
  <body>
    <?php echo $klasa->contentAll(); ?>
  	<?php echo $klasa->script();?>
	<?php echo $klasa->bodyend();?>
  </body>
</html>

Jest to absolutna podstawa do tworzenia pliku templatki index.php. Oczywiście w rzeczywistości templatka będzie rozbudowana o dodatkowe elementy wymienione w dalszej części tej dokumentacji.

Różne pliki index.php

System umożliwia tworzenie różnych plików index.php. Dzięki temu można dodatkowo różnicować layout strony ze względu rodzaj wyświetlanej podstrony (np. wpis blogowy, strona, paginacja kategorii itd.). Definiowanie nazw dodatkowych plików i przypisywanie ich do odpowiednich rodzajów stron odbywa się za pomocą pliku templatki layout_opcje.php. Przejdź do jego opisu, aby dowiedzieć się więcej na temat tej funkcji.

Metody klasy

Omówienie metod klasy, dzięki którym możliwe jest rozbudowanie strony o różne elementy.

Konfiguracja

Do pobrania danych konfiguracyjnych strony służy metoda:

$klasa->config();

Metoda ta zwraca kilkadziesiąt elementów konfiguracyjnych, aby je wyświetlić można tymczasowo użyć składni php:

var_dump($klasa->config());

Wybrane elementy tej tablicy, które można wykorzystać przy budowanie templatki:

array(31) {
  ["url"]=>
  string "url strony głównej"
  ["title_strony_glownej"]=>
  string "title strony głównej"
  ["tag"]=>
  string "tagi strony"
  ["opis_strony"]=>
  string "Opis strony"
  ["linktak"]=>
  string "kod z systemu linktak"
  ["sef_blog"]=>
  string "część url wykorzystywany przy tworzeniu url bloga"
  ["nazwa_blog"]=>
  string "Nazwa bloga, wykorzystywane między innymi przy tworzeniu menu"
  ["sef_blog_paginacja"]=>
  string "część url wykorzystywany przy tworzeniu url paginacji bloga"
  ["sef_strona"]=>
  string "część url wykorzystywany przy tworzeniu url strony"
  ["nazwa_strona"]=>
  string "Nazwa dla stron, wykorzystywane między innymi przy tworzeniu menu"
  ["sef_mapastrony"]=>
  string "część url wykorzystywany przy tworzeniu url mapy strony"
  ["sef_tag_paginacja"]=>
  string "część url wykorzystywany przy tworzeniu strony z paginacją dla tagów"
  ["nazwa_mapastrony"]=>
  string "Nazwa dla mapy strony, między innymi przy tworzeniu menu"
  ["email"]=>
  string "email admina"
  ["autor"]=>
  string "nazwa autora, tylko do wyświetlania"
  ["wp-admin"]=>
  string "nazwa folderu domyślnego wp-admin"
  ["wp-login"]=>
  string "nazwa domyślnego pliku wp-login.php"
  ["core_version"]=>
  string "aktualnie zainstalowana wersja cmsa"
  ["theme"]=>
  string "nazwa używanej templatki (nazwa folderu)"
  ["linktak_blog"]=>
  string "1/0 - czy na blogu pokazywać linki z linktak.pl"
  ["linktak_strona"]=>
  string "1/0 - czy na stronie pokazywać linki z linktak.pl"
}

Treść główna

Aby pobrać treść główną (może to być artykuł, strona, strona z paginacją dowolnego typu) należy skorzystać z metody:

$klasa->contentAll();

Metoda ta zwraca treść w formacie HTML do wyświetlenia. Zawiera całą treść (również z tytułem) do wyświetlenia w głównym kontenerze.

Opis (description)

Do wygenerowania opisu strony służy metoda:

$klasa->description();

Opis strony, będzie to zawsze opis z zakładki konfiguracji strony, chyba że dane zmodyfikowane są przez plugin.

Tytuł strony

Tytuł danej strony/podstrony. Zwykle wykorzystywane do meta title i headera:

$klasa->title();

Opis strony

Opis danej strony/podstrony. Zwykle wykorzystywane do meta description:

$klasa->description();

Post Format

Zwracane w przypadku strony z wpisem blogowym, oznacza format wpisu

$klasa->postFormat();

Sidebary

Utwórz dowolny sidebar w dowolnym miejscu metodą:

$klasa->sidebar('right'); 

Dzięki niej będziesz miał możliwość umieszczania widgetów w zdefiniowanym sidebarze prosto z panelu CMS bez konieczności edytowania plików templatki.

Pluginy

Aby pobrać informacje o włączonych pluginach wystarczy użyć metody:

$klasa->plugins()

Przykładowy wynik:

array(12) {
  ["bio"]=>
  string(1) "1"
  ["cookie-notice"]=>
  string(1) "1"
  ["losowewpisywtresci"]=>
  string(1) "1"
  ["nextprevart"]=>
  string(1) "1"
  ["fake_comment"]=>
  string(1) "1"
  ["fake_newsletter"]=>
  string(1) "1"
  ["table_of_contents"]=>
  string(1) "0"
  ["main_page"]=>
  string(1) "0"
  ["post_format"]=>
  string(1) "1"
  ["custom_fields"]=>
  string(1) "1"
  ["cats"]=>
  string(1) "1"
  ["wykluczenia_nap"]=>
  array(5) {
    [0]=>
    string(3) "bio"
    [1]=>
    string(18) "losowewpisywtresci"
    [2]=>
    string(11) "nextprevart"
    [3]=>
    string(12) "fake_comment"
    [4]=>
    string(15) "fake_newsletter"
  }
}

W przypadku włączonego pluginu wartość wynosi 1 przy nazwie (nazwa folderu z pluginem), w przypadku wyłączonego pluginu 0.

Należy zwrócić uwagę na element tablicy o początkowej nazwie „wykluczenia_”. Na przykładzie jest to „wykluczenia_nap”. Element ten zawiera tablicę nazw pluginów, które są wyłączone w przypadku formatu postu o nazwie nap (formaty postów tworzone są za pomocą pluginu o tej właśnie nazwie). Oznacza to między innymi, że plugin Bio jest wyłączony na wpisach formatu „nap”, mimo globalnego włączenia pluginu Bio.

SPOSÓB 1: widget - dostępny jest widget o slugach: breadcrumb

SPOSÓB 2: metoda

Aby pobrać breadcrumb należy skorzystać z metody:

$klasa->breadcrumb()

Dzięki tej metodzie zostanie utworzony i zwrócony kod html z breadcrumb. Obecnie kod breadcrumb można modyfikować za pomocą pliku index_breadcrumb.php. Przykładowy kod zwrócony przez breadcrumb:

string "<li class="breadcrumb-item active"><a href="Firmy SEO/1">Firmy SEO</a></li>"

Breadcrumb nie zwraca pozycji startowej. Więcej informacji znajdziesz w opisie pliku index_breadcrumb.php.

SPOSÓB 1: widget - dostępne są widgety o slugach: menu, categories, recent_entries

SPOSÓB 2: metoda Menu można tworzyć za pomocą metody:

$klasa->menu(arg1,arg2)

Metoda przyjmuje dwa argumenty. arg1 to oznacza rodzaj menu, arg2 oznacza maksymalną ilość pobranych elementów, jest opcjonalny (w przypadku braku pobrane zostaną wszystkie elementy).

arg1, czyli rodzaj menu:

'glowne' - zostaną pobrane elementy: home, blog, wszystkie strony, mapa strony
'blog' - zostaną pobrane elementy do wpisów blogowych
'kategorie' - zostaną pobrane elementy do kategorii
'strona' - zostaną pobrane elementy do utworzonych stron

Przykład:

$klasa->menu('glowne',5);

Zwróci:

array(4) {
  [0]=>
  array(3) {
    ["sef"]=>
    string(41) "http://cms.pl/"
    ["title"]=>
    string(5) "Start"
    ["active"]=>
    string(0) ""
  }
  [1]=>
  array(3) {
    ["sef"]=>
    string(12) "0-wpisy.html"
    ["title"]=>
    string(4) "Blog"
    ["active"]=>
    string(0) ""
  }
  [2]=>
  array(3) {
    ["sef"]=>
    string(21) "kontakt-2-strona.html"
    ["title"]=>
    string(7) "Kontakt"
    ["active"]=>
    string(0) ""
  }
  [3]=>
  array(3) {
    ["sef"]=>
    string(14) "0-sitemap.html"
    ["title"]=>
    string(11) "Mapa strony"
    ["active"]=>
    string(0) ""
  }
}

Oto przykład wykorzystania elementu menu:

<?php			
 $menu = $klasa->menu('glowne',5);
 foreach ($menu as $m) {
 echo ' <li class="nav-item">
 <a class="nav-link '.$m['active'].'" href="'.$m['sef'].'">'.$m['title'].'</a>
 </li>';
 }
?>

Najnowszy

SPOSÓB 1: widget - dostępny jest widget o slugach: recent_entries

SPOSÓB 2: metoda

Metoda służąca do pobrania najnowszego elementu:

$klasa->najnowszy()

Metoda nie przyjmuje żadnych argumentów. W przypadku wywołania w obrębie bloga (wpis bloga, paginacja bloga, tag, kategoria) zostanie pobrany najnowszy element z bloga. W przeciwnym razie zostanie pobrana najnowsza strona.

Oto przykładowe dane zwrócone przez metodę:

array() {
  ["id"]=>
  string(2) "40"
  ["tytul"]=>
  string(17) "Seo Solutions INC"
  ["yoast_wpseo_title"]=>
  string(0) ""
  ["tekst"]=>
  string(74) "Super firma mająca wiele ciekawych programów i usług związanych z SEO."
 ["img"]=>
  string(2) "40"
  ["data"]=>
  string(10) "1586848598"
  ["tagi"]=>
  ["linktak_tagi"]=>
  string(42) "seo,pozycjonowanie,linki,indeksacja,google"
  ["autor"]=>
  string(5) "admin"
  ["sef"]=>
  string(30) "seo-solutions-inc-40-wpis.html"
  ["redirect"]=>
  string(0) ""
  ["plugin_bio"]=>
  string(0) ""
  ["post_format"]=>
  string(3) "nap"
  ["custom_fields"]=>
  string(2) "[]"
  ["cat"]=>
  string(1) "0"
}

Przykład wykorzystania:

<?php $najnowszy = $klasa->najnowszy(); ?>
        <div class="card card card-warning text-center card-inverse my-2">
          <div class="card-block">
            <h4 class="card-title"><?php echo $najnowszy['tytul'];?></h4>
            <p class="card-text"><?php echo $najnowszy['tekst'];?></p>
            <p class="card-text">
              <a href="<?php echo $najnowszy['sef'];?>" class="btn btn-primary"><?php echo $lang['czytaj_wiecej'];?></a>
            </p>
          </div>
        </div>	

Losowy

SPOSÓB 1: widget - dostępny jest widget o slugach: recent_entries

SPOSÓB 2: metoda

Metoda służąca do pobrania losowego elementu:

$klasa->losowy()

Metoda nie przyjmuje żadnych argumentów. W przypadku wywołania w obrębie bloga (wpis bloga, paginacja bloga, tag, kategoria) zostanie pobrany losowy element z bloga. W przeciwnym razie zostanie pobrana losowa strona.

Oto przykładowe dane zwrócone przez metodę:

array() {
  ["id"]=>
  string(2) "40"
  ["tytul"]=>
  string(17) "Seo Solutions INC"
  ["yoast_wpseo_title"]=>
  string(0) ""
  ["tekst"]=>
  string(74) "Super firma mająca wiele ciekawych programów i usług związanych z SEO."
 ["img"]=>
  string(2) "40"
  ["data"]=>
  string(10) "1586848598"
  ["tagi"]=>
  ["linktak_tagi"]=>
  string(42) "seo,pozycjonowanie,linki,indeksacja,google"
  ["autor"]=>
  string(5) "admin"
  ["sef"]=>
  string(30) "seo-solutions-inc-40-wpis.html"
  ["redirect"]=>
  string(0) ""
  ["plugin_bio"]=>
  string(0) ""
  ["post_format"]=>
  string(3) "nap"
  ["custom_fields"]=>
  string(2) "[]"
  ["cat"]=>
  string(1) "0"
}

Przykład wykorzystania:

<?php $losowy= $klasa->losowy(); ?>
        <div class="card card card-warning text-center card-inverse my-2">
          <div class="card-block">
            <h4 class="card-title"><?php echo $losowy['tytul'];?></h4>
            <p class="card-text"><?php echo $losowy['tekst'];?></p>
            <p class="card-text">
              <a href="<?php echo $losowy['sef'];?>" class="btn btn-primary"><?php echo $lang['czytaj_wiecej'];?></a>
            </p>
          </div>
        </div>	

Praktyczne wskazówki

Odwołanie się do plików templatki

Nazwa templatki kryje się w zmiennej php:

$theme

Odwołanie się do pliku css templatki może wyglądać tak:

<link href="wp-content/themes/<?php echo $theme;?>/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">

Odwołanie się do pliku js templatki może wyglądać tak:

<script src="wp-content/themes/<?php echo $theme;?>/js/clean-blog.min.js"></script>

Utworzenie wyszukiwarki

SPOSÓB 1: widget - dostępny jest widget o slugach: search

SPOSÓB 2: CMS Pod Zaplecze posiada prosty system wyszukiwarki. Wystarczy wysłać na stronę główną metodą POST element tablicy o nazwie $_POST['q'] zawierający wyszukiwaną frazę. Przykładowy kod wyszukiwarki:

		<form class="searchbar" method=POST action="<?php echo $klasa->config('url');?>">
			<input class="search_input" type="text" name="q" placeholder="Szukaj...">
			<button type=submit  class="search_icon"><i class="fas fa-search"></i></button>
		</form>

W efekcie zostanie wyświetlona strona z wyszukanymi elementami (formatowanie zostanie pobrane z pliku index_zajawka.php):

Przerzucane style i skrypty do plików

CMSPodZaplecze ma wbudowaną funkcję automatycznego przenoszenia skryptów i styli (z tagów style oraz script) do plików (oczywiście nie dotyczy to plików css). Aby nie przenosić ich automatycznie należy w templatce dodatkowo użyć tagu nochangeit. Tag ten można używać we wszystkich plikach templatki.

Przykład:

<a href="#" class="mojaklasalinku">Mój link</a>
<style>.mojaklasalinku {color:red;}</style>

Powyższy fragment kodu zostanie automatycznie zamieniony w przeglądarce na:

<a href="#" class="mojaklasalinku">Mój link</a>

A kod ze tagu style zostanie przeniesiony do pliku ze stylami. Czasem jednak nie chcemy tego robić, w takim przypadku wystarczy dodatkowo oznaczyć style tagiem nochangeit:

<a href="#" class="mojaklasalinku">Mój link</a>
<nochangeit><style>.mojaklasalinku {color:red;}</style></nochangeit>

Wynik powyższego kodu w przeglądarce:

<a href="#" class="mojaklasalinku">Mój link</a>
<style>.mojaklasalinku {color:red;}</style>
start/templatki/index.php.txt · ostatnio zmienione: 2021/04/16 09:04 przez admin