Witam.

Od razu zaznaczam, że nie wiem jak nazwać tą funkcję (nie znam php na tyle by to wiedzieć) więc szukanie jej na forum było by dla mnie wyzwaniem wliczając w to setki tematów. Jeżeli ktoś już miał z tym do czynienia lub taki problem/poradnik pojawił się na forum, proszę o przekierowanie mnie tam.
Moja tendencja do tworzenia bałaganu z jednego posta pewnie znów się ujawniła, dlatego proszę o przeczytanie tylko ostatniego punktu jeśli post stał się nie jasny.

[wersja skrócona: w jaki sposób otrzymać taki efetkt? (CouchCMS docs)]

A wracając do tematu właściwego: Interesuje mnie wykonywanie funkcji na podstawie danych zebranych z plików .tpl (robię skrypt forum a do szablonów to byłby chyba najlepszy wybór). Wiem, jak stworzyć funkcję korzystającą z własnych tagów (i.e. <x:title>) lecz nie wiem, jak umieścić w nich dodatkowe zmienne. Spróbuję wytłumaczyć to na przykładzie ponieważ to co tu piszę może być nie zrozumiałe.

  1. <? include('core.php'); ?>
  2. </head>
  3. <X:post=layout>
  4. width='$width';
  5. min-height='$height';
  6. <th>{title}</th><td><tr>{username}</tr>
  7. <tr>{userInfo}</tr></td>
  8. <td><tr>{userPost}</tr></td>
  9. </table>
  10. </X>
  11. </body>


Nie jest to jakiś super layout i w zasadzie nie jest on ważny. Chodzi mi tutaj o stworzenie przez użytkownika layout'u postu za pomocą funkcji. Użytkownik w pliku z layoutem postu (bądź panel administracyjny) wpisywałby zwykły kod html wraz z smartgami typu {userInfo} a funkcja tworzyła by z tego layout wyjściowy. W ten sposób użytkownik mógłby stworzyć styl forum za pośrednictwem PA korzystając tylko z html/css i znajomością tagów. Problemem jest jest dodanie tagów własnych z parametrami, czyli:
<X:post=layout>width='$width'</X>
Widziałem to w jednym z CMS'ów który jednak był zakodowany więc sposób wykonania tej funkcji stał się dla mnie nie jasny.

W skrócie chciałbym dodać funkcję łatwą w obsłudze dla użytkownika, czyli: Jan Kowalski wpisuje w treści strony:
  1. <body><X:drawBox>width:10px;height:10px;border:solid 1px #000;</X></body>
a funkcja pobiera dane wyciągnięte z tagów <X> i wykonuje funkcję oznaczoną jako drawBox rysując kwadrat.