Pereiti prie turinio

Smarty engine dizaino problema


Rekomenduojami pranešimai

Sveiki visi,

 

Naudoju Smarty varikliuka ir viskas kol jo nepanaudoji pačiame jo varikle dizaino viskas buna gerai t.y. statiniame html kode.

Panaudojus toki iš kart nuo viršaus gal 15-20px žemyn nustumia.

 

{include file="header.tpl" title=header}

 

Jei iterpi visa html koda iterpiamaji viskas gerai veikia puikiai. Bet pastebėjau, kad tik panaudojus include iškart susidarko dizainas.

 

Galbūt esate kas nors susidure su šia problema?

 

Dėkui už pagalba iš anksto :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Palygink abiem atvejais išvedamą kodą (statinio html ir su smarty). Negali niekuo nesiskirt – naršyklė niekaip nekeis vaizdo dėl to, kad išvesta su smarty. Kažkur kažkas susidubliuoja, pasinaikina, ar pan. Galbūt tiesiog pražioplinai kažką išskirstydamas į templeitus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Palygink abiem atvejais išvedamą kodą (statinio html ir su smarty). Negali niekuo nesiskirt – naršyklė niekaip nekeis vaizdo dėl to, kad išvesta su smarty. Kažkur kažkas susidubliuoja, pasinaikina, ar pan. Galbūt tiesiog pražioplinai kažką išskirstydamas į templeitus.

Bet lyg ir viskas gerai kai smarte i home.tpl ikelia header ir footer tpl'us viskas gerai o kai isskaidau pasikeicia kazkodel :( nezinau net kame problema, ka as ten blogai darau..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai gal kur koks tarpas nereikalingas prisideda ar dar kas. Tau gi pasakė - palygink išvedamus HTML'us abiems atvejais. Ir įsitikink, kad jie yra identiški.

na bet jie idėntiški :( niekaip nesuprantu... taip neturi būti. bet pasalinus ta include ir vietoj jo ikelus koda viskas veikia tinkamai, bet headerio kekvienam faile nesinori ikelinti...

Kame bėda.., html statinis ir smarty išvedamas kodas vienodi., bet iš kur atsiranda iškelimas nuo viršaus nepagaunu..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

na bet jie idėntiški :( niekaip nesuprantu... taip neturi būti. bet pasalinus ta include ir vietoj jo ikelus koda viskas veikia tinkamai, bet headerio kekvienam faile nesinori ikelinti...

Kame bėda.., html statinis ir smarty išvedamas kodas vienodi., bet iš kur atsiranda iškelimas nuo viršaus nepagaunu..

Pilnus source'us paimk ir palygink pavyzdžiui čia http://www.diffchecker.com/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

ech, ji dar kazkas naudoja...

O gal turi ką geresnio pasiulyti html ir php koda atskirti? :)

kešuoti turinio aišku man kaip ir nereikia visu tu nesamoniu, užtektu ir atskirti, ir kad viskas butu lengviau :)

programuoti ir atnaujinti koda :)

 

Galbūt prisideda kokie nematomi UTF8 simboliai? Reiktų įdėmiau output'ą kažkaip patikrint.

Bet čia nematomus simbolius pridėti galėtu tik smarty engine, nes jei aš viska sukišu i tpl puikiai atvaizduoja include man rodos kiša koja man :(

 

Galima ir geriausia alternativa pasiuliti :) vietoje smarty :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O gal turi ką geresnio pasiulyti html ir php koda atskirti? :)

kešuoti turinio aišku man kaip ir nereikia visu tu nesamoniu, užtektu ir atskirti, ir kad viskas butu lengviau :)

programuoti ir atnaujinti koda :)

O kam atskirti? Koks skirtumas tarp <?php echo $data;?> ir {$data} ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kam atskirti? Koks skirtumas tarp <?php echo $data;?> ir {$data} ?

Toks ir skirtumas, kokį parašei.

 

Jei rimčiau, tai normalūs template varikliukai duoda daug daugiau galimybių, pvz., šablonų paveldėjimą, ko vien mėtydamas "echo" nepasidarysi, o jei bandysi, tai greičiau jau nusilauši koją.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei rimčiau, tai normalūs template varikliukai duoda daug daugiau galimybių, pvz., šablonų paveldėjimą, ko vien mėtydamas "echo" nepasidarysi, o jei bandysi, tai greičiau jau nusilauši koją.

 

+ labai svarbus dalykas - cache'inimas. Cache'inami galutiniai rezultatai ir tiesiog išspjaunami sekančius kartus iki pakeitimo. Aišku gali šitą ir pats realizuot, bet kam, jeigu už tave jau 100 kartų viskas apgalvota ir padaryta protingiau, negu beveik su 100% tikimybe pats galėsi sugalvot. Turi turi pliusų template engine'ai. Asmeniškai man smarty visai patinka, bet čia jau atskira tema.

Redagavo vitalikaz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Toks ir skirtumas, kokį parašei.

 

Jei rimčiau, tai normalūs template varikliukai duoda daug daugiau galimybių, pvz., šablonų paveldėjimą, ko vien mėtydamas "echo" nepasidarysi, o jei bandysi, tai greičiau jau nusilauši koją.

