Nie, nie chodzi tu o takie zwykłe instrukcje, jak do tej pory. Mam na myśli zupełnie nowy rodzaj znaczników ochrzczony mianem komponentów. Co jest w nich takiego niezwykłego? Da patrijet:
- Są reprezentowane przez obiekty.
- Mogą zawierać podelementy.
- Do komponentu w szablonie wcale nie musi zostać przypisany żaden obiekt. Wtedy zostanie po nim puste miejsce.
- Obiekt można stworzyć samemu w skrypcie, tam skonfigurować i zładować go metodą assign() lub też zmusić do tego OPT.
Myślę, że takie narzędzie się Wam spodoba, gdyż daleko odstaje od tego, do czego przyzwyczaja Smarty i daje zupełnie nowe możliwości, szczególnie w dziedzinie projektowania systemów modułowych.
Dla zaostrzenia apetytu zarzucę hipotetycznym kodem. Na początku szablon wymuszający stworzenie obiektu komponentu przez OPT. Jest to prosty komponent do generowania list "select" w formularzu, do którego kierujemy dane z bloku $something. Komponent zawiera podelementy reprezentujące dwie dodatkowe informacje, które można wyświetlić: dodatkową informację i komunikat o źle wypełnionym polu. code{selectComponent datasource="$something"} {onerror message="error" position="up"} {@error} {/onerror} {onmessage message="lala" position="down"} {@lala} {/onmessage} {/selectComponent}/code Samą listą zajmie się komponent. Jeśli nie chcemy wcale wymuszać stworzenia obiektu, używamy instrukcji {component}: code{component id="some_id" datasource="$something"} {onerror message="error" position="up"} {@error} {/onerror} {onmessage message="lala" position="down"} {@lala} {/onmessage} {/component}/code Tym razem musimy także ustawić ID, pod którym instrukcja ma się spodziewać gotowego obiektu. Jeśli go nie znajdzie, to nic nie zrobi i po kłopocie. Tja... i tu się sam zagiąłem. Jak niby w tym rozwiążę problem kompilacji, skoro teraz komponent, a zatem też i generowany przezeń kod PHP dla kompilatora określam w momencie wykonywania, który jest później? :). No nic, coś się wymyśli. Tyle rzeczy rozwiązałem, to i to niestraszne. W sumie ten pomysł ma dopiero 37 minut, więc mają prawo być w nim jeszcze pewne luki natury technicznej :).















Napisał splatch w poniedziałek, 13 czerwca 2005 o 23:08
Spójrz na Prado, tam są same komponenty ;)