Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SMARTY] Wybranie zdefiniowanego fragmentu z szablonu
become
post 30.01.2007, 10:42:04
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Witam.
Dotychczas stosowałem template_IT. Postanowiłem przejść na SMARTY.
Mam pytanie.

W template_IT mogłem zdefiniować w jednym szablonie - np. zawierajacym formularze, kilka wersji jednego formularza.
Wykonując metodę: TOUCH, gdzie parametrem byla nazwa wersji, moglem wybrac ta wersje, ktora mi pasowala.

przykład:
http://pear.php.net/manual/en/package.html....touchblock.php

Jak podobna rzecz zrobić w SMARTY?
Uzyc SECTION z parametrem powtarzania ustawionym na 0 questionmark.gif

Ten post edytował become 30.01.2007, 11:18:43


--------------------
Darmowy Kreator Stron Internetowych
NR1 W Polsce - Portal Społecznościowo-Randkowy
Pozycjonowanie - najlepsze polskie narzędzie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Zyx
post 30.01.2007, 13:18:17
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Chociażby zwykłą instrukcję warunkową masz od tego:

Kod
{if $login_successful}
formularz
{else}
drugi formularz
{/if}


  1. <?php
  2. $tpl -> assign('login_successful', 1);
  3. ?>


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
become
post 30.01.2007, 13:27:02
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


no to rozwiazanie nie za bardzo mi odpowiada.
jezeli bede mial plik z komunikatami np. 20 roznych komunikatow, to w template_IT po prostu robilem

  1. <?php
  2. $tpl->touchBlock("jaki_blok")
  3. ?>


gdzie jaki_blok bylo nazwa bloku zawierajaca odpowiedni komunikat - i to wszystko.

A SMARTY będę musiał pisać kilkanaście if-ów questionmark.gif

Bez sensu.

Ten post edytował become 30.01.2007, 13:27:47


--------------------
Darmowy Kreator Stron Internetowych
NR1 W Polsce - Portal Społecznościowo-Randkowy
Pozycjonowanie - najlepsze polskie narzędzie
Go to the top of the page
+Quote Post
Sabistik
post 30.01.2007, 13:38:56
Post #4


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No to może capture?

Definiujesz parę bloków, w php przekazujesz nazwę bloku, w szablonie wyświetlasz odpowiedni blok po nazwie.
Go to the top of the page
+Quote Post
become
post 30.01.2007, 14:13:12
Post #5





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


tez nie.
poniewaz capture wycina tylko to co jest pomiedzy {capture} a {/capture}

mi chodzi o to, aby wszystko co jest w template zostalo pokazane + 1 wybrany element.
Tak dziala to w template_IT.

mam np. taki template.

  1. <div> test </div>
  2. <!-- BEGIN kom1 -->
  3. You have logged in successfully!
  4. <!-- END kom1 -->
  5. <!-- BEGIN kom2 -->
  6. Login failed
  7. <!-- END kom2 -->
  8. <!-- BEGIN kom3 -->
  9. You have logged in successfully!
  10. <!-- END kom3 -->
  11. <!-- BEGIN kom4 -->
  12. Login failed
  13. <!-- END kom4 -->
  14. <div> test </div>


to wybierając blok "kom2" wyswietli mi się:

  1. <div> test </div>
  2. Login failed
  3. <div> test </div>


Ten post edytował become 30.01.2007, 14:14:45


--------------------
Darmowy Kreator Stron Internetowych
NR1 W Polsce - Portal Społecznościowo-Randkowy
Pozycjonowanie - najlepsze polskie narzędzie
Go to the top of the page
+Quote Post
Sabistik
post 30.01.2007, 14:34:59
Post #6


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jak dobrze pamiętam capture działa podobnie.

  1. <?php
  2. $tpl -> assign('captureName', 'kom4');
  3. ?>


  1. <div> test </div>
  2. {capture name=kom1}
  3. You have logged in successfully!
  4. {/capture}
  5. {capture name=kom2}
  6. Login failed
  7. {/capture}
  8. {capture name=kom3}
  9. You have logged in successfully!
  10. {/capture}
  11. {capture name=kom4}
  12. Login failed
  13. {/capture}
  14. {$smarty.capture.$captureName}
  15. <div> test </div>
Go to the top of the page
+Quote Post
Zyx
post 30.01.2007, 15:26:54
Post #7





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


A jaka to jest różnica między zrobieniem dwudziestu <!-- BEGIN costam -->tekst<!-- END costam -->, a zrobieniem dwudziestu {if $costam}tekst{/if}? Przecież na dobrą sprawę to jest dokładnie to samo.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
become
post 30.01.2007, 21:43:41
Post #8





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


nie chce mieć IF-ów po stronie SMARTY - to jest ta różnica
IF-y mogę sobie zrobić w php.


--------------------
Darmowy Kreator Stron Internetowych
NR1 W Polsce - Portal Społecznościowo-Randkowy
Pozycjonowanie - najlepsze polskie narzędzie
Go to the top of the page
+Quote Post
Zyx
post 2.02.2007, 16:04:40
Post #9





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Jejku... a w Template_IT to niby czym to robiłeś, jak nie instrukcją warunkową (fakt - uproszczoną i pod nieco inną postacią/nazwą, z nieco inną obsługą, ale jednak)? smile.gif Unikanie programowania po stronie szablonów swoją drogą, ale bez zbędnej przesady.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:00