Thema : Config / index + PfadeIch kenne die Möglichkeit bei SVN bestimmte Files die lokal jeweils andere Einstellungen besitzen beim Update zu excluden. Ich denke es ist zu Entwicklungszwecken günstiger, den Pfad über den kaskadierten Pfad + DIRECTORY_SEPERATOR zu assignen, denn das funktioniert bei allen, ohne erst editen zu müssen.
In der cfg werden jetzt folder gesetzt, die draußen in der index.php wieder zusammengesetzt werden. Das macht eigentlich nur Sinn, wenn man die Foldernamen total variablen halten will, also statt /templates /abctpl zum Einsatz kommt.
Ich würde wie gehabt, den allgemeinen Pfad betriebsystembezogen ermittlen und bereits im $cfg-object die Werte aufeinander aufbauend definen.
auch wenn sich das komisch anhören mag, aber: die config setzt die configs, nicht die index.php. index.php hat nur eine aufgabe nämlich die funktion zum anzeigen der index.tpl auszulösen.
Desweiteren stünden volle Pfade für Templates zur Verfügung die auch im TPL über {php} verwendet werden könnten zur Verfügung:
<link rel="stylesheet" type="text/css" href="
{php} echo TEMPLATE_DIR.'/style.css'; {/php}" />
mit nur foldernames kommt man ja auf anhieb nicht so weit, und müsste jedesmal den pfad zusammensetzen. basedir+folder+folder/file
Thema: Db-Konventionender db prefix sollte den unterstrich enthalten, d.h. bei den queries nicht dbprefix+'_table' sondern dbprefix+'table';
pfade tpl/css/js/imagesman kann natürlich ne smarty-pfadmanipulaton durchführen. also pre/post-filter, kein problem.
ich mache es so, um über eine exit.php den userabgang auf externe seiten zu erfassen.
bei jedem externen link wird die exit.php in den pfad eingeschliffen und der originale pfad als parameter angehängt. das würde ich für so häufig wiederkehrende sachen wie images/js/css nicht machen.
auch .htaccess würde ich dafür nicht verwenden.
habe da mehrere vorschläge:
alternative 1läuft etwa in richtung vorschlag #1 hinaus.
bei aufruf des templates wird die config mit eingebunden und der pfad assignt.
foo.conf:
path = "/www/templates/css"
foo.tpl
{config_load file="foo.conf"}
<html>
blubbla
src="{#path#}/main.css"
dieses verfahren bietet sich sowieso an, da ja mit multitemplates gearbeitet werden soll.
/templates/global.conf
/templates/global.css
/templates/themeset1/themeset1.conf
/templates/themeset1/themeset1.css
/templates/themeset1/additional_images/
/templates/standard/standard.conf
/templates/standard/standard.css
/templates/standard/news/news.conf
/templates/standard/news/news.css
Die Sets werden dadurch nacheinander geladen.
Erst Global.css, danach standard.css, danach news.css.
Desweiteren kann man damit auch die sprachabhängige bzw. länderverschiedene Zeitdarstellung per date_format in den tpl configs regeln. Wenn nicht dort dann als Var-assign. Es ist eine Smartyfunktion, eigene Ausgestaltung daher eigentlich entbehrlich.
{$smarty.now|date_format:"%Y-%m-%d"}
Nebenfrage: Wo liegen die Images z.b. Buttons für News?
/templates/standard/news/images/
alternative 2a)
dann wenn die tpl geladen wird, auch den pfad feststellen
und diesen als var assignen und somit für die tpl verfügbar machen
b)
oder direkt (ohne assign)
{include file=$smarty.get.var}
alternative 3die smarty templatedir einstellungen als array fassen und die css und js ordner mit in dieses array einbeziehen. smarty versucht dann zwar vergeblich dort tpl's zu finden, aber die tpl's finden dort ihre zusätze.