Autor Subiect: Template valabil pentru o singura pagina  (Citit de 2520 ori)

ionu128

  • Novice
  • *
  • Mesaje postate: 13
Template valabil pentru o singura pagina
« : Februarie 01, 2007, 12:36:35 pm »
Incerc sa fac un template valabil pentru o singura pagina. Problema e ca "Main template"-ul nu mai este inclus cum trebuie. L-am adaugat in lista cu basis templat-uri, dar tot degeaba.
Am 3 extensii: auto-parser, menu si main-template. Le-am adaugat in ordina asta, totusi dispare meniul.
Ceva idei?
egards,
Ionut

tiberiu

  • Novice
  • *
  • Mesaje postate: 209
    • http://www.arobs.com
Re: Template valabil pentru o singura pagina
« Răspuns #1 : Februarie 01, 2007, 01:09:26 pm »
Citat din: "ionu128"
Incerc sa fac un template valabil pentru o singura pagina. Problema e ca "Main template"-ul nu mai este inclus cum trebuie. L-am adaugat in lista cu basis templat-uri, dar tot degeaba.
Am 3 extensii: auto-parser, menu si main-template. Le-am adaugat in ordina asta, totusi dispare meniul.
Ceva idei?


Daca poti fi mai explicit putin. Folosesti templavoila? Cum ai creat template-ul ptr. pagina respectiva? Cum arata codul typoscript?
Tiberiu Contiu
PHP System Architect
AROBS Transilvania Software
str. Minerilor, nr. 63, Cluj-Napoca

www.arobs.ro , www.arobs.com

E-mail: tiberiu.contiu(at)arobs.com , tiberiu.contiu(at)yahoo.com
Skype:  tiberiu.contiu

ionu128

  • Novice
  • *
  • Mesaje postate: 13
Template valabil pentru o singura pagina
« Răspuns #2 : Februarie 01, 2007, 08:14:05 pm »
Nu, nu folosesc templavoila.
Folosesc un template in Setup-ul paginii de root cu css_auto_parser in care mai adaug niste exensii facute de mine. Am o tabela cu id-ul "content" in care se afiseaza mereu continutul paginii curente.

Vreau ca o anumita pagina sa afiseze rezultatul dat de o functie creata de mine. Problema e ca afiseaza rezultatul, dar nu mai apare nimic din template.
Eu vreau ca el sa fie inclus in tabela de "contents".

Asta e solutia la care m-am gandit. Poate stii una mai buna.
P.S. Multumesc pentru promptitudine.
egards,
Ionut

tiberiu

  • Novice
  • *
  • Mesaje postate: 209
    • http://www.arobs.com
Template valabil pentru o singura pagina
« Răspuns #3 : Februarie 02, 2007, 10:01:45 am »
trebuie sa ai un marker in tabelul respectiv pe care-l inlocuiesti cu output-ul functiei tale.

De exemplu, in codul urmator, in template-ul principal pun numele utilizatorului frontend logat pe care-l iau prin functia getCurrentFEuser:

// includ fisierul cu functia ce-mi trebuie;
includeLibs.functions = fileadmin/scripts/feuserFuntions.inc

// creez o 'variabila' temporara
temp.login = TEXT
temp.login{
  // output-ul..
  value = <p><strong>###USER###</strong></p>
  // apelez functia mea care face un replace la ###USER###
  postUserFunc = user_UserFunc->getCurrentFEuser
  // cu ce valoare (din ce field din tabela fe_users) se va face inlocuirea.
  postUserFunc.field = name
}
// apoi, daca user-ul este logat ([loginUser = *]) atribui marker-ului meu valoarea creata in temp, respectiv:
[loginUser = *]
page.10.marks.USER_NAME < temp.login
[global]
// marker-ul ###USER_NAME### pus in template-ul principal se va inlocui cu numele utilizatorului logat.



Functia, respectiv clasa aflata in fisierul feuserFuntions.inc este urmatoarea:


class user_UserFunc{
    function getCurrentFeuser($content,$conf){
        // iau fieldul tabelei; respectiv de unde iau valoarea de inlocuit;
        // transmisa din typoscript prin: postUserFunc.field = name
        $field = $conf['field'];
        // daca sunt logat, at. toate datele se pun in $GLOBALS["TSFE"]
        $fedata = $GLOBALS["TSFE"]->fe_user->user[$field];
        // inlocuirea marker-ului cu valoarea din field
        return ($fedata ) ? str_replace("###USER###",$fedata , $content) : $content;
    }
}


