Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]TWIG problem
Forum PHP.pl > Forum > Przedszkole
Analka
Witam

Niemogę poradzić sobię z funkcją extend w TWIGu.

Struktura:

templates/
---default/
-------index.html
-------demo.html
-------footer.html
---oragneblue/
index.php

index.html:
  1. {% block footer %} {% endblock %}


footer.hml:
  1. {% extends "index.html" %}
  2.  
  3. {% block footer %}
  4.  
  5. (c) {{ "now"|date("Y") }}
  6.  
  7. {% endblock %}


i nic nie wyświetla gdy wejdę na strone główną tzn nie wyświetla stopki. I tu pytanie jak to załadować czy źle korzystam z extend? J
Pyton_000
Zamień te 2 pliki zawartością między sobą.
analka
to w takim razie po co mi w footer czysty plik, chciałem odwołać się do index i tam wrzucić stopke poprzez tzw. moduł
toffiak
Jeżeli stopka jest stała a zazwyczaj jest a twoim głównym plikiem jest index.html to plik stopki nie powinien zawierać żadnych bloków tylko sam kod html-owy, w pliku index.html użyj "include" do dodania zawartości tego pliku.
analka
No teoretycznie się zgadza, lecz chciałem się dowiedzieć jak działa te extends i block i móc tworzyć fajne moduły.

Ale fakt faktem że nie chce mi działać na przykładzie stopki.
Include już używam to wczytywania treści podstron.

werdan
Musisz zrobic odwrotnie, jak pisał kolega powyzej.

base.html
  1. <!DOCTYPE html>
  2. <head>
  3. <link rel="stylesheet" href="style.css" />
  4. <title>{% block title %}{% endblock %} - My Webpage</title>
  5. </head>


child.html
  1. {% extends "base.html" %}
  2. {% block title %}Index{% endblock %}


anelka
Cytat(werdan @ 16.12.2013, 13:33:20 ) *
Musisz zrobic odwrotnie, jak pisał kolega powyzej.

base.html
  1. <!DOCTYPE html>
  2. <head>
  3. <link rel="stylesheet" href="style.css" />
  4. <title>{% block title %}{% endblock %} - My Webpage</title>
  5. </head>


child.html
  1. {% extends "base.html" %}
  2. {% block title %}Index{% endblock %}



a czym różni się twój sposób od przedstawionego mojego? prócz tego że mamy inne nazwy bloków i plików? :/
werdan
Heh. No fakt. W sumie to samo biggrin.gif

Ale wchodzisz na index, a zrobiłeś jakbyś chciał wejsc na footer.
analka
index.php
  1. $loader = new Twig_Loader_Filesystem('./templates/'.$get_config[layout]);
  2. $twig = new Twig_Environment($loader, array(
  3. // 'cache' => 'cache', //Możliwość cachowania
  4. 'auto_reload' => true
  5. ));
  6. $template = $twig->loadTemplate($get_config['default_page'])


Myślałem że on wczytuje all pliki z danego folderu i łączy je jak mają extends bloki. Czy tak nie jest?


Jeżeli nawet podstrony to i tak jak wejdę na podstronę demo.html i umieszczę tam extends to mam błąd:
  1. Fatal error: Uncaught exception 'Twig_Error_Syntax' with message 'A template that extends another one cannot have a body in "demo.html" at line 1.' in
więc zapewne nie tędy droga.. :/ może źle wczytuje pliki w index.php?
analka
API dokumentacja:
http://twig.sensiolabs.org/doc/tags/extends.html


próbowałem już wszystkiego i niewiem czemu to nie chce działać sad.gif
toffiak
Piku demo.html powinien wyglądać mniej więcej tak:
  1. {% extends "index.html" %}
  2.  
  3. {% block blok_ktory_chcesz nadpisać_z_layout.html %}
  4. {# Treść #}
  5. {% endblock %}


i wywołujesz go poprzez plik demo.html, wtedy odczytany zostaje plik demo.html, ponieważ zawiera on deklarację extends pobrany zostanie najpierw plik index.html i zbudowane dla niego drzewo bloków, następnie powracamy do pliku demo.html i zastępujemy blok: "blok_ktory_chcesz nadpisać_z_layout.html" tym z demo.html.

Plik index.html musi mieć blok: "blok_ktory_chcesz nadpisać_z_layout.html" aby można go było nadpisać.
agterpan
~/public_html/zf$ zf create module FormExample
-bash: zf: nie znaleziono polecenia

Co to jest za błąd i jak jego eventualnie usunąć?(Instalacja Zend Framework z konsoli).
analka
To chyba miałem złe podejśćie..


index.html:
  1. {% if page_mysql['type'] == 1 %}
  2. {% include page_mysql.dir %}
  3. {% else %}


Tak ładowałem do treści strony inne pliki szablonów..

Myślałem że mogę to podzielić na moduły czy bloki i fajnie mieć posegregowane :/
Muszę dokładnie zaplanować jak zrobić podstrony z tym TWIG bo miałem zły koncept i się nie udał sad.gif
analka
Dobra dzięki smile.gif Rozkminiłem jak to zrobić i jak to działa smile.gif

Dziękuje wam za pomoc i pozdrawiam!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.