Problem mit Smarty und include :)

indylein

Grünschnabel
Hallo ihr lieben,


ich code gerade an meinem CMS und hab mir gedacht, es wär mal an der Zeit, Templates einzubauen. Da ich selbst nicht im Stande bin ein anstendiges Template System auf die Beine zu stellen, habe ich mich entschlossen mit Smarty (dass mir sehr viel empfohlen wurde) zu arbeiten.

Ich hab mir das ganze also runtergeladen und 2 fragen:

1. Ich will mein CMS auf meiner Seite zum DL anbieten, wenn allerdings Bestandteile von Smarty drin sind, weiß ich nicht wie das Copyrightlich geregelt ist... Kann ich das einfach so einbinden oder muss ich irgendwelche Bedingungen erfüllen (Copyright von Smarty einbinden oder so)... oder darf ich das überhaupt?!

2. Ich hab ein Smarty Test gemacht und bemerkt, dass man mit smarty->assign keine Include-Befehle als Templatevariable erstellen kann (z.B. $smarty->assign("content",include("news.php"));) ... Gibt es irgendeine Möglichkeit, dass gescheit einzubinden? Dass ich im Template über {$content} die news.php includen kann? (Hab das ganze auch schon mit ' anstatt " & require versucht, aber es geht nicht)

Link zum Problem: http://web6.h47233.serverkompetenz.net/work/templates/

Vielen Dank schonmal für eure Hilfe,
indy
 
Zuletzt bearbeitet:
Hmpf, macht sich mal jemand die Mühe auf den entsprechenden Webseiten nachzuschauen vor dem fragen? ;-]

Von der Smarty Homepage (Wiki - FAQ):
Q: Can I create a proprietary software, and sell it with Smarty?

A: Yes, you can. Smarty is licensed under the [LGPL] and distributing an unmodified smarty source as part of a commercial product is just fine.

A: As far as I know the GPL licence doesn't allow any work using a GPL software in any way different by mere aggregation to be released with a licence different from GPL. For this reason LGPL licence was created. LGPL allows programs using or linking to a library to be released with a different licence.

Es sollte also möglich sein das unmodifizierte Smarty mit Deinem eigenen Produkt zu vertreiben und sogar zu verkaufen.

Bei Deinem zweiten Problem hilft Dir vielleicht folgendes:
http://www.php-resource.de/forum/showthread/t-26118.html
 
Ich empfehle dir mal die Doku von Smarty durchzuarbeiten. Da steht das explizit drin. Du könntest den Dateinamen per Assign übergeben und dann die Include-Funktion von Smarty nutzen:

PHP:
$smarty->assign ("datei", "news.php");


// ... im Template
{include file=$datei}
 
Ich weiß nicht, ob ich das mit dem include richtig verstanden habe, aber warum machst du es nicht so:

Hol dir im Script mit $smarty->fetch das news-Template und übergebe es an dein Haupt-Template als Variable. Dort reicht dann ein einfaches {$news} aus und fertig.
 
Zurück