Iar in template-ul html am marker-ul ###USER_NAME## care e inlocuit cu valoarea returnata de temp.login.

In principiu asa ar trebui sa fie si la tine, chiar daca se pare ca metodele noastre de lucru cu template-uri sunt diferite. Dar ca idee, e la fel. Sper te fi ajutat post-ul asta... :?
Tiberiu Contiu
PHP System Architect
AROBS Transilvania Software
str. Minerilor, nr. 63, Cluj-Napoca

www.arobs.ro , www.arobs.com

E-mail: tiberiu.contiu(at)arobs.com , tiberiu.contiu(at)yahoo.com
Skype:  tiberiu.contiu

ionu128

  • Novice
  • *
  • Mesaje postate: 13
Template valabil pentru o singura pagina
« Răspuns #4 : Februarie 02, 2007, 10:36:20 am »
Da, mersi mult, am inteles cum merge treaba.:)
Cred ca la mine problema e ca in template-ul principal fac deja o inlocuire:


temp.mainTemplate {
  template =< plugin.tx_automaketemplate_pi1  
  workOnSubpart = DOCUMENT_BODY    
  subparts.transmenu < temp.transmenu
  subparts.language = PHP_SCRIPT
  subparts.language.file = fileadmin/php_scripts/languageMenu.php
  subparts.content = COA
  subparts.content < styles.content.get

}


si in template-ul pentru acea pagina am:


includeLibs.functions = fileadmin/php_scripts/formular.php
temp.formular = USER
temp.formular{
userFunc = user_functions->formular_de
}

temp.mainTemplate.subparts.content < temp.formular


Formularul se afiseaza doar daca pun linia

page.50 < temp.formular

S-ar parea ca temp.mainTemplate nu mai exista, sau poate nu mai este vizibil. Am incercat sa creez un marker special in care sa scrie doar al doilea template, dar nu afiseazaa formularul.  :(
egards,
Ionut

tiberiu

  • Novice
  • *
  • Mesaje postate: 209
    • http://www.arobs.com
Template valabil pentru o singura pagina
« Răspuns #5 : Februarie 02, 2007, 10:49:39 am »
Eu zic ca problema e ca tu deja ai facut atribuirea page.10 < temp.mainTemplate in pagina principala.
Asadar, corect ar fi ca, in loc de:

temp.mainTemplate.subparts.content < temp.formular


sa pui in pagina 'aceea':

page.10.subparts.content < temp.formular


Sa-mi spui daca a mers.
Tiberiu Contiu
PHP System Architect
AROBS Transilvania Software
str. Minerilor, nr. 63, Cluj-Napoca

www.arobs.ro , www.arobs.com

E-mail: tiberiu.contiu(at)arobs.com , tiberiu.contiu(at)yahoo.com
Skype:  tiberiu.contiu

ionu128

  • Novice
  • *
  • Mesaje postate: 13
Template valabil pentru o singura pagina
« Răspuns #6 : Februarie 02, 2007, 11:08:41 am »
Esti un geniu!!! Atat de simplu... Mersi inca odata!
egards,
Ionut

ionu128

  • Novice
  • *
  • Mesaje postate: 13
Template valabil pentru o singura pagina
« Răspuns #7 : Februarie 02, 2007, 11:28:46 am »
Inca ceva... Daca vreau sa adaug si continut inaite de formular (creat cu RTE), care ar fi sintaxa?(ceva de genul append)
egards,
Ionut

tiberiu

  • Novice
  • *
  • Mesaje postate: 209
    • http://www.arobs.com
Template valabil pentru o singura pagina
« Răspuns #8 : Februarie 02, 2007, 11:50:40 am »
fa ceva de genul:


page.10.subparts.content = COA
page.10.subparts.content.10 < styles.content.get
page.10.subparts.content.20 < temp.formular
Tiberiu Contiu
PHP System Architect
AROBS Transilvania Software
str. Minerilor, nr. 63, Cluj-Napoca

www.arobs.ro , www.arobs.com

E-mail: tiberiu.contiu(at)arobs.com , tiberiu.contiu(at)yahoo.com
Skype:  tiberiu.contiu

ionu128

  • Novice
  • *
  • Mesaje postate: 13
Template valabil pentru o singura pagina
« Răspuns #9 : Februarie 02, 2007, 12:05:22 pm »
Multumesc inca odata!
egards,
Ionut