Tai ne vien tai, toks dar yra pliusas, kad jei norėsi pakeisti dizaina galėsi daug paprasčiau ir lengviau.. Ankščiau pats galvojau, kam visi tie template engine ir t.t. bet dabar suprantu nauda, palengvina viska :)

 

Visai neblogas yra Twig.

 

Siūlau šį, nes jei ateityje naudosi karkasą kaip Symphony (kuris naudoja tą patį Twig), nereikės gaišti laiko mokantis naujos šablono sintaksės.

Butingai išbandysiu :) ir ankščiau būvo sudominusi man Symphony, tačiau nebandžiau ir nesidomėjau, tik tarp darbo pasiulimu reikalauja pastebėjau. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Visai neblogas yra Twig.

 

Siūlau šį, nes jei ateityje naudosi karkasą kaip Symphony (kuris naudoja tą patį Twig), nereikės gaišti laiko mokantis naujos šablono sintaksės.

O gal kartais turi ir kokiu kitokiu pasiulymu? :) kas galėtu būti verta ir dėmesio? :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O gal kartais turi ir kokiu kitokiu pasiulymu? :) kas galėtu būti verta ir dėmesio? :)

 

Kelis galiu pasiūlyti, kuriuos esu mėginęs:

 

  • Volt. Parašytas C kalba kaip PHP plėtinys Phalcon karkase, tačiau galima naudoti kaip atskirą elementą. Labai greitas, pakankamai funkcionalus ir turi puikią dokumentaciją. Problema tik viena jei esi shared hostinge - neįdiegsi Phalcon plėtinio.
  • RainTPL ir/arba RainTPL 3. Labai paprastas (vos kelios žymės ir PHP metodai) ir greitas. Taip pat turi trumpą, bet aiškią dokumentaciją.
  • Haanga. Paremtas Django stiliumi. Nėra oficialios dokumentacijos (bet galima github'e tarp branch'ų), tačiau pakankamai greitas lyginant su kitais. Vienkartinis bandymas...
  • Laravel-Blade. Tarp minėtų anksčiau - lėčiausias, bet turi aiškią sintaksę ir gerą dokumentaciją. Turbūt nenaudočiau kaip atskiro komponento be Laravel karkaso.

 

P.S. Dar būtų galima peržiūrėti ir Mustache.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kelis galiu pasiūlyti, kuriuos esu mėginęs:

 

  • Volt. Parašytas C kalba kaip PHP plėtinys Phalcon karkase, tačiau galima naudoti kaip atskirą elementą. Labai greitas, pakankamai funkcionalus ir turi puikią dokumentaciją. Problema tik viena jei esi shared hostinge - neįdiegsi Phalcon plėtinio.
  • RainTPL ir/arba RainTPL 3. Labai paprastas (vos kelios žymės ir PHP metodai) ir greitas. Taip pat turi trumpą, bet aiškią dokumentaciją.
  • Haanga. Paremtas Django stiliumi. Nėra oficialios dokumentacijos (bet galima github'e tarp branch'ų), tačiau pakankamai greitas lyginant su kitais. Vienkartinis bandymas...
  • Laravel-Blade. Tarp minėtų anksčiau - lėčiausias, bet turi aiškią sintaksę ir gerą dokumentaciją. Turbūt nenaudočiau kaip atskiro komponento be Laravel karkaso.

 

P.S. Dar būtų galima peržiūrėti ir Mustache.

Ji man to ko man tikrai reikėjo :) idealiausias variantas :) Greitas, paprastas. Ji skirta tik atskirti HTML nuo PHP. Dėkui tau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Radau dizaino klaida ir problema, problema buvo tame, kad tpl failas buvo tik UTF-8 pakeičiau į UTF-8 be BOM, ir viskas isisprendė, nežinau, kas tai yra. Jei galite paiškinkite.

Yra dvi galimos baitų išdėstymo tvarkos: little endian ir big endian. UTF-16, UTF-32 turi BOM (Byte Order Mark) – keletą baitų, parodančių, kuri tvarka naudojama.

 

UTF-8 baitų tvarka yra nesvarbi, todėl BOM yra visiškai nereikalingas, bet jį vis tiek įmanoma naudoti (standartas leidžia) – pvz., programoms aptikti, kad failas yra tikrai UTF-8. Tačiau tai iš esmės yra nerekomenduojama būtent dėl tokių problemų, kokias sukėlė tau. Dauguma normalių editorių defaultu saugo be BOM.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Yra dvi galimos baitų išdėstymo tvarkos: little endian ir big endian. UTF-16, UTF-32 turi BOM (Byte Order Mark) – keletą baitų, parodančių, kuri tvarka naudojama.

 

UTF-8 baitų tvarka yra nesvarbi, todėl BOM yra visiškai nereikalingas, bet jį vis tiek įmanoma naudoti (standartas leidžia) – pvz., programoms aptikti, kad failas yra tikrai UTF-8. Tačiau tai iš esmės yra nerekomenduojama būtent dėl tokių problemų, kokias sukėlė tau. Dauguma normalių editorių defaultu saugo be BOM.

tai man šis koriagavimas Natapad++ paskui atneš daugiau problemu, del UTF su BOM? :blink:

